トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

aftenの紹介

Aftenの紹介

DVD Flick日本語版AC-3形式のオーディオエンコーダであるAften: A/52 audio encoderに対応したので、軽く紹介。

AC-3とは

AC-3はDVD-Videoで標準的に採用されている音声圧縮形式で、コンピュータよりもA/V機器に強い人にはドルビーデジタルと言った方が分かりやすいかも知れない。

一般に音声圧縮というとMP3やAACが有名だが、これらは日本ではDVD-Videoの再生機器に必須のコーデックとされていない。このため、DVD-Videoで音声を圧縮しようとすると必然的にAC-3が無難ということになる。

個人的には、AC-3よりもMP3やAACの方が品質対圧縮率が良好な印象が有り、なぜDVD-VideoにAC-3が標準採用となったのかがわからない。一つの推測として、MP3やAACが当時の実装技術レベルとしては複雑すぎであり、AC-3の対抗馬はMP2であった、という図式は考えついた。が、AACはまだしも、MP3はMPEG-1の時代の規格なのに、映像側にMPEG-2を採用しておきながら音声側のMP3を「難しい」というのは、腑に落ちない説明になってしまう。確かにMP3はそのフォーマットとして2chまでしか対応していないが、これは形式(ヘッダ)上の問題で、少し工夫すればマルチチャンネルを実現できないことはなかったはずだ。DTSのように24bitサンプリングに対応しているわけでもないのに、AC-3が敢えて選ばれたのはなぜなのか、ご存じの方がいれば教えていただきたい。

Aftenの出自

AC-3はA/52と呼ばれることもあり、むしろこっちが本来の正式名称なのかも知れない。公式ページによると、Aftenの名前自体、"A Fifty-Two ENcoder"の略から名付けられているらしい。将来的にはAC-3の拡張規格的なE-AC-3(Dolby Digital Plusとも呼ばれる)に対応することを目標にしているとか。

Aftenの出自はffmpegのAC-3エンコーダで、どういう経緯で分離したのかは不明だが、AC-3のエンコーダとしてはffmpegよりも信頼できそうだ。オプションも多く、ffmpegよりも詳細な設定が可能になっている。

 バイナリの入手

Aftenはオープンソースだが、他の多くのオープンソースコーデックがそうであるように、公式にはバイナリが配布されていない。研究目的だからだろう。そのせいか、Aften自身はあまり有名ではなく、Aftenを利用するWAV to AC3 Encoderというソフト(バイナリ)の方が有名になっている。WAV to AC3 EncoderのGoogleCodeのページにはAftenのバイナリも置いてある(一度消え去ったが復活したようだ)。なお、一応Doom9にスレッドがあるが、あまり活発ではないようだ。

一応検索すれば、その他にもAftenのバイナリを置いているサイトは幾つかあるのだが、どれも公式に準ずると言えるほどの体制では行っておらず、信用してダウンロードできる箇所がない。加えて、Aftenの公式最新リリースは0.0.8なのだが、巷にはSVNから取得してビルドしたものも出回っているので分かりづらい。さらに、恐る恐るそのバイナリを取得してきても、動かしてみるとクラッシュすることが少なくない。

まぁ、元々研究用途なのであるし、自分も研究の一環として手元でビルドするのが正しい姿勢だろう。

 Aftenのビルド

このビルドの項はずっと放っておいたのだがやっと書く気が起きた。

Aftenはビルドの手掛りにautotoolsではなくCMakeを利用するようになっている。これにより広範なビルド環境をサポートしているが、猫科研究所的にはMinGW猫科研究所パックを使ってビルドしたい。ここでは執筆時点で最新の猫研パックであるa004を使ってビルドする。

CMakeの入手

まずは、CMakeの公式サイトからCMakeのバイナリを入手してくる。CMakeをもビルドするのは本筋から離れすぎるのでここはバイナリでサクッと楽をしておく。執筆時点での最新バイナリはcmake-2.8.0-win32-x86.zipであった。これを展開するとbin, doc, man等のお馴染みのディレクトリ構造が現れるので、<msys>/mingwに放り込む。

Aftenのソースを入手

Aftenの公式な最新リリースは0.0.8だが、これのタイムスタンプは2007/09/10であり、いかんせんあまりに古い。ここではAftenのSourceForgeのGitリポジトリから最新のソースを取得した。2010/01/10付けのf92def54bb08a7e34248846e7613f30913a4d84aがそれだ。

これを適当な場所に置けば準備は完了。

ビルド

後はコマンドを打つだけだ。

$tar -zxvf aften-f92def54bb08a7e34248846e7613f30913a4d84a.tar.gz
$cd aften
$mkdir default
$cd default
$cmake -G "MSYS Makefiles" .. -DCMAKE_INSTALL_PREFIX:STRING="/aften"
$make

これでaften.exeが完成する。

"MSYS Makefiles"がMinGW+MSYS環境用の指定になる。"MinGW Makefiles"という指定も可能だが、これはMSYS環境がないMinGW単独環境で使用する。他にも様々な環境が指定できるようなので、興味があれば単にcmakeと打ってみるとよい。

CMAKE_INSTALL_PREFIX:STRING="/aften"は上記に続けてmake installをする場合のインストールパスの指定だが、特にMinGW環境にインストールする必要はないので、不要かも知れない。

取り敢えずの動作確認を行いたければ

aften.exe input.wav output.ac3

で、デフォルトの1chあたり96kbps(ステレオ=2chなら192kbps)でエンコードされる。

最終更新時間:2010年01月29日 01時30分40秒