2009-06-09 | 来源:互联网 | 小编: | 人看过
PSP使用指南-看电影
PSP作为一部流行时尚的数码娱乐掌机,拥有4.3英寸16:9的宽大屏幕用她看电影当然是不二的选择,因此接下来重点讲述一下如何在PSP播放电影。
PSP电影格式介绍
官方支持 |
MP4 | 最原始的PSP电影格式,全版本PSP通吃,不过分辨率仅为320×240,全屏显示效果不理想。 |
AVC | MP4(AVC),是MP4的一种,采用更先进的编码技术,分辨率仍为320×240,官方2.0以上和3.xxOE等自制系统支持。 | |
720MP4 | 意识到之前限定分辨率造成的巨大局限性,SCE从3.30系统开始将限制解除,使PSP最高支持720×480的MP4播放!不低于官方3.30或3.30OE的系统都可以享受次PSP的最高电影盛宴! | |
UMD-VIDEO | PSP的官方存储媒介UMD上的电影格式。 | |
自制软件支持 |
AVI等 | PSP可以通过播放器PSPlayer Media Test来播放avi, mov, mp4, ogm, mkv, nut, asf, wmv, mp3, m4a, wma, ogg, asf, wav等格式的电影,但这些格式并非直接从电脑上拿来就用的,还需要特殊软件来转换,实用性并不很高。 |
PMP | 在当时有官方MP4分辨率限制的情况下,为了实现480×272分辨率影片播放而诞生的格式,相应播放器PMP Mod支持外挂字幕。 | |
PMP-AVC | PSP自制电影格式的最佳选择,也是目前最流行的PSP电影格式!除了具备PMP的一切播放优点之外,PMP-AVC通过直接调用PSP内置的硬件解码器解码视频,所以CPU的负担要轻得多,只需运行在120Mhz就可以完美的播放,省电高效! | |
HAVC | DARK_ALEX开发的3.03OEB自制系统将官方AVC的分辨率限制打破,使得AVC分辨率达到480×272成为可能。需要不低于3.03OEB的系统方可播放。 |
注意:如果使用的是3.00以上的新系统(包括所有的3.0XEO系统),只需要将压好的视频放到记忆棒根目录的VIDEO目录即可,无须改名或者放到特定文件夹。(3.03OE支持的全屏480x272的AVC不能放在这里,依然要放在原来的MAQ?????)
介绍篇
通常所说的PSP支持的MP4播放,就是指的播放官方的视频格式。
官方格式可以分为普通 MP4(以下简称MP4)和 MP4(AVC) (以下简称AVC), 两种格式的文件后缀均为 .MP4
其中MP4在PSP 1.0版固件中就支持,任意版本的PSP都可以播放。而AVC只有2.0以上版本的PSP才能直接播放。
官方支持的这两种格式有共同的特点,二者皆可以称为MP4格式,不同之处在于AVC采用的编码方式比较先进,可以以较小的容量取得不错的效果,简单的说就是压缩率高。故现在多采用AVC格式,它的唯一缺点就是压制速度比普通MP4稍微慢些。
*如果你不是非常在乎压制时间,那么AVC是你的最佳选择。
*如果你不太在意效果和容量上面的差异,对压制时间有要求,那么用普通MP4也不错。
官方格式播放比较完善,很人性化,但是也有其很大的缺点,这些缺点刺激了自制软件播放视频的蓬勃发展。
其主要缺点在于:格式不开放,限制太多,比如桢数的限制,分辨率的限制,所以你想体验PSP视频的最佳效果,这两种格式肯定不是你的最佳选择。
除了以上两种可以自己做的格式以外,PSP还可以播放高清的UMD-VIDEO,UMD-VIDEO的本身素质接近DVD,是PSP上可以播放的视频中的效果最好的。可惜价格不菲,片源较少,限制较多,有中文字幕的实在太少,所以并不能成为主流格式。
* PMP各版本的区分
同样是利用暴风影音。
1: 先是PMP1.0格式和PMP2.0(PMP-AVC)格式的区分。
由于PMP-AVC和PMP2.0的容器格式一样,所以此处也被认为是PMP2.0格式。
如下图:如果显示 " PMP format version 1" 就是PMP 1.0格式,否则就是PMP2.0格式了。
2:然后是PMP 2.0和PMP-AVC的区分,同样是查看视频编码方式。
如下图所示,普通的PMP会显示MPEG4,而PMP-AVC会显示X264。
音频同理,可以显示出MP3或者AAC
PMP格式详解(PSP电影专用格式)
PMP格式详解:
著名的jonny设计了PMP格式,让大家可以使用小P来欣赏到高质量的影音;
但随着版本的推进,出现了PMP1.0, PMP2.0, PMP-AVC, 这些名词和概念可能让大家感到很困惑,
现在,我根据我的研究和理解来给大家解释一下这些名词的意思。
【PMP格式】
PMP是jonny设计的视频音频封装格式,如同AVI一样,只是一种封装的容器格式
PMP格式现在只有两个版本,一个是1.0, 一个是2.0
PMP1.0是一个比较简陋的版本,只支持封装MP4V流(xvid, divx)和MP3流(而且要求是CBR的,采样率为44100),
从文件头开始,顺序结构如下:
4字节:一定是"pmpm",pmp的标志;
4字节:版本号,为0,表示版本是1.0
4字节:视频帧总数
4字节:视频宽度
4字节:视频高度
4字节:视频scale
4字节:视频rate , 注意:视频的帧率fps = rate/scale
4字节:最大视频帧的大小
视频帧总数×4个字节:每帧视频的索引,每个索引4个字节,最低一个bit位表示是否关键帧,其余的31位bit表示帧的大小
视频数据:字节数,由上面的索引计算可以得出;
4个字节:音频帧的数据大小(由于采用的是cbr模式,所有的音频帧数据大小一样,但关键帧的大小比普通帧大小多一个字节)
4个字节:音频帧的总数
音频帧总数×1个字节:每帧音频的索引,每个索引1个字节,关键帧为1,普通帧为0,注意:每帧的实际大小=音频帧的数据大小+索引值;
音频数据:字节数,由上面的索引计算得出;
从上面的分析来看,PMP1.0格式有很大的不足,没有视频和音频的标志位,也就是说,固定死了视频和音频的编码格式,无法封装各式的流,
同时,由于视频和音频数据是非交错存储,播放程序在回放的时候,文件指针在来回地移动,读视频帧的时候移到前面,读音频帧又移到后面;
PMP2.0开始,jonny估计意识到1.0的不足,重新设计了文件的格式结构,我个人认为这个改变很不错:
从文件头开始,顺序结构如下:
4字节:一定是"pmpm",pmp的标志;
4字节:版本号,为1,表示版本是2.0
4字节:视频格式标志,这是一个改进,为支持封装各种视频流提供保证,0表示MP4V流(xvid, divx),1表示AVC流(PMP-AVC其实就是PMP2.0格式,只不过封装了AVC流)
4字节:视频帧总数
4字节:视频宽度
4字节:视频高度
4字节:视频scale
4字节:视频rate , 注意:视频的帧率fps = rate/scale
4字节:音频格式标志,同样为了以后支持封装各种音频提供保证,现在只支持mp3流,该值为0;
4字节:包含的音频流数量,为支持多音轨封装提供了保证,如果一个pmp中封装了两条音轨,该值就为2
4字节:每帧视频附带的音频帧的最大数,由于PMP2.0采用了视频音频交错存储的方式,一帧视频和相应的几帧音频放在一起,这是一个最大值;
4字节:音频scale,默认为1152
4字节:音频rate,默认为44100
4字节:音频是否立体声,0表示单声,1表示立体声;
视频帧总数×4个字节:每帧视频的索引,每个索引4个字节,最低一个bit位表示是否关键帧,其余的31位bit表示帧的大小(注意,这里的帧大小和1.0格式的帧大小不一样,看下面的解释)
视频音频混和数据:这里,jonny做了一个比较有意思的设计,把1个视频帧和其相应的音频帧混合起来,当做一个数据帧;那究竟怎么个混合法呢,我们分析一下:
首先计算每个视频帧的时间戳和每个音频帧的时间戳,videotime = videonum / videofps , audiotime = audionum / audiofps (videonum和audionum都从0开始)
那么第一个视频帧的时间戳就是0/videofps =0,而第二个视频帧的时间戳就是1/videofps ,然后,把第一个视频帧和所有时间戳小于1/videofps的音频帧接在一起,成了一个数据帧,如此类推下去;
然后在每个数据帧的前面再加上n个字节, n=1+4+4+4+4×每音轨被混合的帧数×音轨数,
其中这n个字节的意义如下:
1字节:本数据帧中,每音轨被混合的帧数;
4字节:被混合的第一个音频帧和视频帧之间的时间差;
4字节:被混合的最后一个音频帧和视频帧之间的时间差;
4字节:视频帧的大小;
4×每音轨被混合的帧数×音轨数:每个被混合的音频帧的大小
【PMP的播放】
从上面的分析,我们知道,PMP有两种格式(1.0,2.0),又由于2.0格式中封装的流不一样,出现了所谓pmp2.0和pmp-avc的不同;
所有,我们需要不同的播放器(pmp-mod1, pmp-mod2, pmp-avc)来播放这些文件;
由于pmp1.0和pmp2.0格式文件的差异太大,在小p上如果要实现同时支持这两种的话,代码编写会比较复杂,效率可能也会因此降低
同时由于pmp1.0格式的不足,我建议大家放弃pmp1.0格式,原有的pmp1.0格式的片子可以通过remux转成2.0格式;
至于pmp-mp4v和pmp-avc文件,我个人认为,他们是可以放在一个程序中支持的,因为他们的封装是一样的,只是里面的流不一样而已;
只需要通过对不同解码器的解码即可。
【后话】
写这篇东西的目的就是希望能让大家了解到pmp的各种格式的区别.
我希望自己有时间和能力来给大家做一个pmp-mod,支持pmp2.0(包括pmp-mp4v,pmp-avc),但实际上,我现在的工作比较繁忙,没有太多精力来编写这个。
所以,写这个的另一个目的是分享我的研究,希望能有技术高手能通过这篇东西,写出一个新的pmp-mod,支持pmp2.0格式的播放(包括pmp-mp4v和pmp-avc)。
PSP使用PPA观看PMP格式电影
以下为引用的内容: |
上一篇:手把手教你玩psp游戏图文教程
下一篇:手把手教你用PSP听音乐