[FFmpeg-user] Using FFMpeg with Nvidia CUDA to crop and scale videos
SMF Forum 1
smf.forum1 at ntlworld.com
Tue Sep 10 11:15:03 EEST 2024
My NVIDIA and FFMPEG configuration is as follows:
Linux TestBox1 6.8.0-41-generic #41-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug
2 20:41:06 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
NVIDIA-Linux-x86_64-560.31.02
ffmpeg version git-2024-08-19-507c2a577
encoders:
V....D av1_nvenc NVIDIA NVENC av1 encoder (codec av1)
V....D h264_nvenc NVIDIA NVENC H.264 encoder (codec h264)
V....D hevc_nvenc NVIDIA NVENC hevc encoder (codec hevc)
decoders:
V..... av1_cuvid Nvidia CUVID AV1 decoder (codec av1)
V..... h264_cuvid Nvidia CUVID H264 decoder (codec h264)
V..... hevc_cuvid Nvidia CUVID HEVC decoder (codec hevc)
V..... mjpeg_cuvid Nvidia CUVID MJPEG decoder (codec mjpeg)
V..... mpeg1_cuvid Nvidia CUVID MPEG1VIDEO decoder (codec
mpeg1video)
V..... mpeg2_cuvid Nvidia CUVID MPEG2VIDEO decoder (codec
mpeg2video)
V..... mpeg4_cuvid Nvidia CUVID MPEG4 decoder (codec mpeg4)
V..... vc1_cuvid Nvidia CUVID VC1 decoder (codec vc1)
V..... vp8_cuvid Nvidia CUVID VP8 decoder (codec vp8)
V..... vp9_cuvid Nvidia CUVID VP9 decoder (codec vp9)
filters:
... bilateral_cuda V->V GPU accelerated bilateral filter
T.. bwdif_cuda V->V Deinterlace CUDA frames
... chromakey_cuda V->V GPU accelerated chromakey filter
... colorspace_cuda V->V CUDA accelerated video color
converter
..C crop V->V Crop the input video.
T.C cropdetect V->V Auto-detect crop size.
... hwupload_cuda V->V Upload a system memory frame to a
CUDA device.
... overlay_cuda VV->V Overlay one video on top of another
using CUDA
... scale_cuda V->V GPU accelerated video resizer
... scale_npp V->V NVIDIA Performance Primitives video
scaling and format conversion
... scale2ref_npp VV->VV NVIDIA Performance Primitives video
scaling and format conversion to the given reference.
... sharpen_npp V->V NVIDIA Performance Primitives video
sharpening filter.
... thumbnail_cuda V->V Select the most representative frame
in a given sequence of consecutive frames.
... transpose_npp V->V NVIDIA Performance Primitives video
transpose
T.. yadif_cuda V->V Deinterlace CUDA frames
I would like to be able to use CUDA to crop and scale videos but I
cannot find the correct syntax.
My efforts usually work in terms of the scale but not the crop, here is
an example of the type of problems I have been having:
The source file in this example is a short mpeg2 video (960x540 with
black bars top and bottom). The command is currently run from a bash
script.
ffmpeg -y -hwaccel cuda -hwaccel_output_format cuda -c:v mpeg2_cuvid -
crop 960x408x0x66 -i $1 -vf scale_npp=1280x544 -c:a copy -c:v
h264_nvenc -b:v 2M -preset slow $2
This is throwing the following error:
[mpeg2_cuvid @ 0x5e6d9deb56c0] cuvid decode callback error
[vist#0:0/mpeg2video @ 0x5e6d9de85b40] [dec:mpeg2_cuvid @
0x5e6d9de7b7c0] Decoding error: Generic error in an external
library
I have looked around the web but none of the solutions offered have
worked for me.
Do I have a problem with my ffmpeg build, should the list of filters
include something like crop_cuda or crop_npp or have I just got the
wrong syntax to perform everything on the GPU (is it even possible).
Thanks for any suggestions.
More information about the ffmpeg-user
mailing list