视频知识扫盲

一:概念解析

https://www.zhihu.com/question/20997688

1.视频文件格式 (简称文件格式):

我们知道在windows里文件都有后缀名,如1.doc,2.wps,3.psd等等。windows设置这些后缀名的目的是让系统中的应用程序来识别并关联这些文件,让相应的文件由相应的应用程序打开。所以常见的文件格式如1.avi,2.mpg这些叫做视频的文件格式,它由你电脑上安装的视频播放器关联。你可以随意改变扩展名,但是对真的视频一点影响都没有,不要以为把avi后缀改成mp4,视频就变成mp4格式了。

2.视频封装格式 (简称视频格式)

avi,mpeg,vob是一种视频封装格式,相当于一种存储视频信息的容器。它是由相应的公司开发出来的。我们可以在自己电脑上看到1.avi,2.mpg,3.vob这些视频文件格式的后缀名即采用相应的视频封装格式的名称。视频文件格式反映了视频封装格式。

3.视频编码方式 (简称视频编码)

所谓的视频编码方式就是指能够对数字视频进行压缩或者解压缩(视频解码)的程序或者设备,通常这种压缩属于有损压缩。也可以指通过特定的压缩技术,将某个视频格式转换成另一种视频格式。

常见的编码方式有:

1. H.26X系列:H.261, H.263, H.264, H.265 ……
2. MPEG系列:MPEG-1,MPEG-2 ,MPEG-4第二部分, MPEG-4第十部分……
3. 其他系列:AMV,AVS,DV……

总之,即使同一种视频文件格式,如*.MPG,又分为MPEG-1,MPEG-2,MPEG-4几种不同的视频封装格式。就算是同一种视频封装格式,如MPEG-4又可以使用多种视频编码方式。视频的编码形式才是一个视频文件的本质所在,不要简单通过文件格式和封装形式来区分视频。

mp4,rmvb,mkv,avi从形式上来说首先都是视频文件的扩展名,其次它们也是视频文件的封装格式(即容器)

mp4是MPEG-4标准的第14部分所制定的容器标准。所谓容器,就是把编码器生成的多媒体内容(视频,音频,字幕,章节信息等)混合封装在一起的标准。容器使得不同多媒体内容同步播放变得很简单,而容器的另一个作用就是为多媒体内容提供索引,也就是说如果没有容器存在的话一部影片你只能从一开始看到最后,不能拖动进度条(当然这种情况下有的播放器会话比较长的时间临时创建索引),而且如果你不自己去手动另外载入音频就没有声音。

关于容器的一个例子是aac/m4a”格式“的音频(这两是一回事,m4a是苹果”发明”的扩展名),这种音频采用的是AAC编码,但实际上也是被封装在MPEG4P14(即mp4)容器里的,因为没有容器的原始AAC数据流是没有索引的,不方便播放器定位。

不同的容器有不同的特性,mp4是官方指定的容器,属于”太子党“,硬件支持广泛;rmvb是一种封闭标准的容器,只能用来封装realvideo编码的视频;mkv是社区设计的开放性容器,最大的特性在于几乎可以封装一切的编码格式;avi历史悠久,其陈旧的架构本身已经不能适应新的编码格式,可以入土了。

流式封装可以有TS、FLV,索引式的封装有MP4等。TS/FLV/MP4等是封装格式。h.264/rm/rmvb等是视频协议,aac/mp3等是音频协议。