4

ffmpeg を使用して、一連の画像 (bmp) とオーディオ トラックを Web 対応ビデオに変換しています。対象フォーマットは、h.264 mp4、webm、および flv です。これは、ビルド済みの zeranoe 静的ビルド ( http://ffmpeg.zeranoe.com/builds/ ) を使用する Windows Azure 特大インスタンス (8 proc) 上にあります。

生の速度のために品質とサイズを喜んで犠牲にするとします。各形式のどのオプションが最も迅速な結果をもたらしますか?

私の「ベースライン」コマンドは次のようになります (拡張子を他の形式に置き換えます)。

ffmpeg -y -i frames%5d.bmp -i audio.mp3 -r 23.97 out.mp4

必要に応じて、入力を他の形式 (jpg 画像、aac オーディオなど) に変更できます。

4

2 に答える 2

5

あらゆる形式の品質/エンコード速度のバランスを変更する主要な「ノブ」はビットレートです。たった今のテストでは、デフォルト設定のビットレート ~900k でエンコードに 97 秒かかるビデオは、ビットレートを 100k に下げた場合の半分以下でした。出力ビデオははるかに小さく、品質は著しく低下しました。

あなたの場合、画像から来て、 FFmpegのエンコーディングのヒントで述べられているように、モーション推定をオフにすることでおそらく大幅なスピードアップを得ることができます:

コンピュータの速度が十分でない場合は、圧縮率を犠牲にして圧縮を高速化できます。「-me zero」を使用してモーション推定を高速化し、「-g 0」を使用してモーション推定を完全に無効にすることができます (I フレームしかないため、JPEG 圧縮とほぼ同じです)。[FFmpeg の最近のバージョンでは .-me_methodの代わりに使用されることに注意してください-me。]

テストでは、97 秒のエンコードが20秒で終了しました-g 0。圧縮率は大幅に低くなり、デフォルト設定の 25% に対して元のサイズの 63% になりましたが、低ビットレートのエンコーディングとは異なり、品質は良好なままです。

これが私の簡単なテストの完全な結果です。時間はエンコードに使用されるリアルタイムです:
ベースライン、27M MOV から mp4、ビットレート ~900k: 97 秒 :
84-me_method zero
: -flags2 fast84
-b 500k: 75
-b 100k: 43
-g 0: 20 秒

with -flags2 fastand -b 100kand -g 0: 12s (出力はひどく見えます)

他の形式固有の調整があるかもしれませんが、上記の方法と比較して大幅な高速化は期待できません..

于 2012-07-20T22:19:13.017 に答える
1

これらの画像の解像度は? できるだけ低い解像度を使用すると、パフォーマンスが向上します。また、ffmpeg で -threads オプションを使用して、8 コアを最適に使用します。

于 2012-07-20T13:25:15.490 に答える