大贤者
精华
|
战斗力 鹅
|
回帖 0
注册时间 2017-6-17
|
关于PSP视频压制,因为最近自己刚好用到了,想起来这个帖子里有人问过,就说一下吧。默认原视频是16:9。
首先PSP支持H.264 Main Profile,最高Level 3.0,不支持b-paramid、weight-p,ref最大为3,对应成x264的参数就是
--profile main --b-pyramid none --ref 3 --weightp 0
最简单的方法就是直接把视频下采样到480x272或者270(取决于你是否有强迫症),这种情况下不需要额外的流程,直接压就行。
但是PSP所使用的UMD光盘中存储的电影的分辨率是720x480,而Sony在3.30固件以后也开放了在记忆卡中播放这个特定分辨率视频的功能。虽然这个分辨率已经超过PSP的屏幕分辨率了,但是更高的视频分辨率能带来两个好处:一是当PSP把画面输出到电视时能更清晰(虽然在现在已经没人会这么干了);二是【据说】PSP的硬件在从YUV420P8转换到RGB时的精度有问题,用更高分辨率的视频转换能够弥补这个问题从而提高画质。
但是想要压制符合PSP规范的480p视频需要额外一个步骤:因为UMD本质上是缩小版的DVD,PSP在播放480p的视频时也会遵守一些DVD的标准,所以在压制时也得符合这些标准。
首先DVD在播放时会切除掉画面左右两边各8个像素,最终分辨率是704x480。所以为了在PSP播放时画面内容不会被切掉,我们先要把原视频下采样到704x480,然后在左右两边各加上8像素宽的黑边。
在VapourSynth里就是
clip = clip.fmtc.resample(w = 704, h = 480)
clip = core.std.AddBorders(clip, left = 8, right = 8)
最后,为了使704x480分辨率的视频在播放时能正确地被拉伸到16:9的长宽比,需要在x264里加上
--sar 40:33
以上这些流程对于压制DVD的人应该已经很习惯了。如果不加--sar这个参数的话在PSP里每次播放都需要手动切换到宽屏模式。
需要注意的是,因为PSP最高只支持Level 3.0,所以对于480p的视频帧率不能超过30。如果是272p的视频帧率则最高可以达到60,但我不确定PSP会不会抽帧。
|
|