FFmpegをOgg Vorbis対応にする

以前にrtmpとopensslに対応するようにffmpegをhomebrewでインストールしました。
今回、Ogg Vorbisのことを調べていたら、ffmpegにlibvorbisを追加しないとマトモなVorbisファイルを作れないことを知りました。
atword.jp - このウェブサイトは販売用です! - レンタル テンプレート 無料ブログ ワードプレス サーバ リソースおよび情報
ということで、再度入れ直すことに。

インストール

まずアンインストール。

$ brew uninstall ffmpeg
Uninstalling /usr/local/Cellar/ffmpeg/1.2.1...

そして適切なオプション(--with-openssl --with-rtmpdump --with-libvorbis)を付けてインストール。

$ brew install ffmpeg --with-openssl --with-rtmpdump --with-libvorbis
==> Installing ffmpeg dependency: xz
==> Downloading http://fossies.org/linux/misc/xz-5.0.5.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/xz/5.0.5
==> make install
🍺  /usr/local/Cellar/xz/5.0.5: 58 files, 1.5M, built in 24 seconds
==> Installing ffmpeg dependency: libogg
==> Downloading http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/libogg/1.3.0
==> make
==> make install
🍺  /usr/local/Cellar/libogg/1.3.0: 85 files, 520K, built in 9 seconds
==> Installing ffmpeg dependency: libvorbis
==> Downloading http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.xz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/libvorbis/1.3.3
==> make install
🍺  /usr/local/Cellar/libvorbis/1.3.3: 162 files, 7.0M, built in 17 seconds
==> Installing ffmpeg
==> Downloading http://ffmpeg.org/releases/ffmpeg-1.2.1.tar.bz2
Already downloaded: /Library/Caches/Homebrew/ffmpeg-1.2.1.tar.bz2
==> ./configure --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable
==> make install
🍺  /usr/local/Cellar/ffmpeg/1.2.1: 147 files, 26M, built in 2.3 minutes

なお、Mac mini(1世代前)だから2.3分で済んでますが、2代目MBA(しかもメモリスワップ中)だと

/usr/local/Cellar/ffmpeg/1.2.1: 147 files, 26M, built in 17.4 minutes

だったことを記録しておきます。

適切なオプションなど

ffmpegを使う場合の注意としては…エンコードする際には"-acodec libvorbis"を指定することが必要です。"-acodec vorbis"は使用しないことを強くお勧めします。
なお、特別な理由が無い限り"-ab"オプション(ビットレート指定)ではなく"-aq"オプション(クオリティ指定)を使用してください。libvorbisやaoTuVはQuality based VBRで最適化されています。CBR(固定ビットレート)やABR(平均ビットレート)でのエンコードは音質的にも、速度的にも十分に最適化されてはいません。
"-aq"の値は目安として0〜10の値が64〜500kbpsに対応します。
atword.jp - このウェブサイトは販売用です! - レンタル テンプレート 無料ブログ ワードプレス サーバ リソースおよび情報

とのことですが、これを知らずにエンコードした結果を示しておきます。
gogakuondemand.rbのffmpegのオプションを変更した結果です。
ダウンロードしたのは「英語で読む村上春樹」です。音声の時間は30分です。
なお、ストリーミングのオリジナルであるm4aフォーマットでのファイルサイズは10.8MB、mp3フォーマットでは14.4MBです。

Input #0, ogg, from '/Volumes/share/tmp/Ruby/radiru/gogaku/dev/yomu/英語で読む村上春樹_2013_08_04_.ogg':
  Duration: 00:30:00.87, start: 0.000000, bitrate: 441 kb/s
    Stream #0:0: Audio: flac, 24000 Hz, stereo, s32
Input #0, ogg, from '/Volumes/share/tmp/Ruby/radiru/gogaku/dev/yomu/英語で読む村上春樹_2013_08_04_enc.ogg':
  Duration: 00:30:00.87, start: 0.000000, bitrate: 48 kb/s
    Stream #0:0: Audio: vorbis, 24000 Hz, stereo, fltp, 66 kb/s
Input #0, ogg, from '/Volumes/share/tmp/Ruby/radiru/gogaku/dev/yomu/英語で読む村上春樹_2013_08_04.ogg':
  Duration: 00:30:00.87, start: 0.000000, bitrate: 47 kb/s
    Stream #0:0: Audio: vorbis, 24000 Hz, stereo, fltp, 64 kb/s
Input #0, ogg, from '/Volumes/share/tmp/Ruby/radiru/gogaku/dev/yomu/英語で読む村上春樹_2013_08_04.ogg':
  Duration: 00:30:00.87, start: 0.000000, bitrate: 34 kb/s
    Stream #0:0: Audio: vorbis, 24000 Hz, stereo, fltp, 36 kb/s

ということで、オリジナルサイズよりも小さくなります。音質の差はほとんどありません。
具体的に言えば、m4aのほうが繊細、Ogg Vorbisのほうが押しが強い。聞きやすさは好みによるかと思います。
もしも適切な音質のままファイルサイズを小さくするのであれば、Ogg Vorbisも検討すべきだと感じました。
iOSにもandroidにも再生アプリはあります。

QuickTime / iTunesOgg Vorbisを再生できるようにする

Macの場合(ただしSnowLeopardまでorz)

旧・Macの手書き説明書 - FC2 BLOG パスワード認証
http://downloads.xiph.org/releases/xiph-qt/xiph-qt-0.1.9.dmg ←直リンク
このイメージファイルを開いて「XiphQT.component」を

または

へドロップするだけです。
Lion以上ではこのXiphQTプラグインが動作しないようです>_<*1

Windowsの場合(Win7とか8とかで動作するのかしら??)

iTunesの限界突破!「Ogg Vorbis」を聴けるようにする裏技
http://downloads.xiph.org/releases/xiph-qt/xiph-qt-win32-0.1.5.exe ←直リンク
このexeファイルを開いて(解凍して)中にある「XiphQT.qtx」を

へ移動させます。

*1:64bitで動作しているため、のようです。