高清视频文件该选谁——封装格式的学问
在文章开始我们就打了一个比方,编码格式就好比压缩包的算法,而封装格式就如同光盘镜像文件。在了解了编码格式之后,我们就要了解这些“压缩包”是怎么放进“镜像文件”里去的。视频文件通常是由视频轨道和音频轨道组成的,所谓封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳,或者我们可以把它简单的理解为一个存放视频轨道和音频轨道的文件夹也可以。
AVI
AVI格式诞生于1992年,是当年微软为了对抗苹果Quicktime的技术而推出的一种封装格式,虽然国际学术界公认AVI已经属于被淘汰的技术,但是由于Windows的通用性,和简单易懂的开发API,还在被广泛使用。就像我们都知道IE浏览器很不安全,但是由于操作系统自带了,那么我们也就养成了随手拿来用的习惯。
AVI的文件结构、分为头部, 主体和索引三部分. 主体中图像数据和声音数据是交互存放的。从尾部的索引可以跳到自己想放的位置(图2)。AVI本身只是提供了这么一个框架,内部的图像数据和声音顺据格式可以是任意的编码形式。因为索引放在了文件尾部,所以在作为Inter n et流媒体播放的时候就显得力不从心。举一个很简单的例子,从网络上用BT下载一部片子,如果文件尾部没有下载完成,那么我们几乎不可能预览这部片子。
还有一个问题就是AVI对于高码率的VBR(Variable BitRate动态比特率)音频文件支持地不是很好。这种动态比特率的音频文件有时在于可以根据当前的需要定义不同的比特率,避免了浪费,并且提高了利用率。
问题是这样产生的,刚才已经讲过了A V I中图像和声音是分开的,所以播放时需要一个图像和声音的同步过程,如果是CBR音轨的话因为码率是定值,同步不成为问题,可是VBR音轨是不断在变换,而AVI没有时间戳去让VBR音轨和图像同步,这样就会产生图像声音不同步的问题。
不过经过努力,VirtualDub提出了一种新的方法扩充了AVI对VBR音频的兼容,但是在高码率时会产生丢失数据的问题,导致音效变差,这一点问题到现在都没有比较完美的解决方法。并且更加令人遗憾的是,对TrueHD、DTS-HD等音效更是完全不能支持。因此对于希望享受高保真音效的高清用户来说,这是完全不能接受的。因此目前网上AVI格式的高清视频数量比较稀少。
常见的编码格式比较
TS
TS封装格式的全称为Transport Stream(传输流),文件的后缀名为.ts。TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的。从结构上来说,T S是由头文件和主体所组成的,扩充过的T S流还包括时间戳(图3)。这样不管是什么格式的VBR音轨,都很容易通过时间戳来同步图像,这样就不会产生AVI格式的音像同步问题,同时也方便文件中采用新的声音格式。当然,对新的声音格式来说,需要新的分离器和解码器来实现解码。TS不像AVI,从诞生那天起,就考虑到了网络播放,所以很快成为了世界标准并广泛应用于电视台数字播放、手机等各个领域。再加上目前该格式在不断改进开发中,功能也在逐步加强,因此目前网络上90%以上的高清片源都采取这种封装格式。
AVI和TS封装格式的细节对比
MKV
MKV是Matroska的一种媒体文件,Matroska是一种新的多媒体封装格式,它可将多种不同编码的视频(支持Real)及16条以上不同格式的音频和不同语言的字幕流封装在一起。目前高清片源中比较常见的搭配是X264编码格式(开源的H.264编码格式)。相比AVI它的优势在于可变帧率,配合解码器可以达到在回放变化比较慢(比如说静物)时以比较低的fps来代替,从而可以节省不少资源;容错和纠错能力强;内置了软字幕,不像TS和AVI格式的字幕采取外挂方式,必须保存成其他文件形式;和TS格式采用类似的流方式,通过时间戳来管理视频以及音频的同步问题,可以做到即下即看,从而实现流媒体播放;最重要的是由于它是开源的产品,所以不需要支付费用。但是它同时也有致命的缺点,主要是目前兼容性比较好的分离器还是只有Haali,再加上本属于非官方标准,因此除了PC从网络上下载的片源,MKV很少出现在像BD、HD DVD光盘上。
- 第4页:高清视频文件该选谁?谈封装格式
- 第5页:我们身边的硬件解码器及总结