(2008/12/20追記)
macで PPCで 10.3。
今となってはこの環境、ほんとマイナー過ぎて何を探そうにも非対応の嵐。(死
(そのうえ「日本語で」も条件に付けると素晴らしく絶望的)
他力本願じゃffmpegの最新バイナリ入手は困難だと思い、どうにか自力でビルドできないかと色々ぐぐってた所「2008年5月版 Pantherでffmpegをビルド」という素敵なページを見つけたので、今回はそれを元にビルドしてみることに。
事前に必要そうなコーデックは「ffmpeg再インストール - IT戦記」辺りを参考に拾ってきて適当にビルド。
(色々とわからないことだらけなので何をどうぐぐれば良いかもわからない中、こういうのまとめてくれる方は本当にありがたい)
参考記事当時の環境がよくわからないのでコーデックやffmpegのソースはとりあえず現時点で(たぶん)最新版を使うことにした。
自分が今回入れたSVN-r16143を改めて拾ってくる場合は以下のようにする
svn co -r16143 svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg_SVN-r16143
準備が出来たら以下のように作業を進める(いくらか参考元から微妙に変更。)
-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 cc="gcc-4" --enable-gpl --enable-nonfree --enable-postproc --enable-swscale --enable-pthreads --enable-libamr-nb --enable-libamr-wb --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264 --enable-libxvid --cpu=7457
libavformat/rtp_h264.c
-#ifdef DEBUG
- assert(data);
- assert(data->cookie == MAGIC_COOKIE);
-#endif
- assert(buf);
+ /*
+#ifdef DEBUG
+ assert(data);
+ assert(data->cookie == MAGIC_COOKIE);
+#endif
+ 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
libなんちゃらがありません的なエラーが頻発するので該当ディレクトリに移動してひたすらmake
何回か繰り返してると終了する(はず)ので出来たffmpegバイナリを適当なbinにつっこんで終わり。
とりあえず "らけった版" に無い-sws_flags lanczosとか
今一動作が怪しげだったdct8x8(parti8x8)が使えるようになってめでたしめでたし
……と思いきや、x264のビルドがやっつけ過ぎたせいか
libx264指定時にピンクとかグリーンの■なノイズが乗ってしまう……
B-framesを使用しなければ結構減るけど。。
(2008/12/20追記)--------------------------------------------------------------
どうやらBフレーム関係とpartp8x8の使用を控えれば問題のノイズは発生しないよう
ビルド可能なリビジョンについて:
・r15797, r16000, r16089, r16143辺りはどれも大体同じ感じ
・r15xxxの前半辺りだとlibx264.cで問題がでてうまくビルドできない
それよりさらに古いと色々不整合が起きてぬるぽ
・r17xxxはビルドできても映像がかなり乱れる
自分の環境(と知識)だとこの辺りが限界かなー
とりあえず一段落ついたんで暫くwarningとかerror見なくて済みそうで何より。
macで PPCで 10.3。
今となってはこの環境、ほんとマイナー過ぎて何を探そうにも非対応の嵐。(死
(そのうえ「日本語で」も条件に付けると素晴らしく絶望的)
他力本願じゃffmpegの最新バイナリ入手は困難だと思い、どうにか自力でビルドできないかと色々ぐぐってた所「2008年5月版 Pantherでffmpegをビルド」という素敵なページを見つけたので、今回はそれを元にビルドしてみることに。
事前に必要そうなコーデックは「ffmpeg再インストール - IT戦記」辺りを参考に拾ってきて適当にビルド。
(色々とわからないことだらけなので何をどうぐぐれば良いかもわからない中、こういうのまとめてくれる方は本当にありがたい)
参考記事当時の環境がよくわからないのでコーデックやffmpegのソースはとりあえず現時点で(たぶん)最新版を使うことにした。
自分が今回入れたSVN-r16143を改めて拾ってくる場合は以下のようにする
svn co -r16143 svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg_SVN-r16143
準備が出来たら以下のように作業を進める(いくらか参考元から微妙に変更。)
1. configure の修正(2箇所を以下のように書き換え)
-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
2. こんふぃぎゃー
%./configure cc="gcc-4" --enable-gpl --enable-nonfree --enable-postproc --enable-swscale --enable-pthreads --enable-libamr-nb --enable-libamr-wb --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libx264 --enable-libxvid --cpu=7457
3. 二つほどソースを修正。
libavformat/rtp_h264.c
-#ifdef DEBUG
- assert(data);
- assert(data->cookie == MAGIC_COOKIE);
-#endif
- assert(buf);
+ /*
+#ifdef DEBUG
+ assert(data);
+ assert(data->cookie == MAGIC_COOKIE);
+#endif
+ 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>
4. make
よくわからないので特にオプション付けずにmake
libなんちゃらがありません的なエラーが頻発するので該当ディレクトリに移動してひたすらmake
何回か繰り返してると終了する(はず)ので出来たffmpegバイナリを適当なbinにつっこんで終わり。
とりあえず "らけった版" に無い-sws_flags lanczosとか
今一動作が怪しげだったdct8x8(parti8x8)が使えるようになってめでたしめでたし
……と思いきや、x264のビルドがやっつけ過ぎたせいか
libx264指定時にピンクとかグリーンの■なノイズが乗ってしまう……
B-framesを使用しなければ結構減るけど。。
(2008/12/20追記)--------------------------------------------------------------
どうやらBフレーム関係とpartp8x8の使用を控えれば問題のノイズは発生しないよう
ビルド可能なリビジョンについて:
・r15797, r16000, r16089, r16143辺りはどれも大体同じ感じ
・r15xxxの前半辺りだとlibx264.cで問題がでてうまくビルドできない
それよりさらに古いと色々不整合が起きてぬるぽ
・r17xxxはビルドできても映像がかなり乱れる
自分の環境(と知識)だとこの辺りが限界かなー
とりあえず一段落ついたんで暫くwarningとかerror見なくて済みそうで何より。