2008年11月7日金曜日

PSP向け動画をffmpegでエンコードする覚書

PSP向け動画をちょっと高画質にffmpegでエンコードする覚書
Ubuntu8.04のリポジトリに入ってるffmpegで検証。

こちらのページを参考
http://d.hatena.ne.jp/amt/20070422/LevelOptions

成功例
$ ffmpeg -i input.mp4 -acodec aac -ab 128kb -vcodec h264 -b 1200kb -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -aspect 480:272 -s 480x272 -r 30000/1001 -f psp -flags loop -trellis 2 -level 30 output.mp4

cropを使う場合
$ ffmpeg -i input.mp4 -acodec aac -ab 128kb -vcodec h264 -b 1200kb -ar 48000 -mbd 2 -coder 1 -cmp 2 -subcmp 2 -aspect 480:272 -s 480x312 -r 30000/1001 -f psp -flags loop -trellis 2 -level 30 -croptop 20 -cropbottom 20 output.mp4

cropで指定する値は、元動画の画面サイズにおいてcropするピクセル数。
ただし、-sオプションで指定する変換後画面サイズは「目的のサイズ+元動画からcropするピクセル数」とする。cropに指定した値が、-sで指定した値から引かれて、出力される動画のプロパティに収まる。
具体的には、
 入力動画の画面サイズ - 入力動画からcropするピクセル数 = 出力動画の画面サイズ
 -sで指定した画面サイズ - 入力動画からcropするピクセル数 = 出力動画のプロパティ上の画面サイズ
となってしまうみたい。んで、よく分からんのだけれども、目的のサイズは480x272なのに、上下20ピクセルずつcropするので、480x312としておいた方が良いみたい。いずれにしろ出力される動画は480x272となってくれる。

どう考えてもこれバグじゃないの?と思うんだけれど、最新版のffmpeg試してないからあんまりとやかく言わないことにする。

0 件のコメント: