MacPortsのffmpegでPSP用に動画変換

ゲーム,パソコン・インターネット

MacPortsでffmpegをbuildしました。やりたかった事のもう一つに、PSP用に動画を変換したいと言う事があります。

やりたいのは、PSPのフルサイズ480×272の動画作成です。成功しましたが、その結果は最後に書きます。

これが、最初の内はうまく行かなかったです。libx264を指定すれば、H.264を使ってくれるはずなのですが、次のエラーが出て、変換出来ません。

Error while opening codec for output stream #0.0 – maybe incorrect parameters such as bit_rate, rate, width or height

色々探し回って、やっと見つけたのが、-vpre defaultを付ければ良いと言う事です。ありがとうございます。

このオプションで、エラーは出なくなりました。でも、PSPに持って行くと、「非対応データ」になってしまいます。

-vpre defaultの設定が、PSPで再生出来る動画の形式に合っていないようです。

PSPで再生出来る動画の形式については、次の二つのページがわかりやすいと思います。まとめていただいて、ありがとうございます。

どちらも、 PSP™ (PlayStation®Portable) RSS チャンネル向けコンテンツ作成ガイドライン(PDFへの直リンクです)を参考にされているようです。

更に色々検索していて、見つけたのが次のページです。ありがとうございます。

このページの情報を元に、色々試してみました。そして、遂に成功しました。

自分用にDVDをPSPで見たかったので、DVD用のパラメータ(引数)を使いました。ただ、パラメータの設定が長くて大変です。先ほどの、-vpreの設定は、/opt/local/share/ffmpegに保存されています(MacPortsの場合)。ここに、基本的な設定ファイルを置けば良さそうでした。libx264-psp.ffpresetと言う名前で、次の内容を保存しておきます。

bufsize=4000k
coder=1
deblockalpha=0
deblockbeta=0
flags=bitexact
g=250
keyint_min=25
level=30
maxrate=4000k
me_range=21
partitions=partp8x8+partb8x8
qcomp=0.60
qmax=35
qmin=7
rc_eq=blurCplx^(1-qComp)
refs=3
sc_threshold=40
subq=6

私は、パラメータの中の意味を理解していないのですが、私が変換した限りでは大丈夫でした。

この設定を使うように、cshスクリプトを書くと、次のような感じになります。ビデオ変換とサムネイル画像の作成をしています。

#!/bin/csh
set infile="my.vob"
set outfile="my.mp4"
set thmfile="my.thm"
set yn="-y"
set crop=""
set size="480x272"
set aspect="16:9"
set brate="768k"
ffmpeg $yn -i "$infile" -vcodec libx264 -vpre psp $crop -s $size -aspect $aspect -b $brate ¥
-acodec libfaac -ab 128k -ac 2 -ar 48000 "$outfile"
ffmpeg $yn -i "$outfile" -f image2 -ss 5 -vframes 1 -s 160x120 -an "$thmfile"

一度変数に設定しているのは、他のスクリプトで使いやすくするためです。

ダウンロードしたFLVファイルに対して、ffmpegを実行するには、次のようにします。libx264-psp.ffpresetは設定済みとします。オーディオのビットレートに対しては過剰な設定なのですが、この設定にしておけば、取り合えず大丈夫そうです。

$ ffmpeg -i video.flv -vcodec libx264 -vpre psp -s 480x272 -b 384k ¥
> -acodec libfaac -ab 128k -ac 2 -ar 48000 video.mp4

上記のcshスクリプトの、size, aspect, brateを変えた物を作っておく方が、便利だと思います。

なお、変換した動画は、PSPのメモリカードの、VIDEOフォルダに入れておきます。ディレクトリを作って、その中に入れても大丈夫です。この使い方をする場合、-f pspを設定しなくても大丈夫です。

Posted by お市のかた