查看原文
其他

你不懂得“.avi”

大话小数 中国金融电脑+ 2022-12-13

17


星期四

2020年12月


验“金”室


你是否对这些名称有过疑问?

1. “avi”和“av(audio/video)”是什么关系?  

2. “mp4-mp3”等于“mp1”吗?  

3.“mkv”“mka”“wmv”“wma”程序员都有起名困难症吗?


自1991年Windows推出Windows Media Player、macOS推出QuickTime player以来,在个人电脑上看视频就成为流行趋势。三十年来,视频、音频压缩算法以及多媒体封装格式的快速发展,让我们能够更加方便快捷地在个人电脑上欣赏各类高清影片。


今天就来讲讲多媒体封装格式中的那些事儿。



一、多媒体封装格式有什么用?


无论是美剧、韩剧还是大电影、小电影,都是由音频和视频组成的,但是当我们从网上下载时,并不会分开下载单独的音频和视频。而是将原始的音频、视频数据按照标准的结构封装起来形成一个单独的整体的文件再下载,这就是封装格式的作用。除封装音频、视频之外,部分封装格式还支持存储视频字幕、章节信息、音视频同步信息等。


二、为什么要封装呢?


首先,将音频、视频等所有需要的数据全部封装到一个文件中,可以避免用户想看某段影像时需要分别下载这段影像的视频、音频、字幕等,方便用户下载、存储、播放。


其次,封装格式中包含了大量元数据,比如视频的压缩编码格式、分辨率,音频的压缩编码格式、采样率等信息。通过读取元数据,避免直接解析视频、音频数据,可以极大提高播放器的响应速度,例如,视频播放器通过读取编码格式元数据,快速确定格式对应的音频、视频解码器、读取分辨率、决定播放窗口大小等。封装格式中包含的大量索引信息,可以帮助播放器确定时间与文件位置的对应关系。当快进快退时,可以迅速确定视频帧在文件中的位置,实现快速跳转。


那么,目前有哪些常用的封装格式?每一种封装格式又有什么不同呢?


一般常见的后缀名有“.avi”“.mp4”“.mkv”。我们在网站上下载视频文件使用的是哪种后缀名,就代表它使用的是哪一种封装格式。


1.AVI

AVI的全称是Audio Video Interleaved(音频视频交错),即将视频、音频数据交错存储在文件中。这种交错的封装格式在1992年由微软开发,它的出现意味着多媒体格式领域首次建立了工业标准。


AVI格式专为网络分发视频而设计。想象一下在用电话线上网,网速不到100K的1992年,挂机2个小时,可能100M的小电影才刚下载了一半,如果音频和视频是顺序存储,则播放时音频部分必定尚未下载,也就无法播放出声音,用户体验大大降低。而以交错的方式存储音频、视频数据,则已下载的部分能够正常播放,不会影响用户观看。同时,交错存储音频、视频也有利于在播放时音频、视频同步,以免出现看视频时嘴形对不上的严重影响观感的情况出现。AVI封装流程如图1所示。


图1 AVI封装流程


AVI设计的音频、视频交错存储的方式也一直沿用到现在几乎所有的多媒体封装格式中,例如在网站上看直播时,也是借助交错存储实现边下载边播放。


有了微软的加持,加上首创的交错式存储格式,AVI格式受到windows操作系统及其他主流平台、视频播放器的广泛支持。但在当前蓝光1080P当道,4K、8K成为趋势的今天,AVI格式“廉颇已老”,不能承担如此高清的视频,因此正处于慢慢消亡中。


2.MP4

在AVI出现之后,自1993年开始,国际标准化组织ISO成立MPEG工作组,开始发布MPEG视频标准。1998年,MPEG视频标准发展到MPEG第四版。MP4文件封装格式便是MPEG第四版标准中的第14部分(MPEG-4 part 14)。


MP4封装格式吸收百家之长,增加了3D对象模型、版权保护、交互式菜单等新功能,所支持封装的视频格式包括AVC/HEVC等MPEG制定的音频、视频格式,而对Google主推的VP8/VP9/AV1的支持较弱。MP4是由国际标准化组织开发的视频标准,因此也是当前应用最广泛、兼容性最强的视频格式,主流的PC、手机以及HTML5均支持MP4格式视频的播放,但其尚不支持封装高级字幕、章节等信息。


顺带一提,如以上所述, mp4 是 MPEG-4 part 14 中制定的视频封装格式标准。而 mp3 是 MPEG-1 part 3 中制定的音频封装格式标准。因此 mp4 - mp3并不等于 mp1 哦 ,可能是等于 MPEG3-part11 吧。


那么,是否有一种封装格式既支持高清,又支持高级字幕、章节,还支持多音轨切换呢?有的,那就是MKV。


3.MKV

MKV是当前流行的视频文件格式之一,由Matroska组织从2002年开始开发。Matroska在俄语中为套娃的意思。这是因为在MKV封装格式中所有元素均像套娃一样包装起来,一层套着一层(如图2所示)。


图2 MKV封装流程


因为使用了套娃格式,MKV成为功能最全面的视频格式,支持将任何格式的视频、音频、以及字幕、章节信息,甚至字幕字体全部封装在一个MKV文件当中。同时,MKV也支持将任意数量的视频、音频、字幕封装在一起。例如,视频网站网飞(Netflix)在全球播出的视频自带数种不同的语言和十几种不同字幕。在网络发布时,MKV就是最适合的封装格式。


灵活的套娃结构,赋予MKV最强大的功能,但同时也对视频文件播放器带来了较大的负担。播放器需要支持解码所有的视频格式,支持MKV中字幕、章节等所有功能,才能完美支持.mkv。


近年来,Google推出了自己的VP8/VP9/AV1等视频编码格式,将MKV作为其默认的封装格式。Windows 10也增加了对MKV开箱即用的支持。随着全高清、超高清视频越来越普遍,同时在Google、Windows各方的推广下,MKV封装格式也越来越被大家认可,成为未来最具潜力的封装格式。


最后我们来一个“大家来找茬”

MKV, MKA 是 Matroska 系列中用于封装视频、音频的格式。


WMV , WMA 是由微软推出,用于接替 AVI的视频、音频封装格式。


AVC、HEVC 、VVC是 MPEG 组织制定的视频压缩标准。


VP8、VP9、AV1是Google开发并完全开源免费的视频压缩标准。


VC1是微软开发的视频压缩标准。


AVS1 是我国科技企业开发,由广电总局发布的视频压缩国家标准。


AVC,VC1,AV1,AVS1, 看了这些名字,不得不说程序员们写代码时精益求精,到了起名字的时候就成了糊弄学满分。


总结一下重点:

1.封装格式用于将音频、视频,大量的元数据封装在一起,便于用户和播放器读取。


2.封装格式与视频编码格式没有直接的联系。


3.最常见的封装格式:AVI(逐渐消亡)、MP4(最普遍),MKV(最强大,未来的趋势)。


读了这篇文章,相信你对封装格式有了基本的认识。以后如果有人再跟你说“我懂.avi”的时候,你就可以回答:“不,你不懂.avi,.avi已经逐渐消亡,.mkv才是未来的趋势。”


往期推荐


反应式架构研究


强隐私安全技术——“零知识证明”的前世今生


浅析数字孪生技术


浅析前端页面渲染技术


浅谈以多方安全计算为代表的隐私计算技术



FCC30+

长按左边二维码

关注我们不迷路



您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存