2008年5月版 Pantherでffmpegをビルド

Back

 Leopardいれるぞぉーと意気込んでいたはずが未だにPanther。しかしまあ、radeon8500、powerlogix CPUなどハードのサポート具合を考えると、Cubeに はPantherが一番合っ ている気もする。とはいうものの、ソフトウェア面ではさすがにかなーり放置プレイ扱い気味になってきた。ffmpegも2007年末版は素直にビルドでき たのが、今 の最新版はconfigureすらまともに動かず。

 WMV対応などを考えると最新版が欲しいのでやはりなんとかビルドさせたい。というわけで以下メモ。



 とりあえず本家のダウンロードページの説明にあるように、gitでffmpeg(git-4c69262)とswscaleのソースツリーを引っ張って きてconfigure。の 前に、 configureの中をいじる。

configure

-sym=$($nm -P -g $TMPO | grep ff_extern)
+sym=$($nm -j -g $TMPO | grep ff_extern)

 の部分と、

-od -A n -t x1 $TMPO | grep -q '42 *49 *47 *45' && enable bigendian
+#od
-A n -t x1 $TMPO | grep -q '42 *49 *47 *45' &&
+enable bigendian

 の部分をかようにやっつけで修正。で、configureする。


% ./configure --enable-libx264 --enable-libfaad --enable-libfaac --enable-liba52 \
 --enable-libamr-nb --enable-libamr-wb --enable-libmp3lame --enable-pthreads \
--enable-libxvid --enable-gpl --enable-nonfree --enable-swscale \
--enable-postproc --enable-powerpc-perf --cpu=7457


 次に一部ソースを修正。

libavformat/rtp_h264.c

-    assert(data);
-    assert(data->cookie == MAGIC_COOKIE);
-    assert(buf);
+/*  
+    assert(data);
+    assert(data->cookie == MAGIC_COOKIE);
+    assert(buf);
+*/

 この部分をコメントアウト。


ffmpeg.c

#ifdef HAVE_SYS_RESOURCE_H
#include <sys/types.h>
#include <sys/resource.h>  ←これを
#elif defined(HAVE_GETPROCESSTIMES)
#include <windows.h>
#endif

#if defined(HAVE_TERMIOS_H)
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/time.h>
#include <termios.h>
#include <sys/resource.h>  ←ここに移動
#elif defined(HAVE_CONIO_H)
#include <conio.h>


 この部分を修正。


 次にmakeするが、あっという間にコケる。libxxx/libxxx.aがありません、といくつも出るので地味にメッセージ出たlibxxxに移動 してmake、出なくなるまでやる。Makefileをいじって直せばいいのだろうが、ffmpegのMakefileはややこしくてよくわからず。

 ビルドが完了したらmake installはできないので、地味にffmpegを/usr/local/binにコピーして終了。

以上。




2008 5/14 updated / C's gallery OS X Tips