iPod touch 用に動画をエンコードする

事前に言っておきますと、ぼくは動画エンコードに対する知識はほとんどありませんので、検索エンジン等から深い情報を求めて、ここにたどり着いてしまった方ごめんなさい。。
というわけで、iPod touch 用の動画ですが試行錯誤のうえ、ffmpeg で以下のようにエンコードすることにしました。 普段使っている PC でエンコードすると、精神衛生上いただけないので、サーバにしている Linux 上でやっています。 Windows や Mac でも ffmpeg をどこかから用意すれば同様にできると思います。
ちなみに、ffmpeg はコンパイルオプションやバージョン、派生バージョンによって結構挙動が違うみたいです。 ご注意ください。
iPod touch は、H264 (mpeg4 AVC)とただの mpeg4 の再生に対応しているようです。 で、H264 のほうが綺麗(低ビットレートでも OK)なんですが、エンコードに時間がかかり(体感ですが mpeg4 の 2,3倍かかる?)、またエンコーダの動作をうまく安定させることができなかったので、ノーマル mpeg4 をつかうことにしました。
どうせ、touch でしか再生しない動画なのでお手軽な方に。 容量も、touch 内にずっと保持しておくような使い方はしないので、多少大きくても問題ないっす。
ビデオソースは PV です。 PV ってかなり動きが大きく、光の濃淡表現も多いのでビットレートは相当あげています。 テレビの録画とかなら半分くらいでもいいはずです。
で、つくってみた ffmpeg のパラメータ。 2 パスエンコードしています。
ffmpeg -y -i [入力ファイル].[拡張子] -pass 1 -passlogfile ./[入力ファイル].log -deinterlace -s 432×320 -b 1000k -aspect 4:3 -ac 2 -threads 2 -vcodec mpeg4 -an -f mp4 [入力ファイル].mp4
ffmpeg -y -i [入力ファイル].[拡張子] -pass 2 -passlogfile ./[入力ファイル].log -deinterlace -s 432×320 -b 1000k -aspect 4:3 -ac 2 -threads 2 -vcodec mpeg4 -acodec aac -ab 192 -f mp4 [入力ファイル].mp4
# ↑ × は 英文字エックスに置換すること。
-deinterlace (インターレス解除)は、ソースによっては不要でしょう。 ぼくは手持ちの DVD から取り込んでいるのでいれています。
動画が 16:9 の場合、-aspect(アスペクト比の設定)を 16:9 に。 サイズは 480×272 にしておくと良いそうです。(ちなみに touch の液晶解像度は 480×320 の変則です)
2パスエンコードしているので、PV でもビットレートは 768K くらいでもいいと思います。 若干ざらついたので適当に 1000K まであげています。
ffmpeg ベースの GUI ツールも結構でているようなのですが、バッチエンコードしたかったので本家の ffmpeg を使っています。 いつも同じことしかしないときは、GUI は逆に面倒。
Windows のファイル共有でつないだLinux ディレクトリを対象として、動画ファイルをそこにコピー。 あとは適当にかいたシェルを Linux でキックして全てエンコード。 GNUpod を設定すれば iPod に転送まで自動でできるでしょう。 ほっとけるので便利です。
iPod touch での再生ですが、最初アスペクト比がファイル設定通り反映しないーーと思ったら、動画再生画面でフルスクリーン設定していました。。 orz 動画の上でダブルタップすると即時で純アスペクトと、画面に入らない部分を削除して再生するフルスクリーンモードを切り替えられるようです。
あとは、なかなか綺麗に再生してくれています。 PC のモニタの液晶より発色よい。
さー、これでパラパラの練習ができるよ?(笑)
10 月 30th, 2007 at
まだかなー。まだかなー。
もう準備は整いまくっているみたいなので、アレ、待ってまーす。;)
11 月 2nd, 2007 at
むはー、もう忘れたかと思っていたのに
ではオフ会の時にでも。(笑)