Ffmpegを使用して、NVIDIA GPUでビデオのエンコードとデコードを高速化したい。
NVIDIAのWebサイト から:
NVIDIA GPUには、1つ以上のハードウェアベースのデコーダーとエンコーダー(CUDAコアとは別)が含まれており、いくつかの一般的なコーデックに完全に高速化されたハードウェアベースのビデオデコードとエンコードを提供します。デコード/エンコードのオフロードにより、グラフィックエンジンとCPUは他の操作に使用できません。
私の質問は、CUDAコアを使用してビデオをエンコードおよびデコードできますか?
FFmpegは、NVIDIAを含むハードウェアアクセラレーションのサブシステムを提供します。 https://trac.ffmpeg.org/wiki/HWAccelIntro
NVIDIA GPUでGPUアシストエンコーディングのサポートを有効にするには、次のものが必要です。
--enable-nvenc
で構成されたffmpeg(構成中にドライバーが検出された場合のデフォルト)マイクが言ったように、ffmpegはこれらのハードウェアアクセラレーションの一部をラップします。最初に、より低レベルのアプローチ(公式NVIDIAライブラリ)に進む代わりに、それを使用する必要があります!
table は、NVENCがおそらくあなたの候補であることを示しています。
しかし:気をつけてベンチマークを行ってください。 GPUエンコーダーは非常に高速である必要がありますが、CPUエンコーダーよりも劣っています。
ここで確認することは、GPUエンコーダーが特定のビットレートである程度の品質を目標としている場合、CPUエンコーダーと競合するかどうかです。私はノーノーノーと言います(非常に高いビットレートまたは非常に悪い品質を除く)が、それはあなたのユースケースに依存するものです。 GPUエンコードは、利点のみを提供する特効薬ではありません。