12.2.1 视频文件格式
不论是音频文件还是视频文件,实际上都只是一个容器格式文件,这点类似于压缩文件(zip文件或rar文件)。为了方便同时回放,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,即在同一个容器格式文件里面包裹不同的轨道。容器是用来区分不同文件的数据类型的,而编码格式则由音视频文件的压缩算法决定。一般所说的文件格式或者后缀名即指文件的容器格式。对于一种容器格式文件,可以包含不同编码格式的一种视频和音频。目前比较知名的容器格式包括AVI(.avi)、MPEG(.mpg、.mpeg)、QuickTime(.mov)、RealMedia(.rm)、MP4(.mp4)等。
(1)Flash Video(简称FLV):由Adobe Flash延伸出来的一种流行网络视频封装格式。随着视频网站的丰富,这个格式已经非常普及。
(2)AVI(Audio Video Interleave):比较早的AVI是微软公司开发的。其含义是Audio Video Interactive,就是把视频和音频编码混合在一起存储。AVI格式限制比较多,只能有一个视频轨道和一个音频轨道(现在有非标准插件可加入最多两个音频轨道),还可以有一些附加轨道,如文字等。AVI格式不提供任何控制功能。扩展名为“.avi”。
(3)WMV(Windows Media Video):是微软公司开发的一组数字视频编解码格式的通称,ASF(Advanced Systems Format)是其封装格式。ASF封装的WMV档具有“数字版权保护”功能。扩展名为“.wmv/asf”“.wmvhd”。
(4)MPEG(Moving Picture Experts Group):是一个国际标准化组织(ISO)认可的媒体封装形式,受到大多数设备的支持。其存储方式多样,可以适应不同的应用环境。MPEG-4档的档容器格式在Part 1(mux)、Part 14(asp)、Part 15(avc)等中规定。MPEG的控制功能丰富,可以有多个视频(即角度)、音轨、字幕(位图字幕)等。MPEG的一个简化版本3GP还广泛应用于准3G手机。扩展名为“.dat”(用于VCD)、“.vob”、“.mpg/mpeg”、“.3gp/3g2”(用于手机)等。
(5)Matroska:是一种新的多媒体封装格式,这个封装格式可以把多种不同编码的视频及16条及以上不同格式的音频和语言不同的字幕封装到一个Matroska Media档内。它也是一种开放源代码的多媒体封装格式。Matroska还可以提供非常好的交互功能,而且比MPEG方便、强大。扩展名为“.mkv”。
(6)Real Video[或者称Real Media(RM)]:是由RealNetworks开发的一种档容器。它通常只能容纳Real Video和Real Audio编码的媒体。该档带有一定的交互功能,允许编写脚本以控制播放。RM格式,尤其是可变比特率的RMVB格式,没有复杂的Profile/Level,制作起来较H.264视频格式简单,非常受到网络上传者的欢迎。此外很多人仍有RMVB编码体积小高质量的错误认知,这个不太正确的观念导致很多人倾向使用RMVB,事实上在相同码率下,RMVB编码和H.264这个高度压缩的视频编码相比,体积会较大。扩展名“.rm/rmvb”。
(7)QuickTime File Format:由苹果公司开发的容器。1998年2月11日,国际标准组织认可QuickTime文件格式作为MPEG-4标准的基础。QuickTime可存储的内容相当丰富,除了视频、音频以外,还支持图片、文字(文本字幕)等。扩展名为“.mov”“.qt”。
(8)Ogg Media:是一个完全开放的多媒体系统计划,OGM(Ogg Media File)是其容器格式。OGM可以支持视频、音频、字幕(文本字幕)等多种轨道。扩展名为“.ogg”。
(9)MOD:是JVC生产的硬盘摄录机所采用的存储格式名称。
音频和视频的编/解码器是一组算法,用来对一段特定音频或视频进行解码和编码,以便使音频和视频都能够播放。原始的多媒体文件体积太大,假如不对其进行编码,那么构成一段视频或音频的数据会相当庞大,以至于在互联网上传播需消耗无法忍受的时间。如果没有解码器,接收方就不能把编码过的数据重组成原始的媒体数据。编/解码器可以读懂特定的容器格式,并且对其中的音频轨道和视频轨道解码。
视频编/解码器是一个能够对数字视频进行压缩或者解压缩的程序或者设备,通常这种压缩属于有损数据压缩。历史上,视频信号是以模拟形式存储在磁带上的。随着Compact Disc出现并进入市场,音频信号以数字化方式进行存储,视频信号也开始使用数字化格式,一些相关技术也开始随之发展起来。
HTML5支持3种主要的视频格式,表12-1所示是这3种视频格式及支持它们的浏览器。
表12-1 HTML5(video元素)支持的3种视频格式
Ogg使用的是带有Theora视频编码和Vorbis音频编码的Ogg文件,它的文件扩展名为“.ogg”或“.ogv”。
MPEG-4使用的是带有H.264视频编码和AAC音频编码的MPEG-4文件,它的文件扩展名为“.mp4”或“.m4v”。
WebM使用的是带有VP8视频编码和Vorbis音频编码的WebM文件,它的文件扩展名为“.webm”。