2009年9月6日日曜日

【ffmpeg の導入】 4.ライブラリのビルド

ライブラリのビルドを行う。
zip 形式のファイルは、MSYS に unzip を入れていないので、
Windows のツールで解凍した。



■ liba52

$ tar zxvf a52dec-0.7.4.tar.gz
$ cd a52dec-0.7.4
$ ./configure --disable-shared
$ make
$ mkdir -p /mingw/include/a52dec
$ cp include/a52.h /mingw/include/a52dec/
$ cp liba52/.libs/liba52.a /mingw/lib/


■ Xvid

どうでもいいことだが、「=build」ディレクトリは、なぜ=が付くの?
このディレクトリ名だとコマンドラインの補完機能が効かなくなるのだが・・・

xvidcore-1.2.2.zip を解凍

$ cd xvidcore-1.2.2/build/generic
$ ./configure --disable-shared
$ make
$ cp =build/xvidcore.a /mingw/lib/libxvidcore.a
$ cp ../../src/xvid.h /mingw/include/


■ faac

faac-1.28.zip を解凍

$ cd faac-1.28
$ ./bootstrap
$ ./configure --disable-shared --without-mp4v2
$ make
$ cp include/faac.h /mingw/include/
$ cp include/faaccfg.h /mingw/include/
$ cp libfaac/.libs/libfaac.a /mingw/lib/


■ faad

faad2-2.7.zip を解凍

以下のソースを修正
[common/mp4ff/mp4ff_int_types.h]

4行目
#if defined (_WIN32)

#if defined (_WIN32) && !defined(__MINGW32__)

後はビルド

$ cd faad2
$ autoreconf -vif
$ ./configure --disable-shared
$ make
$ cp include/faad.h /mingw/include/
$ cp include/neaacdec.h /mingw/include/
$ cp libfaad/.libs/libfaad.a /mingw/lib/


■ LAME
ここで nasm の出番。ただし、nasm のバグ(2.07 でも未修正らしい)によりソースの修正が必要。

tar zxvf lame-398-2.tar.gz

以下のソースを修正。
[libmp3lame/i386/Makefile.in]

488 行目
$(ECHO) "non_pic_object='$*.o'" >>$@

$(ECHO) "non_pic_object='.libs/$*.o'" >>$@

そして、ビルドする

$ cd lame-398-2
$ ./configure --disable-shared --disable-frontend --enable-nasm
$ make
$ mkdir -p /mingw/include/lame
$ cp include/lame.h /mingw/include/lame/
$ cp libmp3lame/.libs/libmp3lame.a /mingw/lib/


■ pthreads

$ tar zxvf pthreads-w32-2-8-0-release.tar.gz
$ cd pthreads-w32-2-8-0-release
$ make clean GC
$ cp pthread.h /mingw/include/
$ cp sched.h /mingw/include/
$ cp libpthreadGC2.a /mingw/lib/

ビルドすると pthreadGC2.dll も作成される、
この dll は ffmpeg.exe を実行する時に、
同じディレクトリにある必要がある。

■ x264

$ tar jxvf x264-snapshot-20090904-2245.tar.bz2
$ cd x264-snapshot-20090904-2245
$ ./configure --enable-pthread
$ make
$ cp x264.h /mingw/include/
$ cp libx264.a /mingw/lib/


以上