より良いグラフィックスカードを手に入れたら、ハンドブレーキを使用して私のマシンでh264エンコーディングを高速化できるでしょうか?
もしそうなら、どのグラフィックカードがこれをサポートするかをどのようにして知ることができますか?
GPUがh264のハードウェアデコードを実行できることは知っていますが、エンコードについては不明です。
ハンドブレーキを使用すると、答えはノーになります。 Handbrakeは、CPUのみのh.264エンコーダーですが、現在はビデオスケーリング用に OpenCLを使用できます であり、ビデオデコード用のDXVAをある程度サポートしています。
Slhckによってリンクされた質問は MediaCoder について言及していますが、Nvidiaグラフィックカードまたは第2世代グラフィックコアを搭載したIntel CPUのいずれかが必要です。
時代遅れの古い製品がいくつかあり、特にBadaboomとATI Avivoソフトウェアがあります。
Badaboom これは、NvidiaおよびIntelグラフィックプロセッサを使用してエンコードプロセスを高速化できますが、現在はサポートが終了しており、新しいグラフィックカードをサポートしていません。
ATIには独自のビデオエンコーダーがありましたが、以前は「Avivo」と呼ばれていましたが、AMDビデオコンバーターが含まれているAMDコーデックパッケージにマージされました。
https://trac.ffmpeg.org/wiki/HWAccelIntro
FFmpegは、ハードウェアアクセラレーション用のサブシステムを提供します。
ハードウェアアクセラレーションにより、特定のデバイス(通常はグラフィックカード>またはその他の特定のデバイス)を使用してマルチメディア処理を実行できます。これにより、専用のハードウェアを使用して、CPUをそのような計算から解放しながら、要求の厳しい計算を実行できます。通常、ハードウェアアクセラレーションにより、特定のハードウェアデバイス(通常はGPU)がビデオストリームのデコードとエンコード、またはビデオのフィルタリングに関連する操作を実行できます。
FFmpegツールを使用する場合、ハードウェアアシストのデコードは
-hwaccel
オプション。特定のデコーダーを有効にします。各デコーダーには特定の制限がある場合があります(たとえば、H.264デコーダーはベースラインプロファイルのみをサポートする場合があります)。 HWアシストエンコーディングは、特定のエンコーダー(nvenc_h264など)を使用して有効にします。 HW支援処理のフィルタリングは、いくつかのフィルターでのみサポートされています。その場合、フィルターオプションを使用してOpenCLコードを有効にします。いくつかのハードウェアアクセラレーション標準APIがあり、そのうちのいくつかはFFmpegによってある程度サポートされています。
「-hwaccel auto」オプションを使用すると、エンコードセッションに使用するハードウェアベースの高速デコードを選択できます。入力前にこのパラメーターを "auto"で追加できます(x264がOpenCLサポートでコンパイルされている場合は、-x264opts paramを追加してみてください)。次に例を示します。
ffmpeg -hwaccel auto -i input -vcodec libx264 -x264opts opencl output
申し訳ありませんが、「-hwaccel」で利用可能なすべてのオプションを一覧表示する方法を思い出せません。
また、これを試すこともできます: https://wiki.archlinux.org/index.php/Hardware_video_acceleration
現在、Handbrakeは、H.264/AVCの次のハードウェアアクセラレータエンコーダーをサポートしています。
Intel QuickSync (WindowsおよびLinux)。これは、少なくともIntelベースの Sandybridge (第2世代Core)-統合グラフィックスが有効でオペレーティングシステムに公開されているシリーズプロセッサラインと互換性があります。許容できるエンコード品質の推奨ハードウェア: Haswell (第4世代コアシリーズ)以降、細粒度ターゲットレベル(TU)、先読み機能( LA-BRCおよびICQエンコードモード )。パフォーマンスが大幅に向上しています。ハンドブレーキのドキュメントの使用ガイドを参照してください こちら 。
NVIDIAのNVENC :これには、少なくとも NVIDIAのKepler (GK +)シリーズGPU以上が高性能コンシューマーSKU(GTXシリーズ)から必要です)およびプロのラインナップ(KedroおよびTesla GPU、Kepler以降をベース)。これは、WindowsとLinuxの両方で使用できます。
注目すべきは、NVENCを使用すると、コンシューマSKUで同時に最大2つのエンコードセッションに人工的に制限されることですが、プロのラインナップはこれによる影響を受けません。特定のエンコーダー機能のリファレンスについては、 GPUマトリックス を参照してください。エンコーダのパフォーマンスと品質を最高にするには、 Pascal および Volta GPUの最新の反復に固執します。
オプション:
Appleのサポートに関する限り、これはせいぜい 暫定的です 。 VideoToolBox APIは、Handbrakeの範囲を超えて実装されている場合も、非常に限定されたコントロールセットを持っているようです。ハンドブレーキが上流でそれを採用しても、品質保持とスループットの面で奇跡を期待しないでください。
現在のように、プラットフォームで最新のエンコーダー機能を使用するには、最新のナイトリービルドを使用する必要がある場合があります。これは間違いなく将来的に変更されます。