libvorbisで高音質化したWebM対応ffmpeg
-----
2010.5.29追記:
蒼弓ノート様の記事を見て、Vorbis音声のエンコードはビットレート指定ではなく
クオリティ指定にすべきだと知ったので、オプションの記述を変更しました。
-----
以前の記事で、「A Dolphin's Journal of Events」で公開されている
WebM対応ffmpegによるWebMエンコードについて書きました。
しかしながら、WebMスレを読んでみると、このffmpegでは、
「Vorbis音声のエンコードに、libavcodecのVorbisエンコーダしか使えない」
という弱点(?)もあるようです。
「蒼弓ノート」の「WebMとYouTubeとVorbis」という記事によると、
libavcodecのVorbisエンコーダの音質は、かなりひどいもののようです。
Youtubeで公開されているWebM動画でもこれを使っているらしく、かなりひどいらしい・・・。
「蒼弓ノート」の筆者である蒼弓さんは、Xiph.orgのlibvorbisをベースにした
「aoTuV」
というVorbisエンコーダを開発しており、長年Vorbisの音質向上に取り組んでこられた方のようです。
WikipediaのaoTuVの記事を見ても、その優秀さが伝わってきます。
せっかく優れたエンコーダがあるのに、WebMではひどいエンコーダが使われているのですから、
それを嘆く気持ちもよくわかります。
そんなわけで、libavcodecのVorbisエンコーダを使っていては、WebMの音質はひどいものになります。
Vorbis音声だけaoTuVで作って、上のffmpegでWebMファイルにMuxするという手はありますが、
ちょっと面倒ではありますね。
それを考慮してくれたのか、POPさんがTwitterで
WebMパッチr3 + libvorbis 1.3.1
というffmpegの実行ファイルをビルドして公開してくれています。
libvorbisのVorbisエンコーダを利用できますので、ちゃんとした音質になるようです。
このffmpegでWebMエンコードする場合のサンプルコマンドは以下のとおり。
ffmpeg -i D:\test.avi -vcodec libvpx -b 2000k -level 300 -acodec libvorbis -aq 2 D:\test.webm
※WebMのr3パッチから、VP8のコーデック指定は"libvpx"になった模様。
(r2ではlibvpx_vp8だったようですが。)
※-acodec libvorbisを指定することで、高音質のlibvorbisのVorbisエンコーダが使われます。
-acodec vorbisと指定すると、音質のひどいlibavcodecのVorbisエンコーダが使われてしまうので注意。
※2010.5.29追記
当記事作成時は音声を
-ab 128000
のようにビットレートで指定していましたが、蒼弓ノート様の記事を見て、
クオリティ指定すべきだということを知ったので、
-aq 2
のように指定するよう修正しました。
記事によると、クオリティ指定の数値の目安は、
「"-aq"の値は目安として0~10の値がが64~500kbpsに対応します。
ビットレートはあくまで目安です。VBRなので、ソースによって大きく変動する場合もありますが、
それは主観上の質を出来るだけ一定に保つためですので、そういうものだとお考え下さい。」
とのことです。
なお、libvorbis 1.3.1ベースのaoTuVもテストリリースされているようなので、
更に高音質を求める人は、これを使ってみるのもよいかもしれませんね。
| 固定リンク
この記事へのコメントは終了しました。


コメント