OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

时间:2024-03-20 10:01:37

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

一、前言


什么是影片?其实就是一组(很多张)图片,时间间隔很小的连续展示出来,人们就觉得画面中的人物在动,这就是影片。
那电影的实质就是N多张图片的集合。那每张图片和帧又有什么关系呢?
事实上,如果一部影片里面的图片,我们原封不动的全部存起来,空间会很大很大很大,但是如果通过一定的算法(这里不讲相关算 法),把每一张图片压缩(编码_encode)一下,变成帧。再把帧连起来变成流,再把不同的流放到某个容器里面,这就是我们平常看见的电影文件了.
文件 碟中谍4.H264.ACC.mkv,他为什么要这样命名呢? mkv表达了它的容器是.mkv的,且包含至少两个流,h264的视频流,ACC的音频流。这是一种典型的 牺牲时间来换取空间的做法。


OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

二、视频文件格式(文件格式)

视频文件格式是指视频保存的一种格式,视频是现在电脑中多媒体系统中的重要一环。为了适应储存视频的需要,人们设定了不同的视频文件格式来把视频和音频放在一个文件中,以方便同时回放。

Windows系统中文件名都有后缀,例如1.doc,2.psd等。Windows设置后缀名的作用是让系统中的应用程序识别文件,让对应的文件由相应的程序打开。所以常见的文件格式如1.AVI,2.mpg都叫做视频的文件格式,由视频上的播放器关联。可以随意的更改文件的后缀名,但是对视频没有影响,不要以为avi改成MP4,视屏的格式就是MP4了。

视频文件格式有不同的分类,如:
微软视频 :wmv、asf、asx
Real Player :rm、 rmvb
MPEG视频 :mp4
手机视频 :3gp
Apple视频 :mov、m4v
其他常见视频:avi、dat、mkv、flv、vob

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

三、视频封装格式(视频格式)

视频封装格式相当于一种存储视频信息的容器。

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分
OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分


1、AVI

后缀:.avi
AVI是Microsoft公司开发的一种符合RIFF文件规范的数字音频与视频文件格式,原先用于Microsoft Video for Windows环境,已被Windows 95/98、OS/2等多数操作系统直接支持。AVI格式允许视频和音频交错在一起同步播放,支持256色和RLE压缩,但AVI文件并未限定压缩标准,因此,AVI文件格式只是作为控制界面上的标准,不具有兼容性,用不同压缩算法生成的AVI文件,必须使用相应的解压缩算法才能播放出来。常用的AVI播放驱动程序,主要是Microsoft Video for Windows或Windows 95/98中的Video 1,以及Intel公司的Indeo Video。


2、QuickTime

后缀:.mov/.qt
QuickTime是Apple计算机公司开发的一种音频、视频文件格式,用于保存音频和视频信息,具有先进的视频和音频功能,能够提供对包括Apple Mas OS、Microsoft Windows在内的所有主流操作系统平台的支持。QuickTime文件格式支持25位彩色,支持RLE、JPEG等领先的集成压缩技术,提供150多种视频效果,并配有提供了200多种MIDI兼容音响和设备的声音专职。QuickTime包含了基于Internet应用的关键特性,能够通过Internet提供实时的数字化信息流、工作流与文件回放功能,此外,QuickTime还采用了一种称为QuickTime VR技术的虚拟现实技术,用户通过鼠标或键盘的交互式控制,可以观察某一地点周围360度的景象,或者从空间任何角度观察某一物体。QuickTime以其领先的多媒体技术和跨平台特性、较小的存储空间要求、技术细节的独立性以及系统的高度开放性,得到业界的广泛认可。


3、高级流格式文件

后缀:.asf
Microsoft公司推出的ASF是一个独立于编码方式的在Internet上实时传播多媒体的技术标准,Microsoft公司希望用ASF取代QuickTime之类的技术标准以及WAV、AVI之类的文件扩展名,并打算将ASF用作将来的Windows版本中所有多媒体内容的标准文件格式。


4、RealVideo

后缀:.rm
RealVideo文件是RealNetworks公司开发的一种新型流式视频文件格式,主要用来在低速率的广域网上实时传输活动视频影像,根据网络数据传输速率的不同而采用不同的压缩比率,实现影像数据的实时传送和实时播放。RealVideo与RealServer服务器配合,实现在数据传输过程中边下载边播放视频影像。Internet有许多网站利用RealVideo技术进行重大事件的实况转播。


5、NAVI

NAVI是newAVI的缩写,是一个名为ShadowRealm的地下组织发展起来的一种新视频格式。它是由MicrosoftASF压缩算法的修改而来的。视频文件格式主要追求的是压缩效率和图像质量.NAVI是一种去掉视频流特性的改良型ASF格式,就是非网络版本的ASF


6、DivX

DivX是一项由DivXNetworks公司发明的,类似于MPEG4/MP3的数字多媒体压缩技术。简单的理解就是Video部分以MPEG4格式压缩,Audio部分以MP3压缩组合而成的AVI影片,可以把MPEG-2格式的多媒体文件压缩至原来的10%,也可以把VHS格式录像带格式的文件压缩至原来的1%,其压缩效率约为同样播放时间的DVD的1/5~1/10,并且其声音及影像的品质较好。


7、MPEG

后缀:.MPEG/.MPG/.DAT
MPEG是MovingPictureExpertsGroup,动态图像专家的英文缩写,这个专家组始建于1988年,专门负责为CD建立视频和音频标准,其成员均为视频、音频及系统领域的技术专家。由于ISO/IEC1172压缩编码标准是由此小组提出并制定的,MPEG由此闻名于世。

视频文件是互联网多媒体重要内容之一。其主要指那些包含了实时的音频、视频信息的多媒体文件,其多媒体信息通常来源于视频输入设备。
OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

四、视频编码

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

视频编码方式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264运动静止图像专家组的M-JPEG国际标准化组织运动图像专家组的MPEG系列标准,此外在互联网上被广泛应用的还有Real-Networks的RealVideo、微软公司的WMV以及Apple公司的QuickTime等。

视频压缩技术是计算机处理视频的前提。视频信号数字化后数据带宽很高,通常在20MB/秒以上,因此计算机很难对之进行保存和处理。采用压缩技术通常数据带宽降到1-10MB/秒,这样就可以将视频信号保存在计算机中并作相应的处理。常用的算法是由ISO制订的,即JPEG和MPEG算法

首先要分清楚媒体文件和编码的区别:文件是既包括视频又包括音频、甚至还带有脚本的一个集合,也可以叫容器
文件当中的视频和音频的压缩算法才是具体的编码。也就是说一个.avi文件,当中的视频可能是编码a,也可能是编码b,音频可能是编码5,也可能是编码6,具体的用那种编码的解码器,则由播放器按照avi文件格式读取信息去调用了。

音频视频编码方案有很多,用百家争鸣形容不算过分,常见的音频视频编码有以下几类:

1、MPEG系列

(由ISO[国际标准组织机构]下属的MPEG[运动图象专家组]开发 )视频编码方面主要是Mpeg1(vcd用的就是它)、Mpeg2(DVD使用)、Mpeg4(的DVDRIP使用的都是它的变种,如:divx,xvid等)、Mpeg4 AVC(正热门);音频编码方面主要是MPEG Audio Layer 1/2、MPEG Audio Layer 3(大名鼎鼎的mp3)、MPEG-2 AAC 、MPEG-4 AAC等等。注意:DVD音频没有采用Mpeg的。

2、H.26X系列

(由ITU[国际电传视讯联盟]主导,侧重网络传输,注意:只是视频编码)
包括H.261、H.262、H.263、H.263+、H.263++、H.264(就是MPEG4 AVC-合作的结晶)
OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

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

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

五、音频编码

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分
OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

六、视频像素编码

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分

七、音频采样数据

OpenCV视频篇——视频文件格式--视频封装格式--视频编码格式区分