# 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
la CPU es 1,5 veces más rápida que la GPU.
¿Por qué realmente espero que la GPU sea mucho más rápida?
Tenga en cuenta que en este proceso ni siquiera hago ninguna codificación.
Respuesta1
-c:v h264_cuvid
está llamando a CUVID, que es más lento y menos eficiente que NVENC. Reemplácelo con-c:v h264_nvenc
CUVID para codificar y decodificar tiene décadas de antigüedad y debe considerarse depreciado. Enciende todos los núcleos CUDA de la GPU para realizar la funcionalidad. El comportamiento probablemente deseado es invocar NVENC o NVDEC, que son más rápidos y dramáticamente más eficientes energéticamente tanto para la codificación como para la decodificación de video.
Hay formas útiles de usar CUDA para acelerar las tareas de codificación de video con FFmpeg; consulte los ejemplos de NVIDIA aquí:https://docs.nvidia.com/video-technologies/video-codec-sdk/11.1/ffmpeg-with-nvidia-gpu/index.html
Consulte también la documentación de FFmpeg sobre cómo llamar adecuadamente a NVENC/NVDEC modernos:https://trac.ffmpeg.org/wiki/HWAccelIntro#NVDECCUVID