почему декодер ffmpeg cuda намного медленнее декодера cpu?

почему декодер ffmpeg cuda намного медленнее декодера cpu?
# cpu
ffmpeg -i test.ts -f null /dev/null -benchmark
# gpu
ffmpeg -hwaccel cuvid -hwaccel_output_format cuda -c:v h264_cuvid -i test.ts -f null /dev/null -benchmark

ffmpeg 4.4.2

CPU в 1,5 раза быстрее GPU.

Почему я на самом деле ожидаю, что GPU будет намного быстрее?

Обратите внимание, в этом конвейере я вообще не занимаюсь кодированием.

решение1

-c:v h264_cuvidвызывает CUVID, который медленнее и менее эффективен, чем NVENC. Замените его на-c:v h264_nvenc

CUVID для кодирования и декодирования существует уже десятки лет и должен считаться устаревшим. Он задействует все ядра CUDA графического процессора для выполнения функциональности. Вероятно, желаемое поведение — вызвать NVENC или NVDEC, которые и быстрее, и значительно более энергоэффективны как для кодирования, так и для декодирования видео.

Существуют полезные способы использования CUDA для ускорения задач кодирования видео с помощью FFmpeg, см. примеры NVIDIA здесь:https://docs.nvidia.com/video-technologies/video-codec-sdk/11.1/ffmpeg-with-nvidia-gpu/index.html

Также ознакомьтесь с документацией FFmpeg о том, как правильно вызывать современные NVENC/NVDEC:https://trac.ffmpeg.org/wiki/HWAccelIntro#NVDECCUVID

Связанный контент