# 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