前回エントリ「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倍高速です。