おや?PSPの様子が・・・



1 Comment

なんとPSP-1000がPSP-2000に進化した!



ちゃんとお金払って買っただけです・・・。
じつは買ったのは去年。コミケ待機中にこれでピコピコとゲームしてました。

初代PSPは□ボタンが反応しにくいという問題を抱えていて、これまでは特に問題にならなかったのですが、スターオーシャン1stで戦闘を行うには致命的だなと。
買うしかないじゃないか!
(以上、言い訳でした)

初代と同じ黒でいいやと思い、ピアノブラックにしたのですが、少し後悔。
黒は指紋が目立ちます。
白やシルバーのほうが指紋が目立ちにくかったかなぁとか。
本当は指紋がつきにくい材質にして欲しいのですけどね・・・。

これを機にPSP用の動画作成法を見直しました。

初代が出た当初は、嬉々として携帯動画変換君の設定ファイルを弄り回していたのですが、外で動画見るために持ち続けるにはPSPは重すぎると思い、しかも、第5世代iPodで動画が見れるようになってしまったので、動画再生マシンとしてのPSPは完全にお払い箱になってました。

今では第5世代iPodすらも重くて(僕ってどんだけ非力・・・)、SONY NW-A808が主力マシンだったりする(第3世代iPod nano?動画見るには液晶が気に入らないからお蔵入りです)。

初代PSPはそんな感じでしたが、新PSPは軽くなったうえに、いつの間にやら液晶フルサイズの動画を再生することも可能になっていたみたいなので、もう一度、動画再生マシンとして使ってみようかなと。

以下、新PSP用動画作成法。
えらく手間がかかります。
AviSynthのことを知らないと意味不明。
楽をしたいのならば、別の方法を探したほうがいいです。

必要なアプリ
x264
DGMPGDec
AviSynth
neroAacEnc
MP4Box

・映像部分を作成
smp.mpg (MPEG2ファイル)

[DGMPGDec]

smp.d2v (DGMPGDecプロジェクトファイル)

smp.avs (AviSynthスクリプトファイル)

[x264]

smp_video.mp4 (映像のみ)

・音声部分を作成
smp.wav

[neroAacEnc]

smp.m4a

・映像と音声を結合して完成
smp_video.mp4 + smp.m4a

[MP4Box]

smp.mp4 (H.264+AAC)

各工程の詳しいやり方は検索すれば出てくるので、
AVSファイルとx264に与えるオプションのみ晒しときます。
AVSファイルは以下のような感じ。

smp.avs
-------------------------------------
plugin_path = "D:\動画編集\plugin\"
tvdata_path = "D:\tvdata\"
aviutl_path = "D:\動画編集\aviutl\"

LoadPlugin(plugin_path + "DGDecode.dll")
LoadPlugin(plugin_path + "warpsharp.dll")
LoadAviUtlInputPlugin(aviutl_path + "m2v.aui", "MPEG2VIDEO")

#DGMPGDecプロジェクトファイル経由MPEG2読み込み(YV12)
MPEG2Source(tvdata_path + "smp.d2v")
#AviUtl用MPEG2読み込みプラグイン経由MPEG2読み込み(YUY2)
#MPEG2VIDEO(tvdata_path + "smp.mpg")

#トップファースト
AssumeTFF()

#確認用
#Info()

#インターレース解除 & 24fps化
Auto24FPS(true, 24, 16, "blend", false)

#ノイズ除去(時間軸)
KenKunNRT(last, 192, 2, 20)
#ノイズ除去
KenKunNR(last, 128, 2, 6)

#シャープ
WarpSharp(128, 3, 128, -0.6)

#クロップ & リサイズ
#Crop(4, 0, 704, 480)
#Lanczos4Resize(320, 240)
#Lanczos4Resize(640, 480)
#Lanczos4Resize(368, 272)
Crop(4, 56, 704, 364)
#Lanczos4Resize(320, 176)
#Lanczos4Resize(640, 352)
Lanczos4Resize(480, 272)

#ConvertToYV12()

return last
-------------------------------------

各フィルタの数値はほとんどデフォルトのままです。

リサイズが少し問題。
PSPの場合、16:9なら480x272、4:3なら368x272といったところ。
もっとも、PSPは4:3に縦横比を変換して表示できるので、4:3の場合でも480x272で作ってしまってもいいかも。
僕の場合、固定ビットレートでエンコードするので、368x272を使用する。
その方が画質にビットをまわせるだろうから。

x264に与えるオプションは以下のような感じ。
僕の場合、2passエンコードです。

x264.exe -I 240 -i 1 --scenecut 75 -b 1 -r 2 -B 768 -p 1 --stats "1pass.log" --qpmin 11 --qpmax 43 --qpstep 8 -A p8x8,p4x4,b8x8,i4x4 --direct auto --me hex -m 6 --b-rdo --no-fast-pskip --no-dct-decimate -o "smp_video.mp4" --progress --level 3.0 --threads 2 "smp.avs"
x264.exe -I 240 -i 1 --scenecut 75 -b 1 -r 2 -B 768 -p 2 --stats "1pass.log" --qpmin 11 --qpmax 43 --qpstep 8 -A p8x8,p4x4,b8x8,i4x4 --direct auto --me hex -m 6 --b-rdo --no-fast-pskip --no-dct-decimate -o "smp_video.mp4" --progress --level 3.0 --threads 2 "smp.avs"

x264 revision719 使用

「--level 3.0」
PSPで見る上で重要となるプロファイルレベル。
再生できるかどうかは、これを見て判断している様子。
PSPが再生可能なH.264ファイルであっても、これを指定しておかないとビデオ一覧で非対応と表示されて再生開始できません。
この辺はiPodやNW-A808も同じでした。あちらは「--level 1.3」ですが。
これを指定していても、実際の中身がlevel 3.0に沿ってない場合は、当然、再生できないですよ。

「-B 768」
ビットレートは768kbpsでも十分綺麗だと思います。
メモリースティックの容量を考えると、この辺りが自分にはちょうどいいかなぁ・・・と。

PSPの再生能力は意外と高くて、自分で試したところ、1920kbpsでも再生可能なようです。
プロファイルレベル3.0に対応しているので、いちおう規格上の上限値 10000kbpsまでは行けるはずなので当然と言えば当然なのですが。
PSPの限界に挑む!(雲の流れるままに)
どうも、10000kbpsを超えてもPSPは頑張ってくれるようです。
すごいぞPSP!

「-b 1 -r 2」
使用するBフレーム数とB、Pフレームの予測に使う参照フレーム数。
PSPはMainプロファイルなのでBフレームが使用可能です(iPodやNW-A808はBaselineプロファイルなので使用不可でした)。
なので、使ってみようかなと。その分、Iフレームにビットをまわせるかなぁとか考えてみる。
しかし、Bフレームを使用すると、rが2以下じゃないとPSPで再生できないみたい。
なぜに?
本当は「-r 3」ぐらいを設定したいのですけど。
「-b 0」でBフレームを使用しないと、「-r 3」でもPSPで再生できるようす。
「-b 1 -r 2」と「-b 0 -r 3」、どっちがいいのだろうか・・・。
まあ、見た目の違いは分かりませんけどね・・・。

たしかBフレームはデコードに手間がかかるとか聞いたことがあるので(かなりうろ覚え・・・)、使わないほうがPSPのバッテリーのもちがよいかも?

僕は結局、「-b 1 -r 2」を採用しています。
使ったほうがMainプロファイルっぽいから(それだけ)。

画質を少しでも良くしてみようと、他にもたくさんオプションが付いていますが、その辺の説明は略。
ほとんどなくても問題なかったり。
本当に必要なのは -B, -b と 2passエンコードなので -p と --stats。
あとは、プロファイルレベルの--level、出力の -o と入力ファイル名を指定するぐらいかな。

参考
x264 longhelp(ageha)
更新するのを止められたようなので、一部情報が古くなってきているものもあるみたいですが、勉強になります。

PSPエンコ設定(雲の流れるままに)
ffmpegでエンコードする場合の設定。
携帯動画変換君のffmpegを入れ替えて、設定ファイルをいじれば、すぐ使えると思われる。
720x480のサイズでエンコードする設定なので、サイズとビットレートをサイズに見合ったものに修正すればよいかと。そのままでもOKっぽいですが。
与えているオプションは、x264で与えるものとほとんど変わりません。
でも、こちらのほうが手間がかからなく簡単だと思われ。

1 Comment:

kooki3000 at: January 15, 2008 said...

うわ、PSPの誘惑が。買いかなあ。

ここにたどり着く人の検索ワードが気になる。