Windows 上のハードウェア アクセラレーション FFMPEG

Windows 上のハードウェア アクセラレーション FFMPEG

Windows 10に最新のgyan.devフルビルドをインストールしました。pngのシーケンスをh265 .mp4ムービーに変換したいのですが、このコマンドを使用して正常に実行しています。

ffmpeg -r 60 -f image2 -s 3840x2160 -i TEST_%04d.png -vcodec libx265 -crf 1 -pix_fmt yuv440p -hwaccel cuvid Y:\TEST.mp4

プロセス中にRTX2080のハードウェアアクセラレーションを利用したいのですが、追加するリソースやコマンドが見つかりません。-ハワッセル十分だと思っていたのに、機能しませんでした。

ヒントがあれば大歓迎です! どうぞお気をつけて、安全にお過ごしください。

答え1

libx265ソフトウェア エンコーダーです。ハードウェア エンコードはサポートされていません。

あなたが望むのは、ハードウェアエンコーダハードウェアh.264の場合はビデオコーデックを使用しh264_nvenc、h.265の場合はhevc_nvenc

ffmpeg -r 60 -f image2 -s 3840x2160 -i TEST_%04d.png -vcodec hevc_nvenc -crf 1 -pix_fmt yuv440p -hwaccel cuvid Y:\TEST.mp4

利用可能なエンコーダーを一覧表示しffmpeg.exe -encoders、リストに記載されているものを探すことができますNVIDIA。私のffmpegでは、そのリストに次のNvidiaエンコーダーがあります。

 V..... h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc                NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_h264           NVIDIA NVENC H.264 encoder (codec h264)
 V..... nvenc_hevc           NVIDIA NVENC hevc encoder (codec hevc)
 V..... hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)

そして、例えば次のようにしてエンコーダパラメータをリストすることができます。ffmpeg -h encoder=hevc_nvenc

答え2

回答してくださった@Mokubai、@Gyan、@lloganに感謝します。

h265 から h264 への変換に ffmepg hwaccel を使用する場合は、次のようにします。

ffmpeg -encoders | findstr /ic:"NVIDIA"

君は見るべきだ:

 V....D h264_nvenc           NVIDIA NVENC H.264 encoder (codec h264)
 V....D hevc_nvenc           NVIDIA NVENC hevc encoder (codec hevc)

ffmpeg コマンド:

ffmpeg.exe -vsync 0 -hwaccel cuda -i <input_file> -map 0  -c:a copy -c:v h264_nvenc -pix_fmt yuv420p -preset hq <output_file>

GTX1060 カードで 30 分のビデオを再生した場合、実行時間が 4 分の 1 に短縮されました。

乾杯

関連情報