OverLord
我们都知道在Windows系统下,文件都是有扩展名(Filename Extension,或作延伸文件名、后缀名)的,它是早期操作系统(如VMS/CP/M/DOS等)用来标志文件格式的一种机制。以DOS来说,一个文件扩展名是跟在文件主名后面的,由一个分隔符号分隔。在一个像“example.t x t”的文件名中,example是文件主名,txt为文件扩展名,表示这个文件是一个纯文字文件,英文句号“.”就是文件主名与文件扩展名的分隔符号。
文件扩展名更重要的作用是让系统决定当用户想打开这个文件的时候用哪种软件运行,例如Windows系统中exe文件是可执行档,doc文件默认用Microsoft Word打开的Word文件。视频类型的文件也不例外,只不过它们的后缀有很多,诸如MKV、AVI、MP4等等。
时下的视频播放器固然支持多种格式播放,具有良好的兼容性,哪怕你把一个*.AVI格式的视频文件改成*.MP4格式文件,也照样可以播放,但是不要认为这个视频格式也随着更名改变,本质上它毫无变化。
这是为什么呢?其实无论M K V、AV I还是MP4格式,它们都是一种封装格式,相当于存储视频的一种容器——而且这些格式的创建者,都分属于不同的公司。
AVI是Audio Video Interleave(“音频视频交织”或译为“音频视频交错”)的首字母缩写,由微软在1992年11月推出的一种多媒体文件格式,用于对抗苹果QuickTime的技术,现在所说的AVI多是指一种封装格式。
尽管AVI已经属于老旧的技术,但是由于Windows的通用性,和简单易懂的开发API,仍被广泛使用。AVI的文件结构分为“头部”,“主体”和“索引”三部分。主体中图像数据和声音数据是交互存放的。从尾部的索引可以索引跳到自己想放的位置。
AVI将视频和音频封装在一个文件里,其顺序是:若干视频帧(Video Frame)之后接着若干音频帧(Audio Frame),再然后是视频帧、音频帧,故名为“音频视频交织”,意即音频和视频按帧交错排列,以此达到音频同步于视频播放的效果。和DVD视频格式一样,AVI文件支持多视频流和音频流,虽然这些功能很少使用。大多数AVI文件还支持由Matrox OpenDML集团于1996年2月开发的格式后缀。这些文件非正式的称为“AVI 2.0”,并得到微软的支持。
AVI本身只是提供了这么一个框架,内部的图像数据和声音数据格式可以是任意的编码形式。但是由于索引放在了文件尾部,所以在以网络流媒体模式播放时必须先缓冲到尾部(其实就是将整个视频完全缓冲完毕)才能按照时间轴顺畅播放,显然并不合理,这也是为什么在流媒体中从来没有出现过AVI格式的视频。
动态影像专家小组(英语:M o v i n gPicture Experts Group,简称MPEG)为一源自ISO与IEC等国际组织的工作小组,主要工作是制定影音压缩及传输的规格标准。MPEG的官方正式命名其实颇为复杂:ISO/IEC JTC 1/SC 29/WG 11 – Codingof moving pictures and audio 。
MPEG(通常指MPEG1)影像编码是基于变换的有损压缩。光学信号线经过采样形成视频信号,视频信号基本的单位叫做帧,一个帧就是一幅独立的图像,然后帧被分割成小块做变换编码,然后量化,最后进行编码。
MPEG目前已经拥有了MPEG1、MPEG2、MPEG3、MPEG4、MPEG7、MPEG21几种相关标准,注意,其中的MPEG3可不是MP3音乐文件格式!实际上,MP3音频文件格式,是基于MPEG1的音频Layer3而来。
这里面,MPEG4算是一个集大成者,也就是MP4或称MPEG4第十四部分(MPEG4 Part 14),是一种标准的数字多媒体容器格式。MPEG4第十四部分的扩展名为*.mp4,以存储数字音频及数字视频为主,但也可以存储字幕和静止图像。因其可容纳支持比特流的视频流(如高级视频编码),为流媒体。
虽然被官方标准定义的唯一扩展名是*.mp 4,但第三方通常会使用各种扩展名来指示文件的内容,比如同时拥有音频视频的MPEG4文件通常使用标准扩展名*.mp4;而仅仅有音频的MPEG4文件会使用*.m4a扩展名;在iTunes Store上销售的仅有音频、但是经过加密版权管理的文件命名为*.m4p;包含章节标记,图像和超链接的有声读物、播客文件或是元数据会使用*.m4b作为扩展名,但有时候也会使用*.m4a作为扩展名。使用*.m4a扩展名的文件不能使用书签来记录播放位置,而使用*.m4b扩展名的就可以做到这一点。另外,苹果公司的iPhone手机使用MPEG4音频作为其电话铃声,但扩展名是*.m4r而不是*.m4a。
至于原始的MPEG4视频流,则会使用*.m4v扩展名,但该扩展名也被用于仅有视频流的MPEG4文件。不止如此,当初移动端(手机)经常使用的一种叫做3GP的视频格式,可能有些读者还会有些许印象,它其实也是MPEG4的一部分(MPEG4第十二部分,又被称为MPEG-4/JPEG2000基本媒体文件格式),它类似于*.mp4格式但使用*.3gp或是*.3g2扩展名,该格式还存储非MPEG4数据(如AMR,TX3G)。
WMV(Windows Media Video)是微软公司开发的一组数字视频编解码格式的通称,它是Windows Media架构下的一部分。最初是为了满足低速率流媒体应用的需求,作为专有编解码开发出来的,但是2003年微软公司基于Windows Media Video第9版编解码起草了视频编解码规范并且提交给SMPTE申请作为标准。这个标准在2006年3月作为SMPTE 421M被正式批准,这样WindowsMedia Video 9编解码就不再是一个专有的技术。其早期的编解码版本(7和8)仍然被认为是专有技术,因为它们不在SMPTE 421M标准的涵盖范围内。
WMV不是仅仅基于微软公司的自有技术开发的。从第七版(WMV1)开始,微软公司就使用它作为自己非标准MPEG4第二部分。但是,由于WMV第九版已经是SMPTE的一个独立标准(421M,也称为VC-1),有理由相信WMV的发展已经不像MPEG4那样是一个它自己专有的编解码技术。至2006年4月,VC-1专利共享的企业就有了16家之多,微软公司也是MPEG4 AVC/H.264专利共享企业中的一家。
WMV可以使用如MPlayer或者Windows Media Player这样的播放器播放,Windows Media Player只能在微软Windows和苹果MacOS系统上使用。也有许多用于如Linux这样不同平台上的使用FFmpeg实现WMV编解码的第三方播放器。其视频流通常与Windows Media Audio音频流组合在一起并且使用扩展名为*.wmv或者*.asf的Advanced Streaming Format的文件进行封装,也可以使用AVI或者Matroska格式封装。
RealVideo是由RealNetworks于1997年所开发的一种专用视频压缩格式——具体格式随版本而变化,截止到2018年RealVideo的最新版本为RV60。它从开发伊始就被定位为应用于网络视频播放的格式(即流媒体)。Re a l V i d e o支持各种播放平台,包含Windows、Mac、Linux、Solaris以及某些移动电话。相较于其他的视频编解码器,RealVideo通常可以将视频资料压缩得更小,因此它可以在用56KbpsMODEM拨号上网的条件实现不间断的视频播放。
Re a l V i d e o最早的文件扩展名一般为. r m或. r vm,之后广泛流行的是RMVB格式,即使用动态比特率的Real Vi deo,扩展名一般为.rmvb——这就是当初统治了窄带互联网的视频格式。随着网络带宽的提升和存储设备的发展,RealVideo在网络传输上不再有体积优势,充裕的网络带宽和更廉价、空间更大的存储设备使人们开始追求更高的画质,因此目前Re al V i d e o已经逐渐被高级视频编码、VP9等新一代视频格式所取代。最新的RealVideo HD格式因其全新的编码算法与高效率压缩被期望着与高效率视频编码等新兴格式抗衡,但其仍面临着编解码只能使用RealProducer(编码用)和RealPlayer(解码/播放用)的问题,应用范围十分狭窄,不易被大众所接受。
MOV即QuickTime封装格式(也叫影片格式),它是A p p l e公司开发的一种音频、视频文件封装,用于存储常用数字媒体类型。当选择Qu i c kT ime(*.mov)作为“保存类型”时,动画将保存为.mov文件。1998年2月11日,国际标准组织(ISO)认可QuickTime文件格式作为MPEG4标准的基础。支持者表示QuickTime提供一个好的"生命周期"格式,很适合做截取、编辑、文件、散布和播放(相对于简单以文件为流资料方式的MPEG1和MPEG2而言,不适合作编辑之用)。在2002年开发者增加了MPEG4的兼容性到QuickTime 6。然而,苹果电脑延迟这个版本的推出达到数个月之久,是因为MPEG4授权本身的争议,要求提出的授权金会限制很多用户和内容的提供者。在妥协之后,蘋果电脑于2002年7月15日推出QuickTime 6。
Matroska格式(后缀为*.MKV)是一种较新的多媒体封装格式,这个封装格式可把多种不同编码的视频及16条或以上不同格式的音频和语言不同的字幕封装到一个Matroska Media档内,它也是其中一种开放源代码的多媒体封装格式。注意,它始终是一个封装格式,而不是视频格式,这和上述其它视频格式不一样。不过,Matroska“大包大揽”地封装能力,还使让它迅速成为非常重要的视频(封装)格式之一。此外,Matroska还可以提供非常好的交互功能,而且比MPEG更方便、强大。
Flash Video格式(后缀为*.FLV)是由Adobe Flash延伸出来的的一种流行网络视频封装格式。随着视频网站的丰富,这个格式曾经统治过相当程度的网络视频流,不过随着时间的推移,它已经不再是主流了,未来也许会随着Flash被浏览器与操作系统抛弃而逐渐消失。
视频格式是决定了它出自于哪里,有什么样的特点,但是要让它成为视频,还需要编码来“编织”——这就是视频的编码。
MPEG1第二部分主要使用在VCD上,有些在线视频也使用这种格式。该编解码器的常见视频质量大致上和以前的VHS录像带相当,但VCD属于数字视频技术,它不会像VHS录像带一样随着播放的次数和时间而逐渐损失质量。而且如果输入视频源的质量足够好,编码的码率足够高,VCD可以给出从各方面看都比VHS要高的质量。只是考虑到让所有的VCD播放机都可以播放,高于1150kbps的视频码率或者高于352×288的视频分辨率一般不会用于常见的VCD节目和光盘制品,这个限制也对单体VCD播放机及一些DVD播放机有效。MPEG1第三部分还包括了目前常见的*.mp3音频编解码器。如果考虑通用性的话,MPEG1的视频/音频编解码器可以说是通用性最高的编解码器,几乎世界上所有的计算机都可以播放MPEG1格式的文件。
MPEG2第二部分使用在DVD、SVCD和大多数数字视频广播系统和有线分布系统(Cable Distribution Systems)中。当使用在标准DVD上时,它支持很高的图像质量和宽屏;当使用在SVCD时,它的质量不如DVD但是比VCD高出许多。MPEG2也被使用在新一代DVD标准HD-DVD和Blu-ray(蓝光光盘)上。从技术上来讲,比起MPEG1,MPEG2最大的改进在于增加了对隔行扫描视频的支持。现在看来,MPEG2也已经是个相当老的视频编码标准,优势是具有很大的普及度和市场接受度。
MPEG4第二部分标准可以使用在网络传输、广播和媒体存储上。它的压缩性能比MPEG2有所提高。和之前的视频编码标准的主要不同点在于,它支持“面向对象”(Objectoriented)的编码方法和一些其他并非用于提高通常视频编码压缩率的技术,当然也引入了一些提高压缩能力的技术。和MPEG2一样,它同时支持逐行扫描和隔行扫描。
MPEG4第十部分,其实就是我们日常说的H.264了,或者也称之为AVC。它于2003年制定完成的视频编码标准,并且在已经得到了越来越多的应用。该标准引入了一系列新的能够大大提高压缩性能的技术,并能够同时在高码率端和低码率端大大超越以前的诸标准。和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3,它也是目前最为普及的视频编码技术之一。
MPEG-H第二部分又称为高效率视频编码(High Ef f iciencyVideo Coding, HEVC),也就是著名的H.265编码,或称HEVC。HE VC被认为不仅提升影像质量,同时也能达到H. 2 6 4 /MPEG4AVC两倍之压缩率(等同于同样画面质量下比特率减少到了50%)!H . 2 6 5旨在在有限带宽下传输更高质量的网络视频,仅需H . 2 6 4的一半带宽即可播放相同质量的视频。H. 2 6 5标准也同时支持4K(4096×2160)和8K(8192×4320)超高清视频。
WMV(Windows Media Video)是微软公司的视频编解码器家族,包括WMV 7、WMV 8、WMV 9、WPV 10。这一族的编解码器可以应用在从拨号上网的窄带视频到高清晰度电视(HDTV)的宽带视频。使用Windows Media Video用户还可以将视频文件刻录到CD、DVD或者其它一些设备上。它也适用于用作媒体服务器。WMV可以被看作是MPEG4的一个增强版本。最新的WMV的版本是正在SMPTE制定中的VC-1标准。WMV9(V C - 1,开发代号为“Corona”)刚推出的时候称为VC-9,之后才被电影电视工程师协会(SMPTE)改称为VC-1(VC指Video Codec)。技术上,V C - 1 也与H.264有诸多相似之处。
AVS是中国制定的音视频压缩编码标准,准确来说,其不仅仅包括视频编码标准。它最主要的目的是通过采用与H.264不同的专利授权方式,来避免付出大笔的专利授权费用。在技术上可以回避一些非必要专利,也可以在几乎不影响编码压缩效率的基础上,提高编解码速度。
DivX,Xv iD和3ivx视频编解码器基本上使用的都是MPEG4第二部分的技术,以后缀*.avi, *.mp4,*.ogm或者*.mkv结尾的文件有一部分是使用这些视频编解码器的。
AOMedia Video 1(简称AV1)是一个开放、免专利的视频编码格式,专为通过网路进行流传输而设计。它由开放媒体联盟(AOMedia)开发,该联盟由半导体企业、在线视频厂商和网页浏览器开发商于2015年成立。互联网工程任务组(IETF)也将这项工作标准化为在线视频编解码器(NetVC)。相比目前的H.265(HEVC)編码,AV1不仅能保持原视频的分辨率、帧率、比特率,视频体积还能再缩小20%,相比于VP9压缩率也高出30%。这就意味着在同等带宽下可以传输更高清的画质。AV1编码的开发,基本就是冲着ITU-T VCEG(视频编码专家组)和H.265而来。主要原因是H.265编码高昂的专利费用和复杂的授权政策导致的授权费高昂和重复收费。
VP9是谷歌公司为了替换老旧的VP8影像编码格式并与动态专家图像组(MPEG)主导的高效率视频编码(H.265/HEVC)竞争所开发的免费、开源的影像编码格式。不同的是,VP9主要针对的还是在线流媒体视频,尤其是使用浏览器播放的在线视频。与HEVC等视频编码标准相比,VP9等比特流格式的视频编码标准相对简单,对流媒体支持更加出众。
实际上,现在主流的视频格式就集中在*.AVI、*.MKV以及*.mp4上,而它们常用的编码则主要集中在H.264、H.265(HEVC)上,AV1将是未来非常重要的视频编码,但还不是现在——毕竟它需要硬件解码才能“还原”视频继而播放。而且,采用这种编码格式的视频数量还较为稀少,远没有达到普及的程度。