前回エントリ「ffmpegをもう少ししっかりと覚えてみる」に書いたとおり最新のffmpegを入手。
ようやく私もコマンドライン(CUI)から動画変換を行うマニアな世界に足を突っ込み始めました(^_^;

本来面倒臭がり屋なので、ある程度変換設定を確立したら適当なGUIに放り込んでお手軽エンコの世界に戻るつもりですが、細かなオプションを弄りながら設定を詰める時はコマンドラインからアレコレ弄るのが手っ取り早いですね、やっぱり。

色々オプションを弄って高速化にチャレンジ

私の場合、FFmpegのオプションをアレコレ弄るメインの目的はズバリ「h.264+aacへの変換速度の高速化」。
Mencoderの高速っぷりにあてられて、他エンコーダーの最新版の実力も確認したくなり色々挑戦しています。

基本コマンドラインと検証オプション

とりあえず、以下のシンプルなコマンドラインを用意。

ffmpeg -y -i test0.avi -vcodec libx264 -b 2400k -acodeclibfaac -ac 2 -ar 48000 -ab 128k -f mp4 -threads 2 test.mp4

余分なオプションの一切無い、動画部分をx264で、音声部分をaacに変換するものです。これに、以下のオプションを付けて、2分程度のavi動画素材をエンコードしてみます。

-flags2
-me_method
-bf
-hurry_up
-f
-partitions

FFmpegのHelpを読みざっと読んだ中で、高速化オプションが用意されているものや画質設定を弄れるオプションで理解できるもの、または日本語解説をみつけたモノをチョイス。
(日本語解説ページを探している方は、こちらのページ一番下に紹介リンクがあります。≫携帯動画変換君を改造:ffmpegを新しいバージョンに

検証に使用した動画

ソース:地デジ放送、実写、スポーツ中継、2分
動 画:672x384、MJPEG Q=19
音 声:無圧縮 PCM 48000hz
読み込みにCPU負担が一番かからないであろう素材で変換。

スポンサー リンク

変換結果

比較用にVirtualdubMod+Xvid1.2.1とMencoder(AutoMen使用)も掲載。

エンコーダー オプション 設定 FPS
VDM+Xvid デフォルト 42
AutoMen 最速設定 69

デフォルト 53
FFmpeg なし 38

-flags2 fast 37
-flags2 wpred 37
-flags2 fastpskip 38
-flags2 dct8x8 35
-me_method zero 37
-me_method dia 37
-me_method full 36
-bf 0 37
-bf 1 37
-bf 3 36
-bf 6 35
-hurry_up 0 38
-hurry_up 3 38
-f yuv4mpegpipe 38
-f psp 38
-partitions parti4x4 35
-partitions partp8x8 31
-partitions partb8x8 38

2009.04.22追記
上記データーはAthlon64X2 2.5Ghzにて取ったものです。
Core i7 920で同様の変換を行った所、
最新のFFMpegとMencoderで、変換速度差は殆どありませんでした。
どちらも高速です。
≫参考:core i7 920で動画エンコード速度比較

Athlon向けにビルドされたものを使用していましたが、プロセッサにより変換速度は大きく異なるみたいです。

劇的な速度アップを期待していたので詳細な速度は記録せず、大雑把なFPSしか記録していませんでしたが。。。。

検証したFFmpegのオプション、動画サイズでは殆ど変化が無いですね orz

上記検証オプションを複数組み合わせてみても変化なし。
試していないコマンドも沢山あるのですが、cabacやpartitionsをオフにするオプションがHelpを読んでも見つからないのでこれ以上の検証はストップです(´Д`;)
FFmpegでのh.264への変換は当面は見切りをつけてMencoderへ移行する事にします。

あとがき

画質を上げる為の情報はそれなりに入手出来るし、時間をかけて構わないなら2Pass、3Passで変換すれば良いし、容量が増えて構わないならビットレートやQ値を上げればそれでOK。

記録メディアがどんどん大容量化し、しかも安くなっている現在、少々の動画ファイルの肥大化は私の中でそんなに問題じゃなくなりました。

てな事で最新のFFmpegでh264への変換速度の限界を調べて見たかったんですが。。。
もっと他に有効なオプションがあるのかなぁ?

現時点(2009年1月)では、h.264への変換で速度重視する場合、FFmpegよりMencoderの方が少なくとも1.4倍は高速。アレコレ設定をOFFにしたMencoderは1.8倍高速です。