[FFmpeg-user] ffmpeg cuvid not transcoding properly

Dennis Mungai dmngaie at gmail.com
Sun Nov 17 07:24:31 EET 2019

Hey there,

Lower your decoder threads and retest:

ffmpeg -threads 1 -vsync 1 -hwaccel cuvid -c:v h264_cuvid -deint 1
-drop_second_field 1 -i '' -c:v h264_nvenc -vb
1000k -preset:v medium -c:a aac -ac 2 -ar 48k -ab 96k test.mp4

Now with the yadif_cuda filter:

ffmpeg -threads 1 -vsync 1 -hwaccel nvdec -hwaccel_output_format cuda -i
'' -vf "yadif_cuda" -c:v h264_nvenc -vb 1000k
-preset:v medium -c:a
aac -ac 2 -ar 48k -ab 96k test.mp4

For usage see:

ffmpeg -h filter=yadif_cuda

For what to expect, see

Running the nvdec & cuvid decoders with multiple threads is the
fastest way to land in hot water.
Infact, the decoder will warn you if threads (either in auto mode or
manually set) exceed 16. These hwaccels do not implement threading.

You can confirm that by running:

ffmpeg -h decoder=h264_cuvid

And see that threading is not a reported capability.

I also changed your commands to -vsync 1 as the MP4 muxer
implelentation in libav supports CFR only, and NALU HRD stuffing isn't
Even if you're using libx264, do not use

-x264-params "nal-hrd=cbr"

When generating (f)mp4 content as you'll generate invalid output, with
audio predominantly out of sync.
If you truly require VFR output as part of your workflow, then stick
to either mpegts (also supported in chunks via HLS or segment muxer)
OR matroska (mkv).


Dennis M.

On Sat, 16 Nov 2019 at 20:37, Ted Park <kumowoon1025 at gmail.com> wrote:
> How is the stream being served over http? Does it make any difference if you save a file wget for example first?
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".

More information about the ffmpeg-user mailing list