OSX 10.4 で ffmpeg を使う 2010
2009年の振り返りを華麗にスルーした wtnabe です。いや、そのうち振り返ろうとは思ってますよ。マジでマジで。
話変わって今回もまたなんでそんな今さらなネタ!?という内容です。
結論 - macports の ffmpeg で ok
結論を先に言うと OSX 10.4 でも MacPorts (1.8.2) から ffmpeg (0.5) をインストールすれば1 MPEG2 から DV へ変換でき、正しく QuickTime に解釈させて iMovie に取り込むことが可能になります。
ではその顛末をどうぞ。
背景 - 古めの iMac でビデオ編集
去年からちょこちょこ仕事でムービーの編集とか DVD のマスタリングを行っています。仕事とは言え売りもんを作ってるわけじゃなくて、あくまで内部保管目的ですが。で、カメラとか HDD の容量の問題がいろいろあって、この作業を
古めの Intel iMac (OSX 10.4 + HDD 160GB + iMovie HD 6)
で行っております。で、これまではカメラが DV だったので iMovie で取り込むだけでよかったんですが、MPEG2 で撮れるカメラからデータだけ持ち込まれる、というケースが発生。まぁ今どきのカメラなら MPEG2 とか MPEG4 とか当たり前ですね。でもこれは困る訳です。
iMovie は MPEG2 を編集できません。
しかもカメラ直結で iMovie に取り込めるんならいいんですが、データだけ渡されてしまうのです。
ffmpegX が動かない!
あーじゃあ ffmpeg で変換ね、ということで
ffmpegX a DVD, SVCD, VCD, CVD, VOB, DivX, XviD, H.264, PSP, iPod, MP4, MOV encoder for Mac OSX
から落として実行。(バージョンは 0.0.9y)最近は英語環境作らなくても ffmpegX で変換できて便利だよねーなんて思っていたら、
ffmpegX がソース movie の判別に失敗する
じゃないですか。えーっ。元のムービーが何か分からなければ正しく変換できるわけないやん。もしかしたらと思って一つ前の 0.0.9x を試してみましたが現象は一緒。
制限
ちなみに OSX 10.5 (PPC) + 0.0.9y で意図通り MPEG2 -> DV 変換を行えるのは確認済みであります。
じゃあその変換できる機械でやりゃいいじゃんと思うかもしれないけど、この PPC マシンは自分のメインマシンだし何より遅いのです。Windows マシンはあるのでそれで変換するという方法もなくはないけど、Windows マシンは HDD にまったく余裕がなく、さらに DV に変換しちゃったでかいデータを編集作業用の機械に持って行くのも一苦労な環境なのです。
笑え。
ffmpeg そのものを試すがコンパイル済みのものはダメ
GUI なんかなくたって変換さえできりゃいいよと思い立ち、ffmpegX のパッケージの中を覗いて ffmpeg コマンドを直叩き、すると変換の実行を試みるがほどなく落ちるorz 一つ前の 0.0.9x 内の ffmpeg コマンドは 0.0.9y のものよりは保つが、やはり途中で落ちるorz
いざ MacPorts へ
八方ふさがりかと思いかけたけど、これ IntelMac だし、もしかしたら MacPorts に ffmpeg あるかも、と思ったらこれがビンゴ。よーしということでここから以下の手順を踏むことになります。
- install DVD から XCode Tools をインストール
- The MacPorts Project – Home からMacPorts をインストール
- sudo port install ffmpeg
- mp4v2 がコンパイル不能。どうも生成される Makefile がおかしいらしく、#21007 (mp4v2 build fails on Tiger (libtool: more than one: -current_version option specified)) – MacPorts から patch を取ってきて当てる
- libtheora に install DVD から入れた XCode は古いから上げれと言われる。ADC から 10.4 に入れられる XCode 2.52をダウンロード3 -> インストール
- 全部インストールできた!
ここで初日は時間切れ。
QuickTime が解釈しない!
無事インストールできた ffmpeg で変換を試みる。えい。おぉ、変換できてるできてる!
……。
あれ?
変換済みの dv ファイルを QuickTime で開くといきなり「ファイルの最後に達しました」と言われる。もしかして変換後のデータ壊れてる?
ffmpeg は target ごとに default bitrate をよしなにしてくれない
試しに VLC で開くと再生できる。…けど。なんだこの荒さ?
あー bitrate の問題なのね。man を見ると確かに
Video Options
-b bitrate
Set the video bitrate in bit/s (default = 200 kb/s).
って書いてある。target フォーマットは DV だって言ってるんだから DV 用の bitrate にしてくれりゃいいのに。
というわけで
ffmpeg -i foo.mpg foo.dv -target dv -b 25000k
で変換したら QuickTime で読めたよ!
QuickTime で読めるということは iMovie に取り込めるということ。いやーめでたしめでたし。長い道のりだった。