NVIDIAの開発者Webサイトによると、GPUを使用してffmpegフィルターのレンダリングを高速化できます。
FFmpegのビルトイン>フィルターを使用して、ハードウェアアクセラレーションによる高速エンドツーエンドビデオ処理、1:Nエンコーディング、1:Nトランスコーディングパイプラインを作成する
FFmpegの共有CUDAコンテキスト実装を使用して、独自のカスタム高性能CUDAフィルターを追加する機能
今私が抱えている問題は、GPUを使用して複数のffmpegフィルター処理を高速化する方法ですか?
例えば:
ffmpeg -loop 1 -i dog.jpg -filter_complex "scale=iw*4:-1,zoompan=z='zoom+0.002':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':s=720x960" -pix_fmt yuv420p -vcodec libx264 -preset ultrafast -y -r:v 25 -t 5 -crf 28 dog.mp4
拡張機能を使用して独自のffmpegビルドをコンパイルする必要があります。標準バイナリにはこれらの機能が含まれていないため、手順については https://developer.nvidia.com/ffmpeg を参照してください。
可能な解決策。未テストなので、エラーがあれば教えてください...
ffmpeg -loglevel debug -hwaccel NVENC -loop 1 -i dog.jpg -filter_complex "scale=iw*4:-1,zoompan=z='zoom+0.002':x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)':s=720x960" -pix_fmt yuv420p -vcodec h264_nvenc -preset ultrafast -y -r:v 25 -t 5 -crf 28 dog.mp4
どこに...
-hwaccel NVENC
でNVIDIAエンコーディングを初期化します。
コーデックを-vcodec h264_nvenc
に設定します。