ffmpeg は本当にエンコードにグラフィック カードを使用するのでしょうか?

ffmpeg は本当にエンコードにグラフィック カードを使用するのでしょうか?

私は NVIDIA Quadro P620 を持っています。グラフィック カードを使用してトランスコーディングを高速化する方法について、多くの調査を行っています。

このページを偶然見つけた https://trac.ffmpeg.org/wiki/HWAccelIntro#usewiththeffmpegcommand-linetool

そこで私は試してみた

ffmpeg -hwaccel cuda -i input.avi output.mp4

結果はそれほど早くはならなかった

ffmpeg -i input.avi output.mp4

実際にはトランスコードに時間がかかりました。

同じCPU使用率を消費していることがわかりますレスモン-hwaccel オプションがない場合と同じです。

何か間違ったことをしましたか? ffmpeg が GPU を正しく使用しているかどうかはどうすればわかりますか?

答え1

による ビデオエンコードおよびデコード GPU サポート マトリックス、GPUはハードウェア支援によるデコードとエンコードをサポートしています。これは ネヴェンク

ここで唯一問題となるのは、GPU がサポートするコーデックのリストです。これは H.264 と H.265 です。ビデオがこれらのコーデックでエンコードされていない場合、ハードウェア アクセラレーションが機能しない可能性があります。

適切なコーデックと参考については、Stack Overflowの投稿をご覧ください。 ffmpeg が Intel QSV ではなく Nvidia CUDA を選択するようにする 次のコマンドでハードウェア アクセラレーションが動作していることがわかりました。

ffmpeg -hide_banner -hwaccel cuda -i "input.avi" -c:a copy -ac 1 -c:v h264_nvenc -preset hq -movflags faststart -qp 30 "output.mp4"

関連情報