# 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 は GPU よりも 1.5 倍高速です。
実際、GPU の方がはるかに高速であると期待するのはなぜでしょうか?
注意してください、このパイプラインではエンコードはまったく行いません。
答え1
-c:v h264_cuvid
はCUVIDを呼び出しますが、これはNVENCよりも遅く、効率も悪いです。これを次のように置き換えてください。-c:v h264_nvenc
エンコードとデコード用の CUVID は数十年前のものであり、廃止されたと考えるべきです。この機能を実行するには、GPU のすべての CUDA コアが稼働します。おそらく望ましい動作は、ビデオ エンコードとビデオ デコードの両方でより高速で、電力効率が劇的に高い NVENC または NVDEC を呼び出すことです。
CUDA を使用して FFmpeg によるビデオ エンコード タスクを高速化する便利な方法があります。NVIDIA の例を次に示します。https://docs.nvidia.com/video-technologies/video-codec-sdk/11.1/ffmpeg-with-nvidia-gpu/index.html
最新の NVENC/NVDEC を適切に呼び出す方法については、FFmpeg のドキュメントも参照してください。https://trac.ffmpeg.org/wiki/HWAccelIntro#NVDECCUVID