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を作成した際、コンパイル、インストール、動作確認についてまとめようと思っていたのだけど、気がついたら0.9.1が出ていた。
以下、0.9.0の時にコンパイル、動作確認した時のメモの断片。
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ライセンスのもとで配布されている。
バイナリも配布されているが、ソースからコンパイルしてインストールした。
事前にnasmをインストールした。
$ sudo apt-get install nasm
コンパイルはソースを展開した後、make。
$ cd src $ tar zxvf ~/HandBrake-0.9.0.tar.gz $ cd HandBrake $ ./configure $ make
必要なライブラリはダウンロードしてコンパイルしてくれる。
そのため、コンパイルが終わるまで非常に時間が掛かる。
動作確認。
全てのオプションについて把握できたわけではないが、一応以下の用にオプションを指定し、作成された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