愛萌就要控丶 写了:-o-o-304-o-o- 写了:楼上某楼站着说话不腰疼的说法就不吐槽了,觉得--device不好用的,自己开发个更好用的呗…
至于ref16,自己找一个东西叫XBMC for iOS,再看看你的说法…
PSP这边从6.xx系统开始似乎就不做level check了,之后的系统里,只要encoding参数符合,level 5.1一样可以看
其实这些都是老内容了,翻翻老帖子(主要是Crop and Resize部分的),会有详细的清晰的符合规范的说明
我这里用不科学的说明简单说下
为何PSP兼容视频的SAR要取32:27而非标准的40:33?这中间涉及黑边问题(为啥会出现黑边问题呢,此处不展开,自行以过扫描和overscan为关键字喂狗就有详细配图说明了)。而对于标准的NTSC DVD,情况是这样的:实际可用的片源分辨率为704x480,左右各有16px的黑边,构成了标准的720x480分辨率的视频。举例说,对于这样的视频,如果希望最终DAR是4:3或者16:9的话,只要设定SAR为10:11或者40:33就行了(704x40/33≈853.33,704x10/11=640)。骚尼在PSP上的设定也是这样的。为了制作这样的PSP兼容视频,同时保持AR(aspect ratio),那么需要先把你要做兼容的视频resize到704x480,然后根据情况添加SAR。这样的视频在PSP上播放是可以完美无问题的,但是在PC上播放,不经过合理的设置的话,是会有黑边出现的……所以为了兼容PC播放,而选择牺牲部分PSP便捷程度,改用720x480的分辨率配合32:27的SAR,这样的话在PC上播放时完美无问题的,在PSP上播放只要手动设置全屏即可实现兼容,相对于前者,对于PSP部分略有牺牲,而方便了PC观看,实际上就是tradeoff之后的选择嗯。
至于为啥PSP能支持到720x576,因为PSP也要在欧洲卖嘛,而欧洲的广电系统大部分走的是PAL,PAL DVD下对于分辨率的要求就是720x576的,所以骚尼这边也得把支持做到位嘛……
不愧是大神。。又受教了。话说,其实我一直不明白,那个AVC level究竟代表了什么,3.0和最高的5.1有什么区别么,其实从视频上看不出来。
详细的科学的说法请看LS草大提供的wiki链接,同时我这里附上Iain E. Richardson所著的THE H.264 ADVANCED VIDEO COMPRESSION STANDARD里面提供的解释
The Sequence Parameter Set defines a Level for the coded bitstream, a set of constraints imposed on values of the syntax elements in the H.264/AVC bitstream. The combination of Profile and Level constrains the maximum computational and memory requirements that will be placed on the decoder. The main Level constraints are as follows:
·Maximum macroblock processing rate (MaxMBPS): the maximum number of macroblocks, 16 × 16 luma and associated chroma, that a decoder must handle per second.
·
Maximum frame size (MaxFS): the maximum number of macroblocks in a decoded frame.
·
Maximum Decoded Picture Buffer size (MaxDPB): the maximum memory space required to store decoded pictures at the decoder.
·
Maximum video bit rate (MaxBR): the maximum coded video bitrate.
·
Maximum Coded Picture Buffer size (MaxCBP): the maximum memory space required to store (buffer) coded data prior to decoding.
·
Vertical motion vector range (MaxVmvR): the maximum range (+/−) of a vertical motion vector.
·
Minimum Compression Ratio (MinCR): the minimum ratio between uncompressed video frames and compressed or coded data size.
·
Maximum motion vectors per two consecutive macroblocks (MaxMvsPer2Mb): specified for levels above 3, a constraint on the number of motion vectors (MVx, MVy) that may occur in any two consecutive decoded macroblocks.
继续用简单而不一定科学的说法来说明下:
level是用来限定编码所使用的参数,就如同字面意思一样,level限定的是水准/等级。这样做是为了方便编解码器工作(尤其是灵活性不足的硬件编/解码器,hardware codecs)。
视频编码本身很复杂,编解码过程中涉及的参数非常多。而编解码器这边,由于在设计的时候可能配置不同,设计的时间不同和性能不同,因而有很大的差异。通过设定profile和level,将大量的编解码涉及参数整理归纳分类,根据不同的标准划分由高到低的不同的等级,这样,在工作时,编解码器便有章可循了。
举例说:编码器在编码的时候,直接通过设定level,然后其他参数遵循level的要求进行设定,可以极大程度的方便编码参数的确定。同时,根据不同解码器的level要求,编码这边也可以对症下药,压制符合要求的视频。
对于解码,与其仔细的检查所有的参数是否符合解码器的要求,解码器通过level check检查文件头中存放的level信息,就可以得知视频的参数是否在解码器的支持范围内,支持的就予以播放,不支持的返回信息告诉用户视频不支持,这样也可以有效方便解码器工作。
所以说,水果啊,骚尼啊这些厂子,会在自己的解码器上挂上level check,检查视频的level是否支持。骚尼在6.xx时代关掉了level check,水果这边自带的QT解码器似乎一直有level check(高于level 4.1的貌似都会有问题),XBMC改过的VTB解码器似乎就没这方面的问题
(既然说到level check了,这里就有fake level来欺骗解码器的level check实现对某些视频的支持的作法了,不过似乎岔题了,感兴趣的话自己喂狗找相关资料吧……