视频文件格式和视频编码方式区别
视频文件格式和视频编码方式区别

目前网上的各种视频格式可以说就是泛滥成灾,加上各个PMP(Portable Media Player,便携式媒体播放器)生产厂家的对自己产品在功能方面的炒作,使得很多人对视频格式的名称都就是一头的雾水。
经常有些童鞋问我类似下面的问题。
A问我说:“我的MP4分明写着能播放AVI不?为什么这一个AVI文件就播放不了?”B问:“我的MP4支持Mpeg-4啊,为什么Mp4文件不能播放呢?”好的,下面我从最基本的概念给大家解释一下,顺便回答这两个问题首先大家要清楚两个概念,视频文件格式与视频编码方式。
视频文件格式一般情况下从视频文件的后缀名就能瞧出来,比如AVI,Mp4,3gp,mov,rmvb 等等。
这些格式又叫做容器格式(container format),顾名思义就就是用来装东西的,您可以把它想象成为一个便当盒,或者野餐篮(兄弟,您没吃早饭吧)。
通常我们从网上下载的电影都就是有声音的(废话,难道您只瞧默片!众人扔香蕉皮),所以容器格式中一般至少包含有两个数据流(stream),一个视频流,一个音频流,就好比就是一个便当盒里装着的配菜与米饭。
视频编码方式则就是指容器格式中视频流数据的压缩编码方式,例如Mpeg-4,H、264,H、263,等等。
而视频数据采用了何种编码方式就是无法单单从文件格式的后缀上瞧出来的。
就就是说您无法从一个盖着盖子的便当盒外面瞧出里面装了什么配菜。
如果您想播放一个视频文件,第一步您的播放器(不论就是软件的还就是硬件的)要能够解析相应的容器格式,这一步也叫做解复用(demux),第二步您的播放器要能够解码其中所包含视频流与音频流。
这样影片才能播放出来。
打个不太恰当的比方,播放器好比您雇用的一个试菜员,由她来品尝便当(视频文件),然后告诉您便当里装了什么东西。
(没天理阿!我想自己吃,好的当然可以,0x00 00 01 B6 05 FF 36 1A 50 …… ……, 俄~)所以试菜员首先要懂得如何打开便当盒,还要知道吃的出来便当盒里装了什么配菜,这样您才能获得您想要的信息。
视频编码技术-PPT

1.视频信号的数字化 2.视频文件格式 3.视频压缩编码原理 4.视频压缩标准
学习目标
掌握视频数字化方法 了解视频文件格式 掌握视频压缩编码原理(预测编码、变换编
码、统计编码原理)
理解视频压缩标准( MPEG标准 )
3.1 视频信号的数字化
1.视频相关的基本概念
所谓视频(video frequency ),连续的图像变化每秒 超过24帧(frame)画面以上时,根据视觉暂留原理,人 眼无法辨别单幅的静态画面,看上去是平滑连续的视觉效 果,这样连续的画面叫做视频。即视频是由一系列单独的 静止图像组成,其单位用帧或格来表示;
(1)本地影像视频格式
-MOV格式,美国Apple公司开发的一种视频格式,默认 的播放器是苹果的QuickTime Player。具有较高的压缩比率 和较完美的视频清晰度等特点,但其最大的特点还是跨平 台性,即不仅能支持Mac OS,同样也能支持Windows系列。
Avid Media composer非线性编辑软件支持该格式。
同步信号
)
地(色度)
S-Video四芯插头(座)
地(亮度)
2.视频的采集及数字化
视频采集卡的接口
莲花接头
2.视频的采集及数字化
视频采集卡的接口 IEEE1394接口
IEEE1394是一种外部串行总线标准,800Mbps的 高速。1394接口具有把一个输入信息源传来的数据向 多个输出机器广播的功能,特别适用于家庭视听的连接。 由于该接口具有等时间的传送功能,确保视听AV设备 重播声音和图像数据质量,具有好的重播效果。
人眼在观察景物时,光信号传入大脑神经,需经过一段短暂 的时间,光的作用结束后,视觉形象并不立即消失,而能继续保 留其影像0.1-0.4秒左右,这种现象被称为视觉暂留现象。
视频基础知识-封装格式和编码格式

视频基础知识-封装格式和编码格式封装格式和编码的关系,就是和酒与酒瓶的关系差不多,⽽播放器就是开酒器。
为了可以喝更好的酒,最好先了解酒是什么酒,酒瓶是什么酒瓶,怎么使⽤开酒器开酒瓶。
码率或者可以⽐喻做酒的原料。
对于同⼀个酒瓶和做同⼀种酒的情况下,如果原料太少,⼜要要求⽤酒把酒瓶灌满,此时只好兑⽔了,酒的品质就会变差了。
然⽽,如果原料太多,⼜会造成原料浪费。
所以要做好酒,我们就需要充⾜的原料。
同样道理,压制⼀个视频,充⾜的码率是⾮常需要的。
如果码率过⾼,画质提升不上去的同时还使视频体积过⼤。
如果码率不⾜,视频容易出各种各样的问题,导致压崩。
当然,码率不是画质的唯⼀指标,压制的时候的各种参数设置,各种滤镜也是⾮常重要的。
如果码率给得⾜够⾼,理论上各编码的画质是⼀样的,不过体积完全不⼀样。
发展史:什么是封装格式封装格式的辨认很简单,⼤多数情况下,拓展名就是封装格式的名字。
⽐如⼀个⽂件“⾦刚狼.avi”,那它就是属于avi的封装格式,“钢之炼⾦术师.Mkv”,那它就属于mkv封装格式, “喜⽺⽺与灰太狼.rmvb”就是rmvb封装格式。
简⽽⾔之,视频⽂件后缀名就是封装格式的名字。
不过wmv和rmvb就⽐较特殊,后⾯编码器部分再说。
封装格式就是酒瓶。
酒瓶就不影响酒的⼝感,同样,封装格式⼀样不影响视频画质。
它只负责把内部的视频轨和⾳频轨集成在⼀起,只起到⼀个⽂件夹(或者压缩包)的作⽤,并没有对视频轨和⾳频轨造成影响。
⼏种主流媒体格式情况:1、AVI(Audio Video Interleave):⽐较早的AVI是Microsoft开发的。
其含义是Audio Video Interactive,就是把视频和⾳频编码混合在⼀起存储。
AVI也是最长寿的格式,已存在10余年了,虽然发布过改版(V2.0于1996年发布),但已显⽼态。
AVI格式上限制⽐较多,只能有⼀个视频轨道和⼀个⾳频轨道(现在有⾮标准插件可加⼊最多两个⾳频轨道),还可以有⼀些附加轨道,如⽂字等。
视频制作标准

视频制作标准视频是在线课程中不可或缺的一部分,由视频文件和字幕文件组成。
视频的质量直接影响学生的研究体验,因此必须符合以下标准:1.视频格式:采用MP4格式,视频压缩采用H.264编码方式,封装格式也采用H.264.2.视频编码方式:分辨率不低于1080P(1920×1080像素,16:9),帧率为25 fps或29.97 fps,扫描方式为逐行扫描,码率不低于8Mbps。
3.图像效果:图像不过亮、过暗,人和物移动时无拖影、耀光现象,无其他图像质量问题。
4.音频格式:采用线性高级音频编码格式Linear AAC,采样率不低于48kHz,16位采样,码率不低于1.4Mbps,应采用双声道,做混音处理,信噪比大于50dB。
5.唇音同步:课程视频的唇音同步时间应不少于65毫秒。
6.剪辑:剪辑衔接自然,无空白帧。
7.后期制作:后期制作的动画、显示的文字(非字幕文件)不能出现错误,同一门课程中字体风格一致。
8.字幕要求:中文授课视频提供中文字幕,英文授课视频提供英文字幕,字幕不能固定加在视频上,必须提供独立的SRT格式的字幕文件。
9.字幕编码:中文字幕必须采用UTF-8编码。
10.字幕时间轴:时间轴准确,字幕出现时间与视频声音一致,每屏只有一行字幕,画幅比为16:9的,每行不超过20个字。
11.字幕文字内容:字幕文字错误率不能超过1%。
12.片头:时长应不超过10秒,应使用体现课程所属院校、机构特色的素材。
正确格式的文章如下:为了确保课程视频的规范化和统一化,我们需要遵循以下几点要求:1.视频开头应包括校名及Logo、课程名称、讲次、主讲教师姓名、专业技术职务、单位等信息。
这些信息的呈现应该简洁明了,方便学生快速了解课程的基本情况。
2.视频片尾应包括版权单位、制作单位、录制时间等信息。
如果需要,还可以加上鸣谢单位或个人信息。
这些信息的呈现应该与开头的信息一样清晰明了,方便学生了解视频的来源和制作情况。
常见视频编码格式与RGB、YUV视频存储格式

TCC8900 VPU分析——常见视频编解码格式及RGB和YUV存储格式预研一、常见视频编解码格式1视频文件类别常言道:物以类聚,人以群分。
视频文件也不例外,细细算起来,视频文件可以分成两大类:其一是影像文件,比如说常见的VCD便是一例。
其二是流式视频文件,这是随着国际互联网的发展而诞生的后起视频之秀,比如说在线实况转播,就是构架在流式视频技术之上的。
1.1影像格式 日常生活中接触较多的VCD、多媒体CD光盘中的动画……这些都是影像文件。
影像文件不仅包含了大量图像信息,同时还容纳大量音频信息。
所以,影像文件的“身材”往往不可小觑。
1)AVI格式2)MOV格式3)MPEG/MPG/DAT格式1.2流式视频格式 目前,很多视频数据要求通过Internet来进行实时传输,前面我们曾提及到,视频文件的体积往往比较大,而现有的网络带宽却往往比较“狭窄”,千军万马要过独木桥,其结果当然可想而知。
客观因素限制了视频数据的实时传输和实时播放,于是一种新型的流式视频(Streaming Video)格式应运而生了。
这种流式视频采用一种“边传边播”的方法,即先从服务器上下载一部分视频文件,形成视频流缓冲区后实时播放,同时继续下载,为接下来的播放做好准备。
这种“边传边播”的方法避免了用户必须等待整个文件从Internet上全部下载完毕才能观看的缺点。
到目前为止,Internet上使用较多的流式视频格式主要是以下三种:1)RM(Real Media)格式 RM格式是RealNetworks公司开发的一种新型流式视频文件格式,它麾下共有三员大将:RealAudio、RealVideo和RealFlash。
RealAudio用来传输接近CD音质的音频数据,RealVideo用来传输连续视频数据,而RealFlash则是RealNetworks公司与Macromedia公司新近合作推出的一种高压缩比的动画格式。
RealMedia可以根据网络数据传输速率的不同制定了不同的压缩比率,从而实现在低速率的广域网上进行影像数据的实时传送和实时播放。
音视频的编码解码

编码:编码和文件格式(也称容器)是什么?文件(即容器)是既包括了视频、又包括音频、甚至还带有一些脚本的集合;文件中视频和音频的压缩算法才是真正的编码;对于一种文件,它的视频和音频可以分别采用不同的编码。
1.什么是视频编码?所谓视频编码就是通过特定的压缩技术,将某个视频格式的文件转换成另外一种视频格式文件的方法。
视频编码的主要功能是完成图像的压缩,使数字电视信号的传输量由1Gbit/s(针对1920x1080显示格式)减少为20-30Mbit/s。
2.什么是音频编码?自然界中的声音以及波形都非常复杂,声音其实也是一种能量波,它有频率和振幅;其中频率所对应的是时间轴线,振幅对应的是电平轴线。
波是无限光滑的,弦线可看成由无数点组成。
音频编码主要是完成对声音信息的压缩。
声音信号数字化后,信息量比模拟传输状态大很多,不能像模拟电视声音那样直接传输;因而需要对声音多一道压缩编码工序,即为音频编码。
1.视频编码原理简介视频编码主要是对图像进行有效的压缩。
原始视频图像数据中包含大量的冗余信息视频编码主要采取块运动估计和运动补偿技术有效的去除图像帧间冗余度,来压缩码率和带宽,实现信号有效传输的目的。
2.音频编码的原理简介我们需要通过抽样、量化、编码三个步骤将连续变化的模拟信号转换为数字信号。
抽样就是在时间上将模拟信号离散化。
量化是用有限个幅度值近似原来连续变化的幅度值,把模拟信号的连续幅度变为有限数量的有一定间隔的离散值。
编码就是按一定的规律把量化后的值用二进制数字表示,然后转换成二值或多值得数字信号流。
通常我们采用PCM编码,其主要过程是将话音、图像等模拟信号每隔一段时间进行取样,使其离散化,同时将抽样值按分层单位四舍五入取整量化,并将抽样值按一组二进制码来表示抽样脉冲的幅值。
目前常见的几种视频编码技术方案:1)MPEG-2MPEG-2图像压缩的原理是主要利用了图像中的两种特性:空间相关性和时间相关性.另外它综合采用了运动补偿的帧间预测、空间域离散余弦变换、自适应量化和可变长编码的混合编码。
常见视频格式、转换器及编码

常见视频格式MPEG / MPG / DATMPEG(运动图像专家组)是Motion Picture Experts Group 的缩写。
这类格式包括了MPEG-1,MPEG-2和MPEG-4在内的多种视频格式。
MPEG-1相信是大家接触得最多的了,因为其正在被广泛地应用在VCD 的制作和一些视频片段下载的网络应用上面,大部分的VCD 都是用MPEG1 格式压缩的( 刻录软件自动将MPEG1转换为DA T格式) ,使用MPEG-1 的压缩算法,可以把一部120 分钟长的电影压缩到1.2 GB 左右大小。
MPEG-2 则是应用在DVD 的制作,同时在一些HDTV(高清晰电视广播)和一些高要求视频编辑、处理上面也有相当多的应用。
使用MPEG-2 的压缩算法压缩一部120 分钟长的电影可以压缩到5-8 GB 的大小(MPEG2的图像质量是MPEG-1 无法比拟的)。
MPEG系列标准已成为国际上影响最大的多媒体技术标准,其中MPEG-1和MPEG-2是采用相同原理为基础的预测编码、变换编码、熵编码及运动补偿等第一代数据压缩编码技术;MPEG-4(ISO/IEC 14496)则是基于第二代压缩编码技术制定的国际标准,它以视听媒体对象为基本单元,采用基于内容的压缩编码,以实现数字视音频、图形合成应用及交互式多媒体的集成。
MPEG系列标准对VCD、DVD等视听消费电子及数字电视和高清晰度电视(DTV&&HDTV)、多媒体通信等信息产业的发展产生了巨大而深远的影响。
A VIA VI,音频视频交错(Audio Video Interleaved)的英文缩写。
A VI这个由微软公司发表的视频格式,在视频领域可以说是最悠久的格式之一。
A VI格式调用方便、图像质量好,压缩标准可任意选择,是应用最广泛、也是应用时间最长的格式之一。
MOV使用过Mac机的朋友应该多少接触过QuickTime。
QuickTime原本是Apple公司用于Mac计算机上的一种图像视频处理软件。
关于视频容器格式和视频编码格式的问题

关于视频容器格式和视频编码格式的问题新人刚刚学习会声会影,首先当然要搞懂这些参数设置和项目属性什么的。
在以前没有接触会声会影的时候,我一直以为所谓的视频格式就是指文件后缀名而已,无非不过就是一些什么.avi .mp4 .3gp .rmvb等等之类的…就在最近做了一个视频,最后导出的时候,我选择了AVI格式,压缩为无,结果五分钟的视频直接10个G,无奈之下去网上查了下教程,然后我选择了MPEG4格式,压缩为H.264,渲染后很不错,视频很清晰(原素材的原因,看起来不是很清晰,但是我知道跟原素材比较起来能达到这种清晰程度很不错了,传上优酷是为超清作品),大小也不大,5分钟才80M,本来就这样完了…当时还有点小得意,其他新手觉得很复杂的一个问题我就这么轻松的处理了,但是我为了追求更高的质量,我就想把视频弄成avi格式,于是到网上查询了大量的资料,找到了一个让avi格式视频既清晰又大小合适的方法:就是将avi格式在自定义导出的时候将视频编码格式选择xvid mpeg4 code,方法有了,但是我又有新的疑问了,我明明是要导出avi格式的视频,但是这个视频编码格式看中间的样子却是MPEG4格式,怎么会这样呢,那这个视频到底是avi 还是mpeg4呢?于是我又查询了一上午的资料,终于搞懂了,视频编码格式和容器格式是不能混为一谈的,同一种容器格式可能是不同的视频编码格式,但是到了这里我就更糊涂了,视频编码格式和容器格式对视频的影响到底是什么呢?查询了大量的资料,依然无解,我是个不太喜欢那种别人给个操作步骤自己就按照那个步骤做的人,我通常学会了这种步骤后更希望搞懂它里面的原理——为什么要这样做。
(网上的教程通常都是直接给步骤),以下表示我所面临的问题:1、容器格式和视频编码格式对视频的根本影响是什么?2、同一种容器格式采取不同的视频编码格式压缩后会有什么不同?3、不同的容器格式采取同一种视频压缩格式后有什么不同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目前网上的各种视频格式可以说是泛滥成灾,加上各个PMP(Portable Media Player,便携式媒体播放器)生产厂家的对自己产品在功能方面的炒作,使得很多人对视频格式的名称都是一头的雾水。
经常有些童鞋问我类似下面的问题。
A问我说:“我的MP4分明写着能播放AVI吗?为什么这一个AVI文件就播放不了?”B问:“我的MP4支持Mpeg-4啊,为什么Mp4文件不能播放呢?”好的,下面我从最基本的概念给大家解释一下,顺便回答这两个问题首先大家要清楚两个概念,视频文件格式和视频编码方式。
视频文件格式一般情况下从视频文件的后缀名就能看出来,比如AVI,Mp4,3gp,mov,rmvb等等。
这些格式又叫做容器格式(container format),顾名思义就是用来装东西的,你可以把它想象成为一个便当盒,或者野餐篮(兄弟,你没吃早饭吧)。
通常我们从网上下载的电影都是有声音的(废话,难道你只看默片!众人扔香蕉皮),所以容器格式中一般至少包含有两个数据流(stream),一个视频流,一个音频流,就好比是一个便当盒里装着的配菜和米饭。
视频编码方式则是指容器格式中视频流数据的压缩编码方式,例如Mpeg-4,,,等等。
而视频数据采用了何种编码方式是无法单单从文件格式的后缀上看出来的。
就是说你无法从一个盖着盖子的便当盒外面看出里面装了什么配菜。
如果你想播放一个视频文件,第一步你的播放器(不论是软件的还是硬件的)要能够解析相应的容器格式,这一步也叫做解复用(demux),第二步你的播放器要能够解码其中所包含视频流和音频流。
这样影片才能播放出来。
打个不太恰当的比方,播放器好比你雇用的一个试菜员,由他来品尝便当(视频文件),然后告诉你便当里装了什么东西。
(没天理阿!我想自己吃,好的当然可以,0x00 00 01 B6 05 FF 36 1A 50 …… ……,俄~)所以试菜员首先要懂得如何打开便当盒,还要知道吃的出来便当盒里装了什么配菜,这样你才能获得你想要的信息。
回过头来看前面的两个问题,用以上的比喻翻译一下。
问题A,我的试菜员能打开AVI这种便当的,为什么我不能知道里面装了什么?回答很简单,虽然他能够打开便当,但是吃不出里面的东西是什么。
理论上没有一个播放器能够播放所有的AVI格式的电影,因为你不知道我会往里面放什么配菜。
问题B,我的试菜员吃过Mpeg-4这种牛排阿,为什么不能打开Mp4这种便当盒呢?这个问题通过翻译之后看起来已经不是问题了,Mpeg-4是视频编码方式,而Mp4是容器格式,两者本来就不是一个范畴里的东西。
好了下面简单介绍一下流行的视频格式。
AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是Microsoft公司开发的一种数字音频与视频文件格式,允许视频和音频交错在一起同步播放。
AVI文件的格式是公开并且免费的,大量的视频爱好者在使用这种文件格式。
很多PMP 唯一能支持的格式就是AVI格式,一般的PMP都带有可以转换其他格式视频成为AVI格式的软件。
AVI文件采用的是RIFF(Resource Interchange File Format,资源互换文件格式)文件结构,RIFF是Microsoft公司定义的一种用于管理windows环境中多媒体数据的文件格式。
AVI格式包括2种:AVI 和Open-DML AVI。
AVI 为传统的AVI格式,Open-DML AVI是AVI 的扩展。
ASF(Advanced Systems Format)是一个开放格式,它能依靠多种协议在多种网络环境下支持数据的传送。
ASF是专为在IP网上传送有同步关系的多媒体数据而设计的文件格式,所以ASF格式的信息特别适合在IP网上传输。
ASF支持任意的压缩/解压缩编码方式的流媒体,并可以使用任何一种底层网络传输协议,具有很大的灵活性。
目前网上以wmv为后缀的文件绝大多数采用的是ASF格式,WMV是微软公司视频编码方式而不是文件格式。
,3gp,movMP4格式是ISO-IEC Mpeg-4协议Part 14中定义的容器格式。
MP4格式实际上是对Apple 公司开发的MOV格式(也称Quicktime格式)的一种改进,两种格式差别很小。
MOV格式广泛应用于Mac OS操作系统,在Windows操作系统上也可兼容,但是远比不上AVI格式流行。
而应用于3G手机上的音视频文件格式——3GP其实是MP4格式的一种简化版本,3GP 格式是一种由3GPP组织制定的多媒体容器格式(container format),3GPP组织形成的通讯协议是目前全世界手机厂商使用最广的,而3GP格式当然也是手机视频格式的绝对主流。
MP4,MOV,3GP格式可以说具有相同的文件结构。
另外还有flv,mkv,mpg等等许多其他格式。
介绍完了格式之后,我再给大家说明一下解复用的问题。
前面讲到了容器格式中包含视频和音频数据,怎样将这些数据分离,并送到相应的解码器,而且还要保证音视频的同步性,这是下面要讨论的话题。
各种格式的解服用并不相同。
首先介绍AVI格式。
(一)AVI格式的结构和解复用AVI文件采用的是RIFF(Resource Interchange File Format,资源互换文件格式)文件结构,RIFF是Microsoft公司定义的一种用于管理windows环境中多媒体数据的文件格式。
AVI格式包括2种:AVI 和Open-DML AVI。
AVI 为传统的AVI格式,Open-DML AVI是AVI 的扩展。
构造AVI文件的基本单元有2种:列表(LIST)和数据块(Chunk),其基本结构如图所示。
数据块的前4个字节为数据块的ID,接着的4个字节表示数据块的长度。
列表的前4个字节为“RIFF”或者“LIST”。
列表可以嵌套子列表和数据块。
需要注意的是所给出的数据块和列表的长度是不包含其前8个字节的。
AVI格式的文件结构见图。
对于AVI 格式,整个文件由一个开头4字节为RIFF,ID为AVI的列表(简称RIFF AVI列表)组成。
对于Open-DML AVI格式,若尺寸不超过1G,则文件只包含一个RIFF AVI列表;若尺寸超过1G,则包含一个RIFF AVI列表和几个RIFF AVIX 列表。
Open-DML AVI所独有的数据块和列表在图中作了标注。
RIFF-AVI列表包含3个子列表和一个数据块,其ID分别为hdrl,INFO,movi和idx1,其中INFO列表和ID为idx1数据块是可选的。
而 RIFF AVIX只包含一个movi列表以存储数据,头信息全都存储在RIFF AVI中。
下面对RIFF-AVI列表的几个组成部分作详细介绍。
(本文档中有关AVI格式的结构体定义见,想要源代码的留下邮箱)(1)hdrl列表hdrl列表包含一个ID为avih的数据块,一个ID为odml的列表(仅Open-DML AVI格式具备)及几个ID为strl的列表。
strl列表的个数和文件中所包含流(stream)的个数相等。
avih数据块的包含最大数据率、总帧数、每帧图像的显示时间等数据格式信息。
其具体格式见结构体AVIMAINHEADER。
strl列表至少包含一个ID为strh的数据块和一个ID为strf的数据块,而ID为strd 的数据块(保存编解码器需要的一些配置信息,没有固定结构)和ID为strn的数据块(保存流的名字)是可选的。
strh数据块包含数据流类型、流的编解码方式和每秒采样数等有关流媒体的信息。
其格式见结构体AVISTREAMHEADER。
strf数据块紧跟在strh数据块之后,其结构视流媒体类型而定,如果 strh块对应的是视频数据流,则 strf的格式可见结构体VIDEOSTREAMHEADER。
如果 strh块对应的是音频数据流,则strf的格式可见结构体AUDIOSTREAMHEADER。
odml列表中包含文件总帧数等信息,具体格式见结构体AVIEXTHEADER。
indx数据块包含文件的索引数据,用于播放过程中进度条的拖动。
其结构可能为结构体AVISUPERINDEX, AVIFIELDINDEX,AVISTDINDEX三者中的一种。
值得注意的是avih数据块中提供的总帧数为所在的RIFF AVI列表包含的数据。
而odml 列表给出的总帧数则是所有的RIFF AVI列表和RIFF AVIX列表包含数据帧数之和。
若文件不含RIFF AVIX列表,则两个值相等。
(2)movi列表movi列表可包含音频,视频,字幕或索引数据块。
音频数据块的ID为“##wb”,未压缩的视频数据块的ID为“##db”,经过压缩编码的视频数据块的ID为“##dc”,字幕数据块的ID为“##tx”,索引数据块(仅Open-DML AVI 格式具备)的ID为ix##或##ix。
索引数据块可能为结构体AVIFIELDINDEX或AVISTDINDEX。
(“##”为各个流的通道号,可为“00”,“01”等,例如“00dc”表示视频块,“01wb”表示音频块)movi列表有2种结构,第一种如图所示,各种数据块直接存放在列表中。
另一种结构如图所示,movi列表由数个rec列表组成,数据块存放于rec列表中。
(3) idx1数据块idx1索引数据块位于movi数据块之后,包含定义 movi数据块的索引数据,是可选块,用于播放过程中进度条的拖动。
结构可见结构体AVIINDEX。
前面提到了3种索引数据块的结构:AVISUPERINDEX, AVIFIELDINDEX,和AVISTDINDEX。
其中AVISUPERINDEX指向其他的索引数据块;AVISTDINDEX指向movi列表中存放数据块;AVIFIELDINDEX指向数据块中的某一场(field)数据。
这3种索引块在目前较为少见,一般的AVI文件都是采用idx1索引块来实现播放过程中进度条的拖动功能的。