6

私には、FFMPEGとx264を使用してビデオエンコーディングを行う必要がある潜在的な仕事があります。一度エンコードする必要のある一連のファイルを用意してから、インスタンスを停止できるようにします。x264とFFMPEGのリソース使用率がよくわからないので、どのようなインスタンスを取得する必要がありますか?私はどちらかを考えています

ハイCPUエクストララージインスタンス

7GBのメモリ
20EC2コンピューティングユニット(それぞれ2.5 EC2コンピューティングユニットを備えた8つの仮想コア)
1690GBのインスタンスストレージ
64ビットプラットフォーム
I/ Oパフォーマンス:高
API名:c1.xlarge

または、代わりに

クラスターGPUクアドラプルエクストララージインスタンス

22GBのメモリ
33.5EC2コンピューティングユニット(2 x Intel Xeon X5570、クアッドコア「Nehalem」アーキテクチャ)
2 xNVIDIATesla「Fermi」M2050GPU1690GB
のインスタンスストレージ
64ビットプラットフォーム
I/Oパフォーマンス:非常に高い(10ギガビットイーサネット)
API名:cg1.4xlarge

何を使うべきですか?x264 / FFMPEGは、より高速でより多くのCPUを使用するとパフォーマンスが向上しますか、それとも実際にGPUをより強力にしますか?いずれにせよ、クラスターGPUはより高性能なインスタンスのようです。私は何を好むべきですか?

4

4 に答える 4

3

Ffmpegは最近VAAPIとVDPAUのサポートを追加しましたが、これにより、H.264ビデオのデコードにのみGPUを使用できるようになります。エンコードにはCPUを使用します。

于 2011-12-03T08:48:16.493 に答える
0

CPU/GPU に対する簡単な答えは、H264 エンコーディングの使用方法によって異なります。ffmpeg

また、H264 と x264 を混同しています。H264 はビデオ コーデックの標準であり、x264は H264 標準の 1 つの実装です。x264 は非常に人気があるため、H264 と同義で混同されることがあります。x264 であると私が指摘する理由は、H264 のソフトウェアベースの実装です。つまり、すべてのプロセスで CPU コアのみを使用します。ビデオ エンコーディングに x264 を使用する場合、ユース ケースで GPU を使用することはありません。

そうは言っても、おそらくあなたが尋ねようとしているのは、行くかどうかです

  • H264 のハードウェアベースの実装 (GPU を使用)、または
  • H264 のソフトウェアベースの実装 (CPU を使用)

利用可能なそれぞれに対して利用可能ないくつかの実装があります。Ffmpeg には、これに関するすばらしいページが既にあります。Nvidia GPU インスタンスの使用を計画している場合は、NVENCサポートを使用して FFmpeg をコンパイルし、ハードウェア実装を取得する必要があります。GPU/CPU を使用してすべてのトランスコーディング プロセスを効率的に行うことは、芸術そのものです。


つまり、x264 は GPU を使用しません。GPU を使用する場合は、エンコーダーのハードウェア実装を使用する必要があります。どちらの実装が優れているかは、ユースケースと関心のあること (品質、コスト、ターンアラウンド タイムなど) によって大きく異なります。


私の背景/免責事項: 私はBitmovinでシニア エンジニアとして働いています。この「クラスター/リソース」割り当てエンジニアリングの問題を解決し、他の多くの問題の中で、特定のビットレートから可能な限り最高のビデオ品質を抽出します。最後に、ワークフローに簡単にプラグインできる API を提供します。ここで表明された見解は私自身のものです。

于 2022-03-03T10:10:21.293 に答える
-3

おそらく、zencoder.com のようなサービスを使用する方が良いでしょう。それらには優れた API があり、そこから得られる品質は、おそらく Ffmpeg パラメーターの最適化を何時間もいじるよりも優れているでしょう。

于 2012-09-24T19:36:21.533 に答える