ffmpeg をインストールし直す
iDVD や iMovie に読み込ませることができない QuickTime ムービーがあるので、 MPEG-Exporter-TNG や QT-MPEG4-Exporter や FFmpegX で変換しようとした。 しかし MPEG-Exporter-TNG も FFmpegX も mpeg4 や H264 に変換しようとするとエラーになってしまう。 QT-MPEG4-Exporter でも iPod mpeg4, H264 や DV フォーマットなら変換できるものの、 iPod mpeg4, H264 だと画質が劣化するし、 DV フォーマットだとサイズが大きくなる(8 分のムービーで 1.8G。)
そういえば ffmpeg は Leopard の時にインストールしたもので、 Snow Leopard にしてからバージョンをあげてなかったなと思い再インストールすることにした。
MacPorts をアップデート
で、 ffmpeg は MacPorts でインストールしていたので、 まずは MacPorts を Snow Leopard 対応版の 1.8.2 にアップデート。 ここで何も考えずに上書きインストールしたのだが、 これが不幸の始まりだった。
ffmpeg をインストールするもエラーになる
port variants ffmpeg
してみると、
以前のようにたくさん一覧されず、
ffmpeg has the variants: darwin_10: Platform variant, selected automatically no_gpl: disallow use of GPL code, license will be LGPL no_mmx: disable all x86 asm optimizations speex: enable Speex decoding via libspeex
という表示。
まあ、
バージョンも上がったことだしこういうこともあるかととりあえず、
sudo port install ffmpeg
してみた。
すると、
依存チェックのところで bindtextdomain
関数が必要だというエラーが出てインストールできない。
どうやら gettext 関係の関数らしい。
ネットで検索してみたが、 エラーレポートばかりで解決方法が出ていない。 なにより日本語のサイトではそのようなエラーが出たという報告もない。
どうしようもないので、 いっそのことと思い ffmpeg のソースコードをダウンロードして、 それからビルドしようとした。
しかし検索してみると途方もなく面倒くさいようなので、 あえなく挫折。
そこで gettext とそれに依存するパッケージをアンインストールしてから再インストールしてみることに。
しかし、
gettext を再インストールしようとすると、
perl の Locale::gettext モジュールが依存していて、
それが見つからないためにエラーとなってインストールできない。
そして cpan Locale::gettext
しても gettext がないのでインストールできないと言ってくる。
これでは堂々巡りになってどうしようもないではないか。
MacPorts をアンインストールしてから、再度インストールする
そこでふと気がついた。 もしかすると Leopard の時にインストールした MacPorts をアンインストールせずに Snow Leopard の MacPorts をインストールしたので競合が起こっているのではないだろうか。
そこで、
$ find /Library/LaunchDaemons/org.macports.* -print0 | \ sudo xargs -0 -L1 launchctl unload -w
として daemon をアンインストール。そして
$ sudo port deactivate active $ sudo rm -r /opt
で MacPorts をすべて削除してから MacPorts のインストーラを再度実行。その後
$ sudo port selfupdate
してから
$ sudo port install ffmpeg
したところ、 無事ビルドとインストールが始まった。