!!!Aftenの紹介 [[DVD Flick日本語版]]で''AC-3''形式のオーディオエンコーダである[Aften: A/52 audio encoder|http://aften.sourceforge.net/]に対応したので、軽く紹介。 !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|http://code.google.com/p/wavtoac3encoder/]というソフト(バイナリ)の方が有名になっている。 WAV to AC3 EncoderのGoogleCodeのページにはAftenのバイナリも置いてある(一度消え去ったが復活したようだ)。 なお、一応[Doom9にスレッドがある|http://forum.doom9.org/showthread.php?t=113074]が、あまり活発ではないようだ。 一応検索すれば、その他にもAftenのバイナリを置いているサイトは幾つかあるのだが、どれも公式に準ずると言えるほどの体制では行っておらず、''信用してダウンロードできる箇所がない''。 加えて、Aftenの公式最新リリースは0.0.8なのだが、巷にはSVNから取得してビルドしたものも出回っているので分かりづらい。 さらに、恐る恐るそのバイナリを取得してきても、''動かしてみるとクラッシュする''ことが少なくない。 まぁ、元々研究用途なのであるし、自分も研究の一環として''手元でビルドするのが正しい姿勢''だろう。 !!Aftenのビルド このビルドの項はずっと放っておいたのだがやっと書く気が起きた。 Aftenはビルドの手掛りにautotoolsではなくCMakeを利用するようになっている。 これにより広範なビルド環境をサポートしているが、猫科研究所的には[[MinGW猫科研究所パック]]を使ってビルドしたい。 ここでは執筆時点で最新の猫研パックであるa004を使ってビルドする。 !CMakeの入手 まずは、[CMakeの公式サイト|http://cmake.org/]からCMakeのバイナリを入手してくる。 CMakeをもビルドするのは本筋から離れすぎるのでここはバイナリでサクッと楽をしておく。 執筆時点での最新バイナリは''cmake-2.8.0-win32-x86.zip''であった。 これを展開するとbin, doc, man等のお馴染みのディレクトリ構造が現れるので、/mingwに放り込む。 !Aftenのソースを入手 Aftenの公式な最新リリースは0.0.8だが、これのタイムスタンプは''2007''/09/10であり、いかんせんあまりに古い。 ここでは[AftenのSourceForgeのGitリポジトリ|http://aften.git.sourceforge.net/git/gitweb.cgi?p=aften/aften;a=summary]から最新のソースを取得した。 [2010/01/10付けのf92def54bb08a7e34248846e7613f30913a4d84a|http://aften.git.sourceforge.net/git/gitweb.cgi?p=aften/aften;a=snapshot;h=f92def54bb08a7e34248846e7613f30913a4d84a;sf=tgz]がそれだ。 これを適当な場所に置けば準備は完了。 !ビルド 後はコマンドを打つだけだ。 {{pre $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環境にインストールする必要はないので、不要かも知れない。 取り敢えずの動作確認を行いたければ {{pre aften.exe input.wav output.ac3 }} で、デフォルトの1chあたり96kbps(ステレオ=2chなら192kbps)でエンコードされる。