目前较为理想的视频格式是什么?

来源:互联网 发布:linux grep 完全匹配 编辑:程序博客网 时间:2024/05/09 11:23
作者:nfs king
链接:https://www.zhihu.com/question/20084483/answer/16976500
来源:知乎
著作权归作者所有,转载请联系作者获得授权。

首先要说清楚,视频格式不是一般人认为的,单纯的MP4,AVI,RMVB等文件/封装格式,也不是H.264,H.263,RealVideo等编码格式。而是编码格式+封装格式+GOP排列方式共同构成

所谓理想,按我这个行业所能考虑到的因素,应该分为:1.编码先进性/高效性,2.普适性/通用性,3.网络传输稳定性,4.前瞻性

第1点包含了解码难度、清晰度/文件大小(压缩率)等条件
第2点包含了对各种平台的支持程度/各平台适用程度
第3点包含了终端用户/观众的用户体验
第4点包含了这个格式平滑过渡到将来可能出现的新格式的难易度

以上面四点展开说,先透露答案:<H.264编码(编码方式),Main/High Profile(解码难度),TS/MP4封装(封装方式/后缀名)>格式
1. 视频编码格式目前压缩率较高体积小,同时能保证清晰度的,有成熟的H.264,较新的H.265,VC-1(WMV)。而由于H.265、VC-1对解码设备性能要求很高,因此现阶段H.264在此方面成为首选(H.265的编解码难度是H.264的三倍,但同时压缩率也进一步提升)。

2.各平台的支持程度:现在有任何一款主流OS/播放软件/浏览器不支持H.264编码么?现在还有主流硬件设备不支持H.264的GPU或NEON指令级硬件编解码么?有其他任何编码方式在此方面能与H.264相比么?

3.用户体验:首先是跟编码格式有关的清晰度和文件体积问题,上面已经有解释。其次是因为编码/封装方式与流媒体协议适配造成的用户体验差异。主流的流媒体协议是HTTP和RTSP(MMS已过时),均支持H.264等多种编码格式和MP4、3GP、TS等封装格式HTTP可根据网络条件自动调节缓冲速度,不会造成丢包,但不支持真正意义上的直播(一定会有一段时间的缓冲,依切片大小而定)。RTSP支持直播(有视频流即可马上开始播放),但一旦发生丢包,则立即断流(具体表现就是播放过程中画面卡住,然后黑屏,然后跳过一段时间,继续开始播放当前的流)。
从用户体验角度来讲,时不时缓冲,总比完全丢失一段时间的内容要好得多。而H.264由于压缩率较高,因此比起其他编码格式,在此方面更有优势(相对来说缓冲时间更短)。

4.平滑过渡到将来可能出现的新格式:H.264是行业标准,与MPEG-2类似,已经大量运用到各行各业。而H.265等新编码格式也将以现有行业标准为基础进行改良。所以H.264面向未来的过渡性更好。

除编码格式外,还需要考虑封装格式和GOP排列。主流封装格式(以行业内认可的格式为前提)是:MPG(PS)、MP4、TS、AVI、MXF、MTS等(MKV,RM/RMVB等不是行业标准)。而由于现在的视频应用,很多都是基于流媒体的,而MPG、AVI、MTS、MKV、RM/RMVB都不是流媒体格式,所以Pass掉。MXF是一个包容性很强的容器,除视频本身外,还可以附带元数据(可以理解为视频描述信息)等,比较臃肿,也不是流媒体格式,因此用在民用级别也不合适。TS的适用广泛性比起MP4稍差,所以MP4小胜。

H.264分为Baseline Profile,Main Profile和High Profile,代表编码复杂程度。复杂程度越高,压缩率越高,达到相同质量所需的码率也就越低,而编解码难度也就越高。原因是H.264编码的GOP(Group of Picture)是由关键帧I,预测帧P、B组成。GOP越长,一个循环中包含的预测帧也就越多,压缩率越高,编解码难度越高,越不容易精确到帧(视频编辑要求精确到每一帧,也就是每一秒可以分离成24/29/30个画面)。但鉴于目前几乎所有主流设备都已经使用GPU或者Neon指令集做硬解码,所以几乎可以不占用太多资源就解决面向Main Profile和High Profile的编解码。另外,对于视频编辑和制作等行业,在要求精确到帧的情况下,可以采取短GOP方式,减少预测帧,增加关键帧的方式来处理。而H.264在面向低等级设备/老旧设备时,又可以使用复杂程度低的Baseline Profile应对。

综上所述,使用<H.264编码,Main/High Profile复杂度,MP4/TS封装>是目前最理想的方案。

另外,RM/RMVB为什么不好?因为它们是Real公司的封闭编码方式,虽然压缩率比较优秀(仍然比不上H.264,在只追求质量的情况下也达不到H.264的质量),但编码器和解码器都需要购买授权(现在软件解码器的授权已经名存实亡了),这也是为何现在智能手机性能如此强大,却还是无法流畅播放码率不高的RMVB文件的原因。


https://www.zhihu.com/question/20084483
0 0
原创粉丝点击