ffmpegでiPhone用動画に変換


3月で大学を卒業した。SoftBankは3月中に契約すれば卒業後も3年間は学割が適用されるとのことだったので、まだ前回2年契約した911Tの割賦が数回残っていたが、iPhoneを契約した。
iPhoneで見られる形式の動画に変換するためにffmpegを再度インストールした。


ffmpegの最新版ソースをダウンロードする。

% sudo svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

libx264をインストールしておく。

% sudo aptitude install libx264-dev
% sudo ./configure --enable-gpl --enable-libfaac --enable-libxvid --enable-libx264 --enable-pthreads
ERROR: libx264 version must be >= 0.65.

libx264のバージョンが低い、と怒られた。libx264の最新版をインストールする。ちなみに古いバージョンのffmpegだとこのようなメッセージは出ないそうなので、昔のソースをコンパイルする手もある。


libx264のソースはgitでダウンロードできるので、git-coreをインストールする。

% sudo aptitude remove libx264-dev

先ほどインストールしたlibx264を削除する。

% sudo aptitude install git-core
% sudo git clone git://git.videolan.org/x264.git

x264というディレクトリが作成される。

% cd x264
% sudo ./configure
Found no assembler
Minimum version is yasm-0.6.1
If you really want to compile without asm, configure with --disable-asm.

アセンブラが存在しないというエラーが出るが、--disable-asmオプションを付加するとうまくいく。

% sudo ./configure --disable-asm
Platform:   X86
System:     LINUX
asm:        no
avis input: no
mp4 output: no
pthread:    yes
debug:      no
gprof:      no
PIC:        no
shared:     no
visualize:  no

You can run 'make' or 'make fprofiled' now.
% sudo make
% sudo make install

x264のインストールができた。改めてffmpegコンパイルする。

% cd ../ffmpeg/
% sudo ./configure --enable-gpl --enable-libfaac --enable-libxvid --enable-libx264 --enable-pthreads
% sudo make
% sudo make install

今度はうまくいった。


ffmpegで変換する際のオプションは以下のような感じ

ffmpeg -i <INFILE> -s 480x270 -vcodec libx264 -b 600k -acodec libfaac -ac 2 -ar 48000 -ab 128k -coder 0 -level 13 -nr 50 -threads 2 <OUTFILE>.mp4


変換した動画ファイルはiTunesでないとiPhoneに転送できないため、VMwareWindowsを起動して行う。非常に面倒だし、PCのメモリが1GBであるためか動作がとても遅い。早いところMacを手に入れたい。


画面解像度は911Tの480x800よりiPhoneの320x480の方が低いが、iPhoneの方が911Tよりもビットレートを高く設定できるので画質は良く感じられる。
iPhoneは、再生を停止した箇所を記憶してくれる便利。これは移動中などに時々見るというモバイル機器の使い方からすれば非常に快適。
また、動画再生中にアスペクト比固定拡大のオンオフを切り替えられる。動画ファイル自体は4:3だが内容は16:9で上下に黒帯が入っている、というような場合に便利である。


何より便利なのは、iTunesPodcast Movieを転送できること。ListPodは本当に素晴らしい。