iPhone4での再生用動画作成TIPS

こんな情報2chなり何なりでいくらでも探せそうですが、自分用にかき集めてきた情報のまとめ。

前知識

iPhone4は公式にはH.264 Main Profile/Level 3.1 対応。
実際にはHighProfileも再生可能。CABACや8x8変換を使っても問題なく再生可能。
液晶の解像度は960x640。16:9を維持した最大解像度は960x540。
この解像度の場合、x264なら--levelオプションで強制設定しない限りLevelは3.1以下に収まる。

TIPS

x264でのエンコードの場合、--levelオプションをつけない事。

前知識で書いた通り、x264で解像度960x540でのエンコードなら、levelオプションをつけない限りは再生可能なlevelに収まります。
下手に--level=4.2なんて付けるとiTunesにはねられたりするらしい。

iTunesに登録出来ない場合はffmpegでmp4コンテナを作り直す

iTunesの「ファイルをライブラリに追加」を選んでもライブラリに表示されない場合に有効。
QuickTimeで再生すると、「ムービーに不正なサンプル記述があります」と表示される。
これは、mp4コンテナ内、AACトラックのパラメータにQTが対応していないフォーマットが書かれている事が原因との事。
(詳細はhttp://mycometg3.blog.so-net.ne.jp/2008-05-11を参考に)
バイナリエディタで該当箇所を書き換えるという手段もあるが、上記サイトにもあるとおりffmpegによる再梱包が簡単確実。

ffmpeg -vcodec copy -acodec copy -i [inputfile.mp4] [outputfile.mp4]

これでiTunesに登録出来れば一件落着。


しかし、「ファイル(フォルダ)をライブラリに追加」→ファイル(フォルダ選択)後、上記理由でライブラリに登録出来ない場合でも、メッセージダイアログ一つ出さずに操作が終了するiTunesのUI設計はアレ方向に凄みを感じます。無言かい。
「ライブラリに登録出来たかどうかは毎回その目で確かめてね♪」なんて一ソフトウェアから言われたらバットでPC粉砕したくなるんですが。
QTのエラーメッセージもなあ。あれを「QTで再生できないタイプのフォーマット記述があります」って読み取れる人はデバッグの英雄になれるよね…