音風景ブログ

目隠しテストによるエンコーダの音質評価などを行うブログです。

FDK-AACが使えるFFmpegのビルド

64bit Windows上でFDK-AACが使えるFFmpegを作る方法。FDK-AACは、2013年6月現在、FFmpegに組み込んで使える中では最高品質のAACエンコーダ。


まず、64bit Windowsで使えるビルド環境(MinGW + MSYS)をダウンロードします。
ちなみに、実行ファイルは32bitになります。
http://xhmikosr.1f0.de/tools/



赤丸のファイル(MSYS_MinGW-w64_GCC_481_x86-x64_Full.7z, 約60MB)を落としたら、7zファイルを開ける解凍ソフトで展開してください。



展開すると、ファイルmsys.batがMSYSフォルダの中にあるので、ダブルクリックします。



すると、Linuxの端末(sh)風のコマンドを実行できるウィンドウが開きますので、これから、ビルドのための命令をここで実行することになります。
一旦ウィンドウを閉じてください。


次に、FDK-AACのインストールをします。
http://sourceforge.net/projects/opencore-amr/files/fdk-aac/

最新版のFDK-AACをダウンロードします。わかりやすい位置、例えばCドライブ直下にFFmpegというフォルダを作って、そこにダウンロードしたfdk-aac-0.1.1.tar.gzを移動してください。ついでにMSYSフォルダも同じフォルダに移動しておきましょう。MSYSフォルダの中のmsys.batをもう一度ダブルクリックします。


次に、

cd (作ったフォルダのパス)
ls
と入力してください。lsと入力した後に、fdk-aac-0.1.1.tar.gzがあれば合格です。ここら辺はまさにLinux的な操作ですね。


次に、

tar xzf fdk-aac-0.1.1.tar.gz
と入力してください。これで、tar.gzが解凍され、fdk-aac-0.1.1というフォルダができます。


次に、

cd fdk-aac-0.1.1と入力してください。カレントフォルダが今C:\FFmpegなら、これでC:\FFmpeg\fdk-aac-0.1.1に移動します。


次に、
./configure --prefix=/mingw/i686-w64-mingw32
と入力してください。この操作は時間がかかります。少し待つと、以下のようになるはずです。


次に、
make
最後に、
make install
と入力。これでFDK-AACコンパイルとインストールが終わりました。

できたFDK-AACは、MSYSフォルダの中の、mingwフォルダの中の、i686-w64-mingw32フォルダの中の、bin、include、libフォルダの中にそれぞれ格納されています。更新日時を見ると、どれが新しくできたファイルか分かります。



次に、FFmpegをダウンロードします。
http://ffmpeg.org/download.html

にアクセスして、赤丸のリンクからダウンロードします。ダウンロードしたら、MSYSと同じフォルダに移動しておきます。


次に、ウィンドウから、
cd ../
と入力。これでカレントフォルダが一つ戻る。次に、

tar xzf ffmpeg-HEAD-4110828.tar.gz
と入力。4110828のところは、実際にダウンロードしてきた名前にしてください。ちなみに、前に入力したコマンドと似たようなコマンドを入力するには、キーボードの↑キーを押すと過去の履歴がでますので、それを使ってください。


次に、
cd ffmpeg-HEAD-4110828
と入力。やはりここも、実際にダウンロードしてきた名前にしてください。
次に、
./configure --enable-gpl --enable-version3 --enable-nonfree --enable-libfdk-aac --extra-ldflags=-static --extra-cflags='-march=native -mfpmath=sse' --optflags=-O2
と入力。この作業は2分ほどかかります。終わると、

となります。-march=nativeは、あなたが今使っているCPUで使える命令をフルに活用する、ということです。そのため、できたバイナリは新しい命令に対応していない古いPCで実行できないことがあります(その場合、プログラムが強制終了する)。-march=noconaにすると、Pentium D(2006)以降のPCで動くはずですが、画面にあるとおり、この作業でできるバイナリはFDK-AACを含むので再配布不可能です。


次に、
make
と入力。この作業は15分ほどかかるはずですが、これが最後です。終わったら、ffmpeg.exeがffmpegフォルダの中にあるはずです。


あった! ffmpeg.exe!


作成に当たっては、
http://blog.k-tai-douga.com/category/352503-1.html
http://looooooooop.blog35.fc2.com/blog-entry-968.html
を参考にさせてもらいました。