首页 > 代码库 > 视频格式编码详解

视频格式编码详解

当我们看到一个视频文件的时候,可以经常看到视频文件后面跟着***.avi,***.mp4等等许多种类,这些类型到底是什么呢,其实他们就是视频的封装格式。


封装格式知多少:

说到封装格式,我们先要了解一下什么是所谓的封装格式。封装格式就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。也就是说仅仅是一个外壳,或者大家把它当成一个放视频轨和音频轨的文件夹也可以。笔者查到这些后可以给大家打个比方:封装格式就像是个包装盒,而编码压缩好的视频音频文件就像是盒子里面的东西,你要是拿去送礼,不可能一下子把东西零零碎碎拿着送给别人,而封装格式也是如此,它只是外在的一个东西,就是把视频音频文件包装好了的东西,可以一次性的将内容展示给我们。

 

■常见的格式:

● AVI:
  AVI是最常见的视频封装格式之一,它可以兼容各种视频编码,目前也有1080p分辨率的AVI文件,最早也是由微软开发,交互式存储方式是该格式最大的特点,当然作为一种1992年就已经问世的视频封装格式,缺点也比较突出,那就是体积大,同样的一部影片,AVI与MPEG-2的文件大小几乎相同。微软在90年代初创立的封装标准,是当时为对抗quicktime格式(mov)而推出的,只能支持固定CBR恒定比特率编码的声音文件。


● MP4:
MP4视频文件封装格式是基于QuickTime容器格式定义的,是一个十分开放的容器,几乎可以用来描述所有的媒体结构,MP4文件中的媒体描述与媒体数据是分开的,并且媒体数据的组织也很自由,不一定要按照时间顺序排列,甚至媒体数据可以直接引用其他文件。同时,MP4也支持流媒体。MP4目前被广泛用于封装h.264视频和AAC音频,是高清视频的代表。

● MKV:  

  这个格式可以说是最好的封装格式了,被誉为万能封装器。有良好的兼容和跨平台性、纠错性,可带 外挂字幕。相比前几种封装格式,MKV是最纯粹“封装”的格式,MKV文件仅仅是将其他视频流和声音、字幕等文件整合到一个MKV文件中,虽然对图像质量和压缩方面没有明显的优势,但MKV能够内置16条以上的音轨,字幕支持16条以上的字幕,与之前的DVD碟片类似,也是最近比较热的格式,不过受到文件体积庞大的限制,目前1080p分辨率的MKV文件还比较少。

 

● MOV:


  它是Apple公司开发的一种音频、视频文件格式,用于存储常用数字媒体类型。当选择QuickTime(*.mov)作为“保存类型”时,动画将保存为.mov文件。MOV是Quicktime的封装。



● RM/RMVB:

Real Video,由RealNetworks开发的应用于rmvb和rm。



● TS/PS:

  TS不像AVI,从诞生那天起,就考虑到了网络播放的功能。作为网络下载最流行的封装格式之一,MPEG-2或者VC-1等编码都可以封装,是蓝光和全高清视频常采用的封装格式,但是体积较大,可是其视频质量相当优秀,还原准确,是高清发烧友比较喜欢的格式,在下载中也可以注意这一点,基本以.TS结尾的视频质量很高。但是对于VC-1(支持不太好)






刚才在封装格式里面提到了MPEG-2,VC-1等,这些都是视频的编码格式,接下来我们讨论一下视频编码方式。
在高清视频编码格式方面,我们可以经常会见到以下这几个命名:MPEG-2 TS、Divx、Xvid、H.264、WMV-HD和VC-1。目前发展过程中,MPEG-2、H.264、VC-1是其中最为关注的。由于在高清视频格式后来发展过程中,由于两家公司,东芝与sony的竞争中,就是HD-DVD与蓝光的较量中,虽然最后HD-DVD退出了竞争,以蓝光的胜利结束,但是他们都选择支持这三种编码格式,也说明了他们的有很大的竞争优势。也是后来被关注最多的格式。

各种格式的发展历程
■ MPEG编码 
首先我们先介绍一下MPEG。MPEG是英文Moving Picture Experts Group的简称,翻译过来也就是运动图像专家组。该专家组建于1988年,可以说很早,他们专门负责建立视频和音频标准,而成员都是为视频、音频及系统领域的技术专家。简单讲就是个行业里的组织,专门对数字内容做出业界规范的组织。

MPEG
大家现时泛指的MPEG-X版本,就是由ISO(International Organization for Standardization)所制定而发布的视频、音频、数据的压缩标准。ISO是国际标准制定组织,我们喝的牛奶或者用的什么产品上经常看的的ISO9000之类的就是一个意思。
MPEG发展的很早,目前也分类很多,了解了他对大家帮助很大。
  ● MPEG1:MPEG1是最早出现的,这时候我们就广泛认识到这个组织和他们的标准了。还记得VCD吗?VCD 就是其中最主要的代表。VCD这个具体的格式是从日本而来的,并遵守MPEG1规格。
  ● MPEG2:其代表是DVD。一般为480P(640*480)。DVD当时都符合这个标准。 
● MPEG4:Xvid 和H.264(下文重点提到)同属于MPEG4格式,是高于MPEG1、2的新一代数字媒体格式 。
  ● MPEG-2是由MPEG和ITU-T双方合作开发的。因此MPEG-2在ITU-T的命名规范中被称之为H.262。有时候我们还会看到“MPEG2-HD”或“MPEG2-TS”字样,其实这都是在说MPEG-2(为我们普通消费者增加了多少麻烦啊!!)。
之所以叫做MPEG2-HD是为了区别DVD常采用的MPEG2而做的区分。因为480P格式的DVD也是MPEG-2编码的。而叫MPEG2-TS是因为1080P的高清MPEG2一般文件格式后缀是.TS,这个也有别于DVD里封装的.VOB。
  MPEG-2TS格式的高清视频文件在网上很常见,一般采用mpg、tp和ts为后缀。采用MPEG-2TS格式压缩后的高清视频文件通常都相当大,以一部90min的电影为例。文件大小通常都在8GB以上,有的甚至超过15GB。MPEG-2最大的缺点就是文件体积过大。
  随着技术的改进,它在高清视频方面也得到了应用。虽然他的文件容量很大,但是能够这么顺风顺水的发展也有自己的优点,那就是相对于其他编码方式,它对于系统资源的消耗是最小的,解码能力不强的芯片也可以流畅播放。也就是你买的播放机如果性能不怎么强的话,一样可以比较流畅的播放。
而 H.264和VC-1是利用高效率的压缩算法,把影片容量压缩的更小,以便于传输或存储。相对的,播放这两种格式的影片,就需要硬件有更强大的处理能力来进行解码。不过,技术进步实在太快了,时间要不了多久,随着硬件解码芯片的发展,H.264和VC-1必然成为像当年的DVD那样,任何主流的配置都能流畅播放,那时候MPEG-2也就没有任何优势而言了。所以,目前最流行的也是我们看高清最好的只有H.264与VC-1这两种编码方式了。 

■ H.264与AVC编码
  视频编码技术有两套标准,国际电联(ITU-T)的标准H.261、H.263、H.263+等;还有ISO 的MPEG标准Mpeg1、Mpeg2、Mpeg4等等。H.264/AVC是两大组织集合H.263+和Mpeg4的优点联合推出的最新标准,最具价值的部分无疑是更高的数据压缩比。在同等的图像质量条件下,H.264的数据压缩比能比H.263高2倍,比MPEG-4高1.5倍。H.264/AVC标准是由ITU-T和ISO/IEC联合开发的,定位于覆盖整个视频应用领域,包括:低码率的无线应用、标准清晰度和高清晰度的电视广播应用、Internet上的视频流应用,传输高清晰度的DVD视频以及应用于数码相机的高质量视频应用等等。
ITU-T给这个标准命名为H.264(以前叫做H.26L),而ISO/IEC称它为MPEG-4 高级视频编码(Advanced Video Coding,AVC),并且它将成为MPEG-4标准的第10部分。既然AVC是当前MPEG-4标准的拓展,那么它必然将受益于MPEG-4开发良好的基础结构(比如系统分层和音频等)。很明显,作为MPEG-4高级简洁框架(Advanced Simple Profile,ASP)的MPEG-4 AVC将会优于当前的MPEG-4视频压缩标准,它将主要应用在具有高压缩率和分层次质量需求的方向。

■ VC-1编码
  VC-1即Video Codec One(视频解码方案一)。它起源于微软公司的Windows Media Video 9。VC-1是继MPEG-2 TS和H.264之后,最后被认可的高清编码标准格式。VC-1虽然是最后被认可的高清编码格式,不过因为有微软的后台,所以这种编码格式不能小窥。相对于MPEG2,VC-1的压缩比更高,但相对于H.264而言,编码解码的计算则要稍小一些。
  总的来说,从压缩比上来看,H.264的压缩比率更高一些,也就是同样的视频,通过H.264编码算法压出来的视频容量要比VC-1的更小,但是VC-1 格式的视频在解码计算方面则更小一些,一般通过高性能的CPU就可以很流畅的观看高清视频。目前来看,VC-1可能是一个比较好的平衡,辅以微软的支持,应该是一只不可忽视的力量。一般来说,VC-1多为 “.wmv”后缀,但这都不是绝对的,具体的编码格式还是要通过软件来查询。

■ WMV编码
WMV是由微软公司创立的一种视 频压缩格式。由于Windows操作系统大力支持WMV系列版本。因此WMV-HD格式在PC系统中应用较广。 
WMV(Windows Media Video)是微软公司的视频编解码 器家族,包括WMV 7、WMV 8、WMV 9、WPV 10。这一族的编解码 器可以应用在从拨号上网的窄带视频到高清晰度电视(HDTV)的宽带视频。使用Windows Media Video用户还可以将视频文件刻录到CD、DVD或者其它一些设备上。它也适用于用作媒体服务器。WMV 可以被看作是MPEG-4的一个增强版本。最新的由SMPTE(电视电影工程师协会)承认的WMV-9,也就是我们说的上面的VC-1。

■ Divx、Xvid
我们还可以经常看的到Divx、Xvid,这两个也很容易弄混。
  其实两者确实有很大渊源。DivX是一种将影片的音频由MP3来压缩、视频由MPEG-4技术来压缩的数字多媒体压缩格式。DivX就是从微软公司MPEG-4 v3编码技术中派生出的最为知名以及被广大DVDRipper广泛采用的视频编码技术。用它编码的视频文件不仅最大程度上还原了DVD原本的画面质量,而且可以允许你选择几乎所有格式的音频.它的视频部分采用的是微软的MPEG-4技术进行压缩,而音频部分则是采用MP3或WMA进行压缩,然后把视频和音频部分进行完美组合成让我们耳目一新的AVI文件,就是DivX影片了。DivX最早是由国外的一名电脑游戏玩家和一名黑客制作,他们破解了微软的MPEG-4视频压缩算法而后重新改写并重新命名为DivX。
  XviD是目前世界上最常用的视频编码解码 器(codec),而且是第一个真正开放源代码的,通过GPL协议发布。在很多次的codec比较中,XviD的表现令人惊奇的好,总体来说是目前最优秀、最全能的codec。可以说XviD是与Divx一脉相承而又有所加强的。


■ 封装格式与编码方式的对应一览
  最后我们可以看一下到底什么样的封装格式可以兼容什么样的编码格式,以下我们找到了底下几个主流的封装格式可以封装的视频编码的格式类型,仅供各位参考。
  AVI: 可用MPEG-2, DIVX, XVID, WMV3, WMV4, AC-1, H.264
  WMV: 可用WMV3, WMV4, AC-1
  RM/RMVB: 可用RV40, RV50, RV60,RM8, RM9, RM10
  MOV: 可用MPEG-2, MPEG4-ASP(XVID), H.264
  MKV:所有。

■总结:
介绍了封装格式和编码以后,我们就能知道很多视频同样都是MKV格式,但是里面视频的编码很有可能不同。当我们的盒子或者超级电视播放视频的时候,相应的解码 器就会做相应的处理。当视频编码解码出现问题了,相应的视频就无法播放。因此要找到视频无法播放的原因,就需要清楚这个视频的编码到底是什么,而我们的盒子和超级电视支持的编码有哪些,是否匹配。

视频格式编码详解