奥さんのiPod Nano 4Gに短い動画を入れてあげようと思って、軽い気持ちで作業を始めたらけっこうな労力を使ってしまった。
まず私が使っているUbuntu8.04ではデフォルトの状態でh264とかaacといった、iPodに入れるための動画/音声コーデックが入っていない。
Synapticなどのパッケージマネージャで簡単にインストールできるかと思いきや、どうやらライセンスの問題か何かで、ソースから持ってきて作業し、さらに変換プログラムの本体であるffmpegも最新版を設定してコンパイルしなきゃいかん。ただ、devパッケージはパッケージマネージャで持ってきてよろしい…らしい。
sudo apt-get install quilt libsdl1.2-dev libogg-dev libvorbis-dev liba52-dev libdts-dev libimlib2-dev texi2html libraw1394-dev libdc1394-13-dev libtheora-dev libgsm1-dev liblame-dev libxvidcore4-dev libfaac-dev libfaad2-dev
コンパイル用のツールもデフォルトでは入っていないので、持ってきておく。
sudo apt-get install automake libtool
まずはh264コーデックを入れる。yasmが入ってないとビルドできないのでまずそっちから。h264はスナップショットから最新パッケージを持ってきた。
wget http://www.tortall.net/projects/yasm/releases/yasm-0.7.1.tar.gz
tar zxvf yasm-0.7.1.tar.gz
cd yasm-0.7.1/
./configure
make
sudo make installwget http://downloads.videolan.org/pub/videolan/x264/snapshots/x264-snapshot-20081012-2245.tar.bz2
tar jxvf x264-snapshot-20081011-2245.tar.bz2
cd x264-snapshot-20081011-2245/
./configure –enable-pthread –enable-shared
make
sudo make install
MP3とかaacとかaadとかxvidも同様にして入れていく。
順次、コーデックを入れていく。
MP3
wget wget http://nchc.dl.sourceforge.net/sourceforge/lame/lame-3.97.tar.gz
tar zxvf lame-3.97.tar.gz
cd lame-3.97/
./configure
make
sudo make install
AAD
wget http://yosiwo.lowtech.ne.jp/app/faad2-15092004.tar.gz
mkdir faad2
mv ./faad2-15092004.tar.gz ./faad2
cd faad2
tar xvzf ./faad2-15092004.tar.gz
faadとfaacはconfigure.inを少し修正する。ググって調べると結構前からこの変更が必要なようなので、環境によってはこの変更がなくてもビルドが通るのかもしれない。
diff configure.in configure.in.ORG
10c10
< AC_DEFUN([MY_DEFINE], [ AC_DEFINE($1, 1, [define if needed]) ])
---
> AC_DEFUN(MY_DEFINE, [ AC_DEFINE($1, 1, [define if needed]) ])
AADはソースも一ヶ所修正が必要だった。
diff ./common/mp4ff/mp4ff.c ./common/mp4ff/mp4ff.c~
103c103
< void mp4ff_track_add(mp4ff_t *f)
---
> static void mp4ff_track_add(mp4ff_t *f)
修正したら、プリコンパイラかけて、ビルド。
sh bootstrap
./configure
make
sudo make install
AAC
wget http://yosiwo.lowtech.ne.jp/app/faac-18102004.tar.gz
tar zxvf faac-18102004.tar.gz
cd faac
AACでもconfigure.inを修正。
diff configure.in configure.in.ORG
10c10
< AC_DEFUN([MY_DEFINE], [ AC_DEFINE($1, 1, [define if needed]) ])
---
> AC_DEFUN(MY_DEFINE, [ AC_DEFINE($1, 1, [define if needed]) ])
あとは同様に。
sh ./bootstrap
./configure
make
sudo make install
xVid
wget http://downloads.xvid.org/downloads/xvidcore-1.1.0.tar.gz
tar zxvf xvidcore-1.1.0.tar.gz
cd xvidcore-1.1.0/build/generic/
./configure
make
sudo make install
コーデックがここまで入ったら、本体ffmpegをsubversionでソース持ってきてインストール。
sudo apt-get install subversion
sudo apt-get build-dep ffmpeg
svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
cd ffmpeg/
Configureの設定はお好みで、だがこれぐらい入っていれば困ることはないだろう。
–prefixはインストールディレクトリの指定…だと思うんだけど、ubuntuでパッケージマネージャを使っていれたffmpegは/usr/binに入っている。混乱するのが嫌だったらあらかじめそちらは抜いておいた方がいいだろう。
./configure –enable-gpl –enable-nonfree –enable-postproc –enable-swscale –enable-pthreads –enable-libvorbis –enable-libtheora –enable-libmp3lame –enable-libfaac –enable-libfaad –enable-libxvid –enable-libx264 –enable-shared –disable-debug –prefix=/usr/local
make
make install
sudo ldconfig
最後のldonfigでは、ライブラリファイルとのリンクをとってくれているらしい。これをやらないとライブラリが見つからないと怒られる。
無事にコンパイルできたら、ipod用に変換。この設定だとちょっと音声がリッチ。
ffmpeg -i SOURCE.avi -r 29.97 -vcodec libx264 -s 160×120 -aspect 4:3 -flags +loop -cmp +chroma -deblockalpha 0 -deblockbeta 0 -b 300k -maxrate 500k -bufsize 1M -bt 128k -refs 1 -coder 0g -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 25 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec libfaac -ab 80k -ar 48000 -ac 2 TARGET.mp4
ファイルができたらAmarokを使ってiPodへ入れる。MP3と同じようにライブラリに登録し、転送するだけだ…とおもったら何とAmarokでNanoが認識されない。つなぐと/media/disk/というところへマウントされ、これだとAmarokがIpodだと思ってくれない。
じゃぁっていうのでプロパティウィンドウからマウントポイントを/media/nyanoと指定すると「/が入っているようなポイントにはマウントできない」とか言いやがる。
ターミナルにgconf-editorと打ち込んで設定エディタを立ち上げ、system>storage>drives>_org_freedesktop_Hal_devices_storage_serial_Apple_iPod_(識別子が入る)にあるマウントポイントに「Nyano」と入れると、/media/nyanoにマウントされ、Amarokでも見えるようになる。
きっちり、半日かかったぜ。
DVDのisoをmp4に変換してAmarokでipodに入れたのですが、タイトルが「Unknown Track」と表示されて、しまうんです。
プロパティ開いて「音声/動画」の部分を変更しようとしても、変更できないし、困ってます。この場合、どうすればいいでしょうか?
最初に、ファイルのパーミッションを確認してみてください。
rootで作業していて、他のユーザに書き込み権限がついてないとかだとそういうことになりがちです。
パーミッションが大丈夫そうだったら…他のメディアプレイヤーでプロパティの編集を試してみるとうまく行くことがあります。iTunesとか。