MacPorts のインストール準備
特に難しい事はない。MacPorts Wiki JP の手順に従ってインストールすれば良い。
Xcode Tools の X11 SDK も入れろってあるけど、既にインストールしてある Xcode Tools には入っていないので、面倒だから入れなかった。
XWindows(X11) もインストールを強くお勧め(highly recommended)ってあるけど、ffmpeg 使うだけなら必要ない(と勝手に思う)からインストールはしていない。
shell 環境は素直に
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
を ~/.profile に入れておいた。
とりあえず env してみた結果
powerbook-g4-15:~ paraches$ env TERM_PROGRAM=Apple_Terminal TERM=xterm-color SHELL=/bin/bash TERM_PROGRAM_VERSION=133 USER=paraches __CF_USER_TEXT_ENCODING=0x1F5:1:14 PATH=/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin XML_CATALOG_FILES= PWD=/Users/paraches SHLVL=1 HOME=/Users/paraches LOGNAME=paraches _=/usr/bin/env
MacPorts のインストール
MacPorts の左上の Downloads から辿る。今は 1.4.0 が最新みたいだ。Mac OS X 10.4 用の dmg をダウンロードしてマウント。MacPorts-1.4.0.pkg をダブルクリックすればインストーラが起動する。
後は先へ進んで行くだけでインストールは終了。
次にアプリケーション/ユーティリティにあるターミナルを起動。MacPorts を最新バージョンにするため selfupdate を実行する。
powerbook-g4-15:~ paraches$ sudo port selfupdate Password: DarwinPorts base version 1.430 installed Downloaded MacPorts base version 1.440 Configuring, Building and Installing new MacPorts base selfupdate done!
なにやら 1.440 まで新しくなった、今後新しいバージョンにはこのコマンドでアップデートできる。
ffmpeg を探してインストール
まずは簡単に MacPorts ffmpeg でググってみた。サクっと ffmpeg の port が見つかった。なにやら DarwinPorts の頃のページみたいだけど、port file の日付は新しいね。
って、別にわざわざググらなくても port search ffmpeg して port variants ffmpeg すれば port の有無も用意されてる variant もわかるんだけど…
powerbook-g4-15:~ paraches$ port search ffmpeg ffmpeg multimedia/ffmpeg 0.4.9-pre1 Digital VCR and streaming server powerbook-g4-15:~ paraches$ port variants ffmpeg ffmpeg has the variants: universal gpl postproc lame libogg vorbis theora faac faad xvid x264 a52 dts
MacPorts インストールする前に MacPorts で ffmpeg の port 用意されてるのかな?ってググったので。結果見つかったから MacPorts を入れたという順番。無ければ Fink に行く予定だったのだけど…。なぜ最初に MacPorts なのかは、前に DarwinPorts を使った事があるからってだけの理由。
で、ffmpeg のインストール。variant がたくさんあるのであれもこれもてんこもりでインストールを開始。
powerbook-g4-15:~ paraches$ sudo port install ffmpeg +lame +libogg +vorbis +theora +faac +faad +xvid +x264 +a52 +dts <長いので省略> ---> Fetching ffmpeg ---> Verifying checksum(s) for ffmpeg ---> Extracting ffmpeg ---> Configuring ffmpeg ---> Building ffmpeg with target all ---> Staging ffmpeg into destroot ---> Installing ffmpeg 0.4.9-pre1_1+a52+dts+faac+faad+lame+libogg+theora+vorbis+x264+xvid ---> Activating ffmpeg 0.4.9-pre1_1+a52+dts+faac+faad+lame+libogg+theora+vorbis+x264+xvid ---> Cleaning ffmpeg
なんだかんだで結構時間がかかったけどインストール終了。とりあえず起動もしたみたいだ。
powerbook-g4-15:~ paraches$ ffmpeg FFmpeg version SVN-r8743, Copyright (c) 2000-2007 Fabrice Bellard, et al. configuration: --prefix=/opt/local --prefix=/opt/local --disable-vhook --mandir=/opt/local/share/man --enable-shared --enable-pthreads --enable-libmp3lame --enable-libogg --enable-libvorbis --enable-libtheora --enable-gpl --enable-libfaac --enable-libfaad --enable-xvid --enable-x264 --enable-liba52 --enable-libdts libavutil version: 49.4.0 libavcodec version: 51.40.3 libavformat version: 51.12.1 built on May 4 2007 05:53:54, gcc: 4.0.1 (Apple Computer, Inc. build 5367) usage: ffmpeg [[infile options] -i infile]... {[outfile options] outfile}... Hyper fast Audio and Video encoder <長いので省略>
めでたしめでたし。
あとは Cocoa で UI を作って友人のやりたい事それぞれをボタン一つでできるようにして終了。この UI 部分は他に AppleScript やらあれこれ手段はあるんだろうけど、他は知らないしなんとなく NSTask でダウンロード&エンコーディングさせながら NSProgressIndicator でバーを延ばすってのがやってみたかったから。
自分のマシンではエラー出たりして…
ところで、自分の PowerMac G5 には DarwinPorts 1.2 が入っていて、それを selfupdate で MacPorts 1.440 にしてから同じように ffmpeg をビルドしようとしたら途中でエラーになった。こんな感じ…
---> Fetching apr ---> Attempting to fetch apr-1.2.8.tar.bz2 from http://www.apache.org/dist/apr ---> Verifying checksum(s) for apr ---> Extracting apr ---> Configuring apr ---> Building apr with target all Error: Target com.apple.build returned: shell command " cd "/opt/local/var/db/dports/build/_opt_local_var_db_dports_sources_rsync.rsync.darwinports.org_dpupdate_dports_devel_apr/work/apr-1.2.8" && make all " returned error 2 <長いので省略> In file included from misc/unix/rand.c:39: /opt/local/include/uuid.h:94: error: conflicting types for 'uuid_t' /usr/include/unistd.h:121: error: previous declaration of 'uuid_t' was here make[1]: *** [misc/unix/rand.lo] Error 1 make: *** [all-recursive] Error 1 Error: The following dependencies failed to build: subversion apr apr-util db44 sqlite3 readline neon openssl Error: Status 1 encountered during processing.
apr で uuid_t の定義がコンフリクトしてるって。なんとなく古いのと新しいのが混じってるから?なんて深く考えずに Xcode を 2.3.1 から 2.4.2 にして MacPorts をいったんキレイにアンインストールして入れ直し。そして再度 ffmpeg をビルドしたら問題無し。う〜ん、古いのと新しいのが混ざってたのが原因か?それとも Xcode のバージョンが古かったのが原因か? ま、こんなこともあったということで。