Linux環境のみで作る携帯動画
Linuxのみで動画を携帯に送れたので、その作業メモ。
携帯動画変換君をWineで動かす。
あらかじめ準備しておくもの
- Wine 0.9.2・・・公式サイトにあるFC4用の古いバージョンをインストールする。QuickTimeと携帯動画変換君を動かす。
- QuickTime 7.1.3・・・iTunes付きの方は要らない。公式サイトからWindows 2000/XP用をダウンロードする。
- 携帯動画変換君・・・MobileHackerzから拾ってくる。本当はWindows用。
- 携帯動画変換君に付いてるffmpegのソース・・・Wineで動かないのでLinux上でコンパイルして使う。ソース置き場からffmpeg-051130-0.33.tar.gzとxvidcore_patched_diff_011.tar.gzをダウンロードしておく。
- ffmpegに当てるパッチ・・・UNIX環境でコンパイルしてた先人がいたので、そのパッチを使わせてもらう。パッチの内容はOS依存の部分を直してるだけ。ffmpeg-mh-unix.patchというファイルを拾ってくる。
- faac-develとxvidcore-devel・・・ffmpegをコンパイルするのに必要。ATrpmsのをインストール。
ここから作業工程。
QuickTimeと携帯動画変換君のインストール
あらかじめwineconfigで「画面>デスクトップをエミュレートする」にチェックを入れておく。
QuickTimeInstaller.exeをwineで起動する。エラーがいっぱい出るが、インストールは成功する。
$ wine QuickTimeInstaller.exe
${HOME}/.wine/drive_c/Program Files/に携帯動画変換君を展開する。
$ unzip -x 3GP_Converter034.zip $ mv 3GP_Converter034 ${HOME}/.wine/drive_c/Program\ Files/
ffmpegのコンパイル
ffmpegのソースを展開して、パッチを当てる。
$ cd 適当な作業ディレクトリ $ wget http://www.nurs.or.jp/~calcium/3gpp/sources/ffmpeg-051130-0.33.tar.gz $ wget http://www.nurs.or.jp/~calcium/3gpp/sources/xvidcore_patched_diff_011.tar.gz $ wget http://can.homeunix.org/sw/psp/ffmpeg_psp/ffmpeg-mh-unix.patch $ tar -zxvf ffmpeg-051130-0.33.tar.gz $ cd ffmpeg_051130 $ patch -p1 < 適当なパス/ffmpeg-mh-unix.patch $ cd .. $ tar -xzvf xvidcore_patched_diff_011.tar.gz $ cp bitstream.c ffmpeg_051130/libavcodec/liba52/
ffmpeg_051130/ffplay.cの49行目をコメントアウトする。
0048: #if defined(__linux__) 0049: //#define HAVE_X11 0050: #endif
コンパイルする。ここでは一般ユーザで${HOME}/opt以下にインストールする。
$ ./configure --enable-faac --enable-gpl --enable-xvid \ --enable-pthreads --prefix=${HOME}/opt --disable-debug \ --extra-cflags=-I${HOME}/opt/include --extra-ldflags=-L${HOME}/opt/lib $ make $ make install
携帯動画変換君の設定と使いかた
携帯動画変換君の設定を参考にシェルスクリプトを書く。
ここではV601Tの「QCIF標準画質15fpsモノラル」を参考にした。
何故かQVGAでは再生できなかった。残念。
#!/bin/sh
#
# conv.sh 動画変換スクリプト
#
# 使いかた: ./conv.sh [入力File] [出力File]
#
~/opt/bin/ffmpeg -y -i $1 -bitexact -vcodec mpeg4 -fixaspect -s 176x144 -r 14.985 -b 190 -acodec aac -ac 1 -ar 22050 -vol 768 -ab 32 -f 3gp -muxvb 64 -muxab 32 temp.3gp
wine \\Program\ Files\\3GP_Converter034\\cores\\QT3GPPFlatten temp.3gp temp.3g2 -c QT_3GPP2_QCIF_AAC.ini
wine \\Program\ Files\\3GP_Converter034\\cores\\ATOMChanger temp.3g2 $2.3g2 Camouflage_MOVIE_for_V601T.ini | nkf -w
rm temp.3gp temp.3g2
使いかたは、foo.aviをbar.3g2に変換する場合は
$ ./conv.sh foo.avi bar
とする。bar.3g2としない。
あとはminiSDカードリーダをパソコンに差し込めば勝手に認識してくれるので、携帯の仕様に合わせて転送する。
東芝製品はこうか。
$ cp bar.3g2 /media/適当/SD_VIDEO/PRL001/MOL001.3g2
カードリーダを抜くときはアンマウントを忘れずに。
動作確認
あんまり確認はしていないが、とりあえず録画していた30分番組は再生できた。
いろいろいじれば登録可能な着うたも作れるかもしれない。