3

私の仕事では、数日で数千の映画をエンコードする必要がありました。各ムービーは、3 つの異なる形式でエンコードする必要があります。ここで詳しく説明されているように、 ffmpegを使用して、入力ソースの 1 回の読み取りと並行してこれらの形式を出力します。

さらに、GNU Parallel を使用して、複数のビデオ ファイルから並行してエンコードしています。異なる構成 (48、32、16、および 16 コア) の 4 つのブレード サーバーがビデオを並行してエンコードしています。理想的には、112 本のビデオを並行してエンコードできる必要があります。

ただし、コア数の少ないマシンでは、エンコードがより速く完了するようです。16 コアのサーバーでは約 4 時間で 16 のエンコードが完了しましたが、48 コアのシステムでは 48 のエンコードが完了するまでに 10 時間近くかかります。何がボトルネックになる可能性がありますか? 一般的なエンコード コマンドは次のとおりです。

ffmpeg -i sample.mpg -y -vcodec libx264 -vprofile baseline -level 30 -acodec libfdk_aac -ab 128k -ac 2 -b:v 500K -threads 1  encoded/sample_enc.mp4

任意のポインターを高く評価します。ありがとう!

4

1 に答える 1

1

複数の n 個のコアに分割された 1 つのエンコードは問題ありませんが、n 個のエンコードをコアごとに 1 つ並列に実行すると、帯域幅の飽和が発生します ...

トランスコーダごとに 4 つのスレッドをアクティブにして、1 つのビデオのスループットを高速化し、並行してエンコードするビデオの数を 2 つまたは 3 つに制限しますが、それはメモリ、帯域幅、およびビデオ (SD と HD の場合) によって異なります。例)

于 2013-08-16T05:08:24.230 に答える