web-dev-qa-db-ja.com

2プロセッサ、16コアシステム用のビデオエンコーディングアプリケーション

ビデオエンコーディングを実行する必要がありますが、使用したほとんどのアプリケーション(または設定)では、ワークステーションを十分に活用できません。

私は2つのXeonプロセッサ、ハイパースレッディングを備えたプロセッサあたり8コア、または32スレッドを使用しています。私はwin7または任意の種類のLinux(debianを好む)を実行できます。

Windowsでは、すべてのハンドブレーキプリセットは、x264の合計プロセッサパワーの40%しか使用しません。 Linuxでは、libavとffmpegも約40%を使用します。

私はハードドライブが制限要因であることを真剣に疑っています。ビデオソースとしてローカルRAID0 ssd配列を使用し、ビデオ出力としてRAID 5ssd配列を使用します。通常の転送は約500MB/sなので、I/Oのボトルネックはないと思います。

この問題はハイパースレッディングに関連している可能性があると考えて、オフにしました。あまり役に立たなかった。だから私はそれをオンに戻しました。

それで、マルチスレッドではないx264エンコーディングの側面はありますか?さらに、別のエンコーダーをお勧めしますか?最後に、この問題についてのコメントは大歓迎です。ありがとうございました

3
Oddworld

ビデオエンコーダーは驚異的並列ではないため(つまり、必要な数のスレッドにスケーリングできるため)、単一のビデオのCPU側でこのリグを最大限に活用することはおそらくできません。いくつかの同時プロセスが進行している場合は、これを確実に最大化することができます。

残念ながら、このように動作するように特別にコーデックを設計せずに、非常に多くのCPUスレッドを使用して単一のビデオストリームをエンコードするためにできることはあまりありません。手元にあるかどうかはわかりません。

GPUアクセラレーションエンコーディングを実行するために、ある種のGPU(プロセッサ上のIntel QSV、またはRadeonまたはGeForceカード上のOpenCL)の使用を検討しましたか? Windows8でRadeonHD7970とSonyVegas Proを使用したテストでは、Radeonアシストを使用してビデオをエンコードするのに15分かかりますが、Core i7 3770K CPU(QSVを使用しない場合)では90分かかります。

また、x264でのスレッド化に関する this 有益なドキュメントを読むことをお勧めします。使用しているバージョン(フレームベースまたはスライスベースのスレッド)を確認し、そのファイルに詳述されているように長所と短所を比較検討します。

2
allquixotic

私は基本的にあなたと同じプロセッサ構成を持っており、私が行うすべての編集とエンコードには、AdobeMediaエンコーダーとAdobePremierProを使用しました。それらは、あなたが持っているような構成を完全に活用するように設計されており、非常にうまく機能します(ここにリンクがあります: http://www.Adobe.com/ca/products/creativesuite/production.html )。お役に立てれば。

0
Ben Franchuk