ハンドブレーキを使用して、マシンでh264エンコーディングを高速化できるより良いグラフィックスカードを入手できるかどうか疑問に思っています。
もしそうなら、どのグラフィックスカードがこれをサポートするかをどのように見分けることができますか?
GPUがh264のハードウェアデコードを実行できることは承知していますが、エンコードについてはわかりません。
ハンドブレーキを使用して、マシンでh264エンコーディングを高速化できるより良いグラフィックスカードを入手できるかどうか疑問に思っています。
もしそうなら、どのグラフィックスカードがこれをサポートするかをどのように見分けることができますか?
GPUがh264のハードウェアデコードを実行できることは承知していますが、エンコードについてはわかりません。
回答:
ハンドブレーキを使用すると、答えはノーになります。HandbrakeはCPUのみのh.264エンコーダーですが、 ビデオスケーリングにOpenCLを使用でき、ビデオデコードにDXVAをある程度サポートしています。
slhckによってリンクされた質問はMediaCoderに言及していますが、Nvidiaグラフィックカードまたは第2世代のグラフィックコアを備えたIntel CPUが必要です。
廃止された古い製品、特にBadaboomとATi Avivoソフトウェアがいくつかあります。
NabodiaとIntelグラフィックプロセッサを使用してエンコードプロセスを高速化することができたBadaboomが、サポート終了となり、新しいグラフィックカードをサポートしなくなりました。
ATiには独自のビデオエンコーダーがあり、以前は「Avivo」と呼ばれていましたが、AMD Video Converterが含まれていたAMD Codec Packageにマージされてから使用できなくなりました。
https://trac.ffmpeg.org/wiki/HWAccelIntro
FFmpegは、ハードウェアアクセラレーションのサブシステムを提供します。
ハードウェアアクセラレーションにより、特定のデバイス(通常はグラフィカルカードまたはその他の特定のデバイス)を使用してマルチメディア処理を実行できます。これにより、専用のハードウェアを使用して要求の厳しい計算を実行しながら、そのような計算からCPUを解放できます。通常、ハードウェアアクセラレーションにより、特定のハードウェアデバイス(通常はGPU)が、ビデオストリームのデコードとエンコード、またはビデオのフィルタリングに関連する操作を実行できます。
FFmpegツール
-hwaccel
を使用すると、特定のデコーダーを有効にするオプションを使用して、HWアシストデコードが有効になります。各デコーダーには特定の制限があります(たとえば、H.264デコーダーはベースラインプロファイルのみをサポートします)。HWアシストエンコーディングは、特定のエンコーダー(nvenc_h264など)を使用することで有効になります。HWアシスト処理のフィルタリングは、いくつかのフィルターでのみサポートされています。その場合、フィルターオプションを使用してOpenCLコードを有効にします。いくつかのハードウェアアクセラレーション標準APIがあり、その一部はFFmpegによってある程度サポートされています。
「-hwaccel auto」オプションを使用すると、エンコードセッションに使用するハードウェアベースの高速デコードを選択できます。入力前にこのパラメーターを「auto」で追加できます(x264がOpenCLサポートでコンパイルされている場合は、-x264optsパラメーターを追加できます)。例:
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世代コア)と互換性があります-統合グラフィックスが有効で、オペレーティングシステムに公開されているシリーズプロセッサライン。許容可能なエンコーディング品質のための推奨ハードウェア:Haswell(第4世代Coreシリーズ)以降、きめ細かいターゲットレベル(TU)、先読み機能(LA-BRCおよびICQエンコーディングモードなど)の概念を導入し、パフォーマンスが大幅に向上しました。こちらからハンドブレーキのドキュメントの使用ガイドをご覧ください。
NVIDIAのNVENC:これには、高性能のコンシューマSKU(GTXシリーズ)およびプロフェッショナルラインアップ(KeplerベースのQuadroおよびTesla GPU)から少なくともNVIDIAのKepler(GK +)シリーズGPU 以上が必要です。これは、WindowsとLinuxの両方で利用可能です。
注目すべきは、NVENCを使用すると、消費者SKUでの同時エンコードセッションがせいぜい2つに制限されることですが、プロのラインナップはこの影響を受けません。特定のエンコーダー機能のリファレンスについては、GPUマトリックスを参照してください。最高のエンコーダのパフォーマンスと品質を得るには、Pascal GPU とVolta GPUの最新バージョンを使用してください。
オプションで:
Appleのサポートに関する限り、これはせいぜい暫定的なものです。VideoToolBoxのハンドブレーキの範囲を超えて実装APIも、コントロールの非常に限られたセットを持っているようです。Handbrakeがアップストリームを採用したとしても、品質保持とスループットの点で奇跡を期待しないでください。
現在のように、プラットフォームで最新のエンコーダー機能を使用するには、最新のナイトリービルドを使用する必要がある場合があることに注意してください。これは将来的に間違いなく変わるでしょう。