ffmpeg+MP4Box 動画を携帯電話で再生する

今日のタイトルは,こちら.

携帯動画変換君を使わずに携帯電話で再生できる動画をつくるには.


MY SHORT STORIES(初回生産限定盤)(DVD付)
携帯動画変換君はとてもよくできたソフトウェアです.まずはこちらを使ってください.

たくさんの動画をまとめて変換したいとき.そんなとき,ffmpeg + MP4Boxでシェルやコマンドラインだけで動画を変換する方法です.

基本は次のリンクを見ればわかるのですが,この記事はその補足です.Windowsでやりたい人がターゲットです.
ウノウラボ Unoh Labs: FFmpegで変換した3GPP動画をNTTドコモiモーションのストリーミング再生に対応させる (for Linux)
では順に説明します.



1. Cygwinをインストールする
これは自力でお願いします.大量のファイルをまとめて変換するにはシェルが便利です.私はデフォルトのbashを使っています.


2. ffmpegをインストールする
これも自力でお願いします.Windows用にコンパイル済みのをダウンロードするのが便利です.例えばココなど.ただし解凍するのに7-Zipが必要です.コピーしたディレクトリにPATHを設定してください.


3. MP4Boxをインストールする
Windows用にコンパイル済みのをダウンロードするのが便利です.例えばココのMP4Box-0.4.4.zipなど.私はPATHを何個も追加したくないので,ffmpegと同じディレクトリにコピーしています.
これで準備は完了.


4. ffmpegで*.mp4をつくる
まずサイズを変換しつつ,フォーマットを*.mp4に変換する.私の携帯電話の場合は320x240の再生ができる.
ffmpegにはたくさんの設定があって,好みで変えてください.私はファイルサイズが大きくても,画質がいいほうがうれしいので,シェルにコマンドを入力します.たくさんのファイルを変換するときはスクリプトを書きましょう.

ffmpeg -i input.flv -s 320x240 -sameq middle.mp4


5. MP4Boxで3GPに変換する
最後に携帯電話で見られるようにフォーマットを変換します.ファイルのサイズは変換前後でほとんど変わりません.
できたファイルを携帯電話の指定されたフォルダにコピー.なお携帯電話の機種によっては,特定のファイル名にしないと再生ができないので注意.

mp4box -add middle.mp4 -brand mmp4:1 -new output.3gp


あとはコマンドラインスクリプトを書けばまとめて自動でできます.

#動画があるディレクト
indir="c:/Documents and Settings/Documents"
#出力ディレクト
outdir="./mov"

for input in ${indir}/*.*
do
echo "${input} -> ${outdir}/${input%.*}.3gp"
ffmpeg -i "${input}" -s 320x240 -sameq tmp.mp4
mp4box -add tmp.mp4 -brand mmp4:1 -new "${outdir}/${input%.*}.3gp"
rm tmp.mp4
done