tipok.org.ua - HE-AAC+ Codec as Shared Library
HE-AAC をサポートするライブラリ libaacplus と FFmpeg にそれを対応させるパッチを公開してくれている。これを使うと FFmepg においてライブラリである libaacplus を使用した HE-AAC(3GPP High Efficiency Advanced Audio Codec)の変換が出来るようになる。
※ 注意 - ライブラリと FFmpeg のどちらもソースからビルドをする必要がある。既に APT を用いて FFmpeg をインストールしている場合は要注意だが、 /usr/local ディレクトリ下にインストールされるので APT を使って /usr ディレクトリ下にインストールされた FFmpeg とは競合しない。
1: インストールに必要なパッケージの用意
autoconf
libaacplus のインストールは autogen.sh で行う。
subversion
パッチを当てる事が可能なリビジョンの FFmpeg のソースのチェックアウトに使用する。
patch
FFmpeg のソースにパッチを当てるのに使用する。
libx264-99 以上のバージョンの libx264
FFmpeg で libx264(H.264)を使う場合に libx264-99 以上のバージョンが必要。
2: インストール
1. libaacplus (2.0.2 new API)
ソースファイルをダウンロードして展開した後、次のコマンドでインストール。
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
2. FFmpeg
How To では「Here is code for debian/ubuntu linux」と表記されている。ディストリビューションによっては問題が発生するかもしれない。
How To のコマンドの通りにパッチを当てても「Perhaps you used the wrong -p or --strip option?」と問われパッチが当たらない場合は、全ての項目を手動で当てる必要がある。
$ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg -r
25711$ cd ffmpeg
$ wget http://tipok.ath.cx/downloads/media/aac+/libaacplus-simple-sample/ffmpeg-patch/ffmpeg-aacp2.10112010.diff
$ touch libavcodec/libaacplus.c
$ patch -p7 < ffmpeg-aacp2.10112010.diff
パッチを当てようとすると次の動作を問われるので、 「working copy」の値を「File to Path」に入力する。これを7回繰り返すと完全にパッチが当たる。
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: configure
|===================================================================
|--- configure (revision 25711)
|+++ configure (working copy) ← この太字の位置の値を
--------------------------
File to patch: configure ← ここに入力
パッチによって ./configure で libaacplus を使用するオプションの --enable-libaacplus がサポートされる。これを含めて FFmpeg を設定し、ビルド。この時に他にサポートしたいコーデックがあったら一緒に設定しておく(下の configure は一例としてメジャーな形式をサポートした単純なもの)。 選択出来るライブラリやオプションは ./configure --help コマンドで参照出来る。ソースからビルドをするのでそれぞれのデベロップメント・パッケージ(パッケージの語尾が dev のパッケージ)をインストールしておく必要がある。
$ ./configure --prefix=/usr/local --enable-shared --enable-gpl --enable-nonfree --enable-libx264 --enable-libxvid --enable-libvorbis --enable-libfaac --enable-libmp3lame --enable-libaacplus
$ make
$ sudo make install
このライブラリでは HE-AAC のデコードは出来ない。デコードには libfaad2 が対応。
・WinFF でプリセットを作成
WinFF
FFmpeg の GUI ラッパーである WinFF に HE-AAC に対応した FFmpeg のプリセットを作成しておくと便利だ。ただし、比較的新しいリビジョンの FFmpeg では若干オプションに指定するパラメータが変更されており(ビットレート指定で kb ではなく k のみ)、サポートされているバージョンの WinFF ではこれに対応しておらず、プリセットとして機能しない点に注意。
メニューの「Edit」から「Preferences」を選択して使用する FFmpeg をインストールしたものに切り替える。上記のコマンドでビルドをすると「/usr/local/bin」ディレクトリ下にインストールされるのでそれを指定。
正しく機能しているとそのプリセットで変換可能となる(音声のコーデックに libaacplus が使われているのが確認できる)。
Choice at you uneasy
返信削除