psp

ffmpegを使いflvをmp4に変換しPSPで見る

ffmpegでYouTube等からダウンロードしたflvをPSPで見られるようmp4へ変換する。

数多くのオプションが用意されていて、様々な設定ができるようだけど、とりあえずflvからmp4へ変換するための最低限のオプションを指定。

ffmpeg -y -f mp4 -i /mnt/video/youtube.flv -s 480x272 -vcodec libx264 -b 768k -acodec libfaac -ab 128k -ar 48000 -coder 1 -level 21 -ac 2 youtube.mp4

コーデックの指定は以前は"h264"とか"aac"だったような気がするが、最近のffmpegは"libx264"とか"libfaac"と指定する必要があるらしい。
またビットレートの指定も以前はkbit単位だったような気がするが、bit単位での指定になったようで、-b 768 にしていると"値が小さすぎる"というメッセージが表示されるようになった。

また、ffmpegでスクリーンショットを抜き出すには

ffmpeg -y -i /mnt/video/youtube.flv -f image2 -ss 7 -vframes 1 -s 160x120 -an youtube.jpg

とした。
上で変換した動画と同じフォルダにコピーしておくと、動画選択一覧を表示している時このスクリーンショットが表示される。

HandBrakeでPSP用のmp4を作成

HandBrakeでPSP用のmp4を作成した際、コンパイル、インストール、動作確認についてまとめようと思っていたのだけど、気がついたら0.9.1が出ていた。
以下、0.9.0の時にコンパイル、動作確認した時のメモの断片。

HandBrakeとは

HandBrake is an open-source, GPL-licensed, multiplatform, multithreaded DVD to MPEG-4 converter, available for MacOS X, Linux and Windows.

とあるように、マルチスレッド対応のDVDからMPEG-4へのコンバータでMacOS X、Windows、Linuxに対応。オープンソースであり、GPLライセンスのもとで配布されている。

HandBrakeのコンパイル

バイナリも配布されているが、ソースからコンパイルしてインストールした。
事前にnasmをインストールした。

$ sudo apt-get install nasm

コンパイルはソースを展開した後、make。

$ cd src
$ tar zxvf ~/HandBrake-0.9.0.tar.gz
$ cd HandBrake
$ ./configure
$ make

必要なライブラリはダウンロードしてコンパイルしてくれる。
そのため、コンパイルが終わるまで非常に時間が掛かる。

PSP用のmp4を作成

動作確認。
全てのオプションについて把握できたわけではないが、一応以下の用にオプションを指定し、作成されたmp4ファイルをPSPにコピーし、再生したところ問題なく視聴できた。

./HandBrakeCLI -w 480 -l 272 -X 480 -Y 272 -e x264 -b 768 -r 29.97 -d -2 -p -E faac -B 128 -R 48 -x level=30:threads=1 -s 1 -a 1 -i /mnt/dvd/dvdfile.iso -f mp4 -o psp.mp4
コンテンツの配信