トップ 検索 一覧 ヘルプ RSS ログイン

MinGW+ffmpeg(4)LAMEの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!MinGW+ffmpeg(4)LAME
LAMEは言わずと知れたmp3エンコードライブラリ(&コマンド)だ。バージョンも3.97以降はなかなか更新されず、かなり'''"枯れて"'''きた感があり、安定している。
LAMEは言わずと知れたmp3エンコードライブラリ(&コマンド)だ。バージョンも3.97以降はなかなか更新されず、かなり''"枯れて"''きた感があり、安定している。

LAMEはnasmを使用してビルドすることで高速に動作するが、nasmでのビルドには[バグがあるらしく|http://arrozcru.no-ip.org/ffmpeg_wiki/tiki-index.php?page=mp3lame]、修正が必要だ。

libmp3lame/i386/Makefile.inを開き、
 471:.nas.lo: $< nasm.h
 472:	test -d .libs || mkdir .libs
 473:	$(ECHO) '# Generated by ltmain.sh - GNU libtool 1.5 (1.1220 2003/04/05 19:32:58)' >$@
 474:	$(ECHO) "pic_object='.libs/$*.o'" >>$@
 475:	$(ECHO) "non_pic_object='$*.o'" >>$@
 476:	$(NASM) $(NASMFLAGS) $< -o .libs/$*.o -l $@.lst
の475行目を
 471:.nas.lo: $< nasm.h
 472:	test -d .libs || mkdir .libs
 473:	$(ECHO) '# Generated by ltmain.sh - GNU libtool 1.5 (1.1220 2003/04/05 19:32:58)' >$@
 474:	$(ECHO) "pic_object='.libs/$*.o'" >>$@
 475:	$(ECHO) "non_pic_object='.libs/$*.o'" >>$@
 476:	$(NASM) $(NASMFLAGS) $< -o .libs/$*.o -l $@.lst
というようにnon_pic_objectに.libs/を追加する。

あとはコマンドを打つだけだ。
 $ cd lame-3.97
 $ ./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/
ヘッダファイルのインストール先が/mingw/include/lameと、includeの下にサブディレクトリがあることに注意。なお、MP1のサポートを有効にするなら./configureに--enable-decode-layer1を付けても良い。

次はいよいよpthread、そしてx264、ffmpegだ。
ここから先だけで何度やり直したか知れない…まさにキモだ。