« WebMへのエンコード方法(ffmpeg編) | トップページ | WebM公式サイトのDirectShowフィルターがv0.9.7.0にバージョンアップ。ソースも公開。 »

2010年5月27日 (木)

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もテストリリースされているようなので、
更に高音質を求める人は、これを使ってみるのもよいかもしれませんね。

|

« WebMへのエンコード方法(ffmpeg編) | トップページ | WebM公式サイトのDirectShowフィルターがv0.9.7.0にバージョンアップ。ソースも公開。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1278146/34906443

この記事へのトラックバック一覧です: libvorbisで高音質化したWebM対応ffmpeg:

« WebMへのエンコード方法(ffmpeg編) | トップページ | WebM公式サイトのDirectShowフィルターがv0.9.7.0にバージョンアップ。ソースも公開。 »