基于封装格式的MKV视频研究

2023-02-28

近年来,供网民下载或者在线观看视频的网站越来越多。片源的画质也越来越好,一些高清电影也不再鲜见。有些高清电影的格式也不再是大家熟知的AVI、WMV或者RMVB,出现了一些新的“视频格式”。比如说MP4、MKV、TS、FLV等等。

要了解这些视频格式首先要弄清这些视频里都包含了哪些东西。一个视频里面有图像、声音、字幕,可能还有其他东西。图像有图像的格式,严格意义上讲应该是指视频编码压缩格式,像MPEG1、DIVX、MPEG4等等;声音也有格式,那就是音频格式,比如mp3、ogg等等;字幕格式如srt、smi、ssa或sub。而我们这里说的视频格式其实是多媒体封装格式。

1 多媒体封装格式

当我们欣赏一部电影大家可能没有意识到,其实我们是在同时播放一个视频流和一个音频流,甚至还有字幕。就像早期的无声电影一样,在播放电影时,旁边站几个配音的是不现实的。因此我们把音频和视频打包到一个文件里,这个文件就叫做容器格式文件,与ZIP文件相类似。这种容器格式文件及其相关软件必须提供许多重要功能,比如在播放时保证音视频的时序一致。Win ZIP或者Win RAR可以方便地打包多个音视频文件在一起传输,但是它们显然无法解决保证时序播放的问题。所谓多媒体封装格式也就是多媒体容器(Multimedia Container),就是将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中,也就是说仅仅是一个外壳,或者大家把它当成一个放视频轨和音频轨的文件夹也可以。目前比较知名的容器格式包括AVI(.avi)、MPEG(.mpg,.mpeg)、Quick Time(.mov)、Real Media(.rm)、MP4(.mp4)、MKV(.mkv)等等。

为什么会出现如此多的“格式”呢?从一方面讲是利益使然。大家知道,早期电影只在电影放映机上,后来出现在电视上,网络等其他平台上,具有敏锐嗅觉的商家们看到了无限的商机,纷纷制定自己的封装格式,满足视频在网络等平台上上传下载,在线播放等功能。从另一方面讲则是技术问题。说得通俗点,如果把视频轨比作饭,而音频轨比作菜,封装格式则是一个碗,或者一个锅,用来盛放饭菜的容器。有的人可能觉得奇怪,容器,不就能盛放饭菜就行了么,用一个碗就可以了,何必制定出这么多的格式以及规范呢?其实不然,试想一下,有的菜,碗放不下,得换锅。有的饭比较烫,也不能放在塑料的容器里,当然个人喜好也有一定关系。所以容器的选择,基本在于,其对视频/音频兼容性,以及适合范围。所以很多人一直把封装格式当成前面介绍的视频编码是错误的,而这两者之间没有必然的直接联系。比如AVI视频,里面视频用的编码格式可能是MPEG-1,也可能是MPEG-2。

这些格式里,有的已经成熟,甚至正走向没落,比如AVI技术;有的正在努力完善,比如MKV技术。我们就比较一下这新旧两种技术,看能从中得到什么启示。

1.1 AVI容器-成熟的老技术

AVI英文全称为Audio Video Interleaved,即音频视频交错格式。是将语音和影像同步组合在一起的文件格式。它对视频文件采用了一种有损压缩方式,但压缩比较高,因此尽管画面质量不是太好,但其应用范围仍然非常广泛。AVI支持256色和RLE压缩。AVI信息主要应用在多媒体光盘上,用来保存电视、电影等各种影像信息。

AVI是微软1992年推出用于对抗苹果Quicktime的一种音视频容器格式,可以非常灵活地处理当时的各种音视频编码。AVI是VFW(Video For Windows)框架的核心,VFW(Video for Windows)是Microsoft推出的关于数字视频的一个软件开发包。AVI文件中的音、视频数据帧交错存放。所谓“音频视频交错[1]”,就是可以将视频和音频交织在一起进行同步播放。围绕AVI文件,VFW推出了一整套完整的视频采集、压缩、解压缩、回放和编辑的应用程序接口(API)。由于AVI文件格式推出较早,并且是微软产品与windows系统兼容性好,再加上API的简单易懂,使其在数字视频技术中有广泛的应用。

AVI文件的特点在于它是典型的数据流文件,它由视频流、音频流、文本流组成,从结构上分为头部,主体和索引三部分[2]。AVI本身只是提供了这么一个框架,主体中图像数据和声音数据是交互存放的,图像数据和声音顺据格式可以是任意的编码形式。从尾部的索引可以索引跳到自己想放的位置。所以对AVI文件的处理主要是处理文件流,也就是索引(图1)。

正是因为上述特点,才使AVI有着很多致命缺点。VFW无法支持音视频编码目前支持的更高级特性,比如动态码率音频编码(VBR)、动态帧率视频编码(VFR)。无法提供对很多现代压缩格式的兼容,比如开源的Ogg Vorbis音频压缩格式。因为索引放在了文件尾部,所以在播internet流媒体时不能完全支持“即下即播”,也就是流式传输。如果没有下载完成,就很难正常播放出来。对TrueHD,DTS-HD等音效更是完全不能支持。虽然经过不断完善,也能封装1080p高清视频,但效果差强人意。

1.2 MKV封装容器

MKV由俄罗斯的程序员开发,从一开始就是Open Source,因此得到了很多其他程序员的帮助,开发速度相当快。

MKV是Matroska[3]的一种媒体文件,Matroska是一种新的多媒体封装格式。它可将多种不同编码的视频及16条以上不同格式的音频和不同语言的字幕流封装到一个Matroska Media文件当中。Matroska媒体定义了三种类型的文件:MKV是视频文件,它里面可能还包含有音频和字幕;MKA是单一的音频文件,但可能有多条及多种类型的音轨;MKS是字幕文件。这三种文件以MKV最为常见。

MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,甚至连非常封闭的RealMedia及QuickTime这类流媒体也被它囊括进去,可以说是对传统媒体格式的一次大颠覆,几乎变成了一个万能的媒体容器。

播放MKV并不需要专用的播放器,任何基于DirectShow的播放器都能播放它,如常见的Media Player Classic、BSplayer、Zoom Player播放器等,甚至包括Windows Media player,仅需安装相应Matroska解码分离器插件即可。

1.3 AVI与MKV的比较

第一,出身不同。一个是老贵族,一个是草根英雄。AVI是微软产品,从一出现就得到了各种软件的支持,合成、编辑、转换、采集各方面都有;MKV是俄国某程序员编写,至今还很少有软件商家在功能上承认。

第二,Open Source。AVI像微软的其他产品一样,源代码是不完全公开的,所以它的更新完善是由几个人来完成,历经十年几乎没有大的改变;MKV一开始就是Open Source,得到了很多程序员的帮助,虽然出生不久却发展很快。

第三,框架结构不同。AVI结构呆板,不灵活,造成很多困难无法克服,比如AVI对高码率VBR音频文件支持不好,后来VirtualDub提出了一种新的方法扩充了AVI对VBR音频的兼容,但是在高码率时会产生丢失数据的问题,从而导致有损音效,至今无法完美解决。而MKV采用了一种更灵活的框架,叫做EBML,以确保能够支持将来新出现的压缩格式。这种框架允许增加对容器格式的新特性,同时不破坏原有软件和文件的向后兼容性。

第四,可变帧率。Matroska支持可变帧率(VFR,即Variable Frame Rate)的视频编码,这种VFR视频的帧率是不固定的,它可在动态画面中使用较大的帧率,而在静态画面中使用较小的帧率,这样可以有效的减少视频文件的体积,并改善动态画面的质量。它的作用比目前广泛使用的VBR(可变码率)更为明显。

第五,错误检测以及修复。Matroska加入AVI所没有的EDC错误检测代码,所以即使是没有下载完毕的MKV文件也可以顺利回放,这些对AVI来说完全是不可想象的。

第六,体积和画质。虽然Matroska加入了错误检测代码,但由于采用了新的更高效的组织结构EBML,用MKV封装后的电影还是比AVI源文件要小了约1%,这就是说即使加上了多个字幕,MKV文件的体积也不可能比AVI文件大。而可变帧率的支持使画质更好。

第七,音轨与软字幕。AVI出现已经十年,直到近年才支持2个音轨,更不支持“内挂”字幕;而MKV最多可以达到16条音轨和软字幕,多字幕随意选择。在传输保存时比较方便。

第八,流式传输。MKV可以通过时间戳来管理视频以及音频的同步问题,做到即下即看。

第九,菜单操作。交互式的操作使得MKV更加人性化。可以对视频字幕大小、颜色和语言进行实时修改选择。

第十,强大的兼容性。MKV最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,即使是非常封闭的RealMedia及QuickTime也被它包括进去了,堪称万能的媒体容器。

第十一,开放性和跨平台性。Matroska使用的是一种开放的架构,拥有众多的先进特性,并且能跨平台使用(表1)。

2 MKV视频在教学中的应用前景

尽管这种新颖开放的封装方式出现不久,但是它强大的功能给现代教学方式带来更加广阔的前景。

它的交互式菜单操作更人性化,对于音频和字幕的随意选择,为各学科尤其是外语视频教学提供了一种新的方式。学生可以看到不带中文字幕的外文视频,并随时通过设定调出中文字幕加深学生的理解。

强大的兼容性,使现代教育技术人员在处理视频时不用为了选择哪一种编码而苦恼。

虽然包括premiere在内的主流非编软件都不支持MKV,但是我们可以另辟蹊径,通过安装合适的插件和合适的解码包来解决。[4]

3 结语

建立一个现代、灵活、延伸性、多平台的互联网服务器,快速查找文件;发展一套创作和编辑用的Matroska文件工具,并在GNU通用公共许可证下发布;开发一个网络图书馆,允许开发者向Matroska申请,将他们自行开发的应用软件加入Matroska音频格式,并在GNU宽通用公共许可证下发布;与硬件制造商合作,把他们的音频格式嵌入多媒体的设备里;支授以Matroska在各种各样的操作系统(包括Windows、DirectShow、Linux、Haiku和多媒体处理框架GStreamer)的运作。当这些计划完成后,我们可以看到一个功能更强大,更全面的多媒体封装格式。

摘要:多媒体封装技术中两种典型格式AVI和MKV的比较,以及MKV格式的发展前景,对于教学的积极意义。

关键词:多媒体封装格式,AVI,MKV

参考文献

[1] 徐静.当代视频文件格式纵观[J].视听界(广播电视技术),2009.

[2] 徐殿武.AVI文件格式及其应用研究[J].现代电子技术,2008.

[3] http://www.mkvconverter.com.

[4] 另辟蹊径,在Premiere中编辑高清MKV文件,微电脑世界.

上一篇:浅析计算机软件项目管理实施对策下一篇:沥青路面裂缝的成因及处理措施探讨