MacPortsでのffmpegのインストールで必要なさそうな苦労をした話
前にffmpegをソースからインストールしようとしてあっさり失敗したんですが、MacPorts で ffmpeg をビルドして flv を H.264 であれこれする - Debian GNU/Linux 3.1 on PowerMac G4をみてMacPortsからだと簡単そうだったので試してみましたが、それなりに考えてしまいました。
経緯
MacPortsはdmgでインストールして
sudo port selfupdate
したけど、dmgで最新だったからとくに変わらず。
インストールの指定はこんなんで実行!
sudo port install ffmpeg +lame +libogg +vorbis +faac +faad +xvid +x264 +a52
theora
一番始めに止まった。けど順番が悪かっただけみたいだから、今からやり直せば入りそうだけど、使わなそうなので、パラメータから外した。
---> Cleaning libvorbis ---> Fetching libtheora ---> Attempting to fetch libtheora-1.0beta1.tar.bz2 from http://downloads.xiph.org/releases/theora/ ---> Verifying checksum(s) for libtheora ---> Extracting libtheora ---> Applying patches to libtheora ---> Configuring libtheora ---> Building libtheora with target all Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_libtheora/work/libtheora-1.0beta1" && make all " returned error 2 Command output: gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../lib -I../lib/dec -I../lib/enc -I/opt/local/include -I/opt/local/include -Wall -Wno-parentheses -O3 -fforce-addr -fomit-frame-pointer -finline-functions -funroll-loops -O2 -MT libtheora_la-idct.lo -MD -MP -MF .deps/libtheora_la-idct.Tpo -c dec/idct.c -o libtheora_la-idct.o >/dev/null 2>&1 mv -f .deps/libtheora_la-idct.Tpo .deps/libtheora_la-idct.Plo <中略> gcc -DHAVE_CONFIG_H -I. -I.. -I../include -I../lib -I../lib/dec -I../lib/enc -I/opt/local/include -I/opt/local/include -Wall -Wno-parentheses -O3 -fforce-addr -fomit-frame-pointer -finline-functions -funroll-loops -O2 -MT libtheora_la-dsp_mmx.lo -MD -MP -MF .deps/libtheora_la-dsp_mmx.Tpo -c enc/x86_32/dsp_mmx.c -fno-common -DPIC -o .libs/libtheora_la-dsp_mmx.o /var/tmp//ccFcFinp.s:739:no such 386 instruction: `movsx' /var/tmp//ccFcFinp.s:789:no such 386 instruction: `movsx' /var/tmp//ccFcFinp.s:853:no such 386 instruction: `movsx' make[2]: *** [libtheora_la-dsp_mmx.lo] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 Error: The following dependencies failed to build: libtheora subversion apr apr-util neon x264 Error: Status 1 encountered during processing.
x264
次にこれ。assemblerがないと。
$ sudo port install x264 ---> Fetching x264 ---> Verifying checksum(s) for x264 ---> Extracting x264 ---> Configuring x264 Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_x264/work/x264-snapshot-20070411-2245" && ./configure --prefix=/opt/local --enable-pthread --enable-pic " returned error 1 Command output: ./configure: line 214: [: -lt: unary operator expected ./configure: line 231: 1091 Bus error $AS conftest.asm $ASFLAGS $2 -o conftest.o 2>$DEVNULL No assembler. Please install yasm. Error: Status 1 encountered during processing.
失敗するたびに
sudo port clean x264
ってやんないといけないのがちょっとめんどい。
yasm
yasmは普通に。
$ sudo port install yasm ---> Fetching yasm ---> Attempting to fetch yasm-0.6.1.tar.gz from http://www.tortall.net/projects/yasm/releases/ ---> Verifying checksum(s) for yasm ---> Extracting yasm ---> Configuring yasm ---> Building yasm with target all ---> Staging yasm into destroot ---> Installing yasm 0.6.1_0 ---> Activating yasm 0.6.1_0 ---> Cleaning yasm
ffmpeg
これでいけるかと思ったけど、やっぱダメだった。
$ sudo port install ffmpeg +lame +libogg +vorbis +faac +faad +xvid +x264 +a52 ---> Fetching ffmpeg ---> Verifying checksum(s) for ffmpeg ---> Extracting ffmpeg ---> Configuring ffmpeg ---> Building ffmpeg with target all Error: Target org.macports.build returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_multimedia_ffmpeg/work/trunk" && make all " returned error 2 <中略> {standard input}:259:Missing operand value assumed absolute 0. {standard input}:260:Missing operand value assumed absolute 0. {standard input}:263:Missing operand value assumed absolute 0. {standard input}:264:Missing operand value assumed absolute 0. {standard input}:431:Missing operand value assumed absolute 0. {standard input}:433:Missing operand value assumed absolute 0. {standard input}:437:Missing operand value assumed absolute 0. {standard input}:457:Missing operand value assumed absolute 0. make[1]: *** [i386/fft_sse.o] Error 1 make: *** [lib] Error 2 rm doc/ffserver.pod doc/ffmpeg.pod doc/ffplay.pod Error: Status 1 encountered during processing.
ここまでが昨日。ここで疲れ果てて就寝。
で、今日調べてみたら、MacPorts - Users - ffmpeg - unable to installに、同じようにはまったひとがいて、バージョン上げやがれと書いてあったので、Xcodeのバージョン上げて実行したら、buildに30分くらいかかったけど、成功した!YATTA!特に何をしたわけでもないけどうれしいよ。
Xcodeのdmgが1GBあって挫けそうになったけど、あきらめないでよかった。
flv2mp3のパラメータ
flvだとmp3がそのまま入っているので、copyを指定すれば、そのmp3の指定をそのまま使うならarとかabの指定はいらないっぽい?
ffmpeg -i foo.flv -acodec copy foo.mp3