web-dev-qa-db-ja.com

FFMpegはメディアのエンコード/デコードのGPUアクセラレーションをサポートしていますか?

FfmpegがGPUアクセラレーションをサポートしているかどうか疑問に思っていました。私は彼らのウェブサイトで読んでいて、矛盾する情報に出くわしました。

http://www.ffmpeg.org/general.html#Video-Codecs -H.264/AVC/MPEG-4 AVC/MPEG-4パート10(VDPAUアクセラレーション)

http://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide -グラフィックカードを使用すると、x264エンコードが高速になりますか?いいえ。libx264はそれらを使用していません(少なくともまだ使用していません)。 GPUを利用する独自のエンコーダーがいくつかありますが、それはそれらが十分に最適化されていることを意味しませんが、エンコード時間はより速くなる可能性があります。とにかくそれらはx264よりも悪く、おそらく遅いかもしれません。とにかく、今日のFFmpegは、libx264以外のgpuエンコーディングの手段をサポートしていません。

そうでない場合、GPUアクセラレーションをh.264エンコーディング/デコーディングに追加する方法はありますか?

8
Jason123

VDPAUは、ビデオのデコード/再生のみを高速化します。生のビデオをGPUエンコードにコピーしてから圧縮データを読み戻すのにかかる時間が本当にGPUから多くのメリットがあったことを意味するかどうかはわかりません。

プレイバックでは、とにかくデータをGPUにコピーする必要があり、より小さな圧縮ソースストリームをコピーすることをお勧めします。

NVidia CUDA SDK にH264圧縮ステップを実行する例がありますが、実際のビデオを作成するには他のコードを提供する必要があります

4
Martin Beckett

あなたはこれを試すことができます: https://developer.nvidia.com/nvidia-video-codec-sdk h264ストリームをエンコードし、ffmpegでそれらを多重化します。

0
Justin Buser