事前に言っておきますと、ぼくは動画エンコードに対する知識はほとんどありませんので、検索エンジン等から深い情報を求めて、ここにたどり着いてしまった方ごめんなさい。。 🙂
というわけで、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 のモニタの液晶より発色よい。 😛
さー、これでパラパラの練習ができるよ?(笑)
まだかなー。まだかなー。
もう準備は整いまくっているみたいなので、アレ、待ってまーす。;)
むはー、もう忘れたかと思っていたのに 😛
ではオフ会の時にでも。(笑)