`
jandroid
  • 浏览: 1933535 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

avi文件解析

 
阅读更多

52 49 46 46 -> FORCC码'RIFF'的ASCII值,说明是一个RIFF文件。RIFF( resource interchange file format ) 。
84 CF 4A 00 -> 表示文件大小的4个字节,由于windows是小头的,所以文件大小为0x004ACF84,即4902788字节,由于该size不包含开头的8字节,所以文件总大小为4902796字节
41 56 49 20 -> FOURCC码'AVI '的ASCII码,文件类型,说明是一个avi文件。AVI(AudioVideoInterleaved)。
4C 49 53 54 -> FOURCC码'LIST'的ASCII码,说明是一个list
7C 02 00 00 -> 表示list大小的4个字节。该list size为0x0000027C,即636字节,整个list的大小为:636 + 8 = 644 字节
68 64 72 6C -> FOURCC码'hdrl'的ASCII码,list类型,说明这是一个头信息列表(header list)。
61 76 69 68 -> FOURCC码'avih'的ASCII码,表示该chunk的ID(ckID),说明这是一个主avi头(main avi header)。是结构体AVIMAINHEADER中的fcc成员
38 00 00 00 -> 表示chunk大小的4个字节。该chunk的size为0x00000038,即56字节,整个chunk的大小为:56 + 8 = 64 字节。是结构体AVIMAINHEADER中的cb成员
56 82 00 00 -> 是结构体AVIMAINHEADER中的dwMicroSecPerFrame成员,表示帧之间的微秒数。为0x00008256,即33366微秒。
EF AF 0A 00 -> 是结构体AVIMAINHEADER中的dwMaxBytesPerSec成员,表示文件的近似最大速率。为0x000AAFEF,即700399字节/秒。
01 00 00 00 -> 是结构体AVIMAINHEADER中的dwPaddingGranularity成员,表示以多少字节对齐。为0x000001,即1字节,说明文件以1字节对齐。
10 08 00 00 -> 是结构体AVIMAINHEADER中的dwFlags成员。为0x00000810,HasIndex(+);MustUseIndex;IsInterleaved;WasCaptureFile;Copyrighted;TrustCKType(+)
DD 00 00 00 -> 是结构体AVIMAINHEADER中的dwTotalFrames成员。表示文件中总共有多少帧。为:0x000000DD,即221帧。dwTotalFrames * dwMicroSecPerFrame = 文件总时长。221 * 33366 = 7373886 微秒。即文件总时长为7.373886秒。
00 00 00 00 -> 是结构体AVIMAINHEADER中的dwInitialFrames成员。表示交错帧中的初始帧,非交错文件,该值为0。从dwFlags可知,该文件为非交错文件,所以该值为0。
01 00 00 00 -> 是结构体AVIMAINHEADER中的dwStreams成员,表示文件中所包含的流的数量。该文件中只包含一中流,所以该值为1。
A8 62 00 00 -> 是结构体AVIMAINHEADER中的dwSuggestedBufferSize成员,表示读该文件时,建议的缓存大小。为0x000062A8,即25256字节。查看数据chunk可知,最大的数据chunk的size就是25256。
60 01 00 00 -> 是结构体AVIMAINHEADER中的dwWidth成员,表示AVI文件的宽,以像素为单位。为0x00000160,即352像素。
F0 00 00 00 -> 是结构体AVIMAINHEADER中的dwHeight成员,表示AVI文件的高,以像素为单位。为0x000000F0,即240像素。
00 00 00 00 -> 是结构体AVIMAINHEADER中的dwReserved[0]成员,保留。
00 00 00 00 -> 是结构体AVIMAINHEADER中的dwReserved[1]成员,保留。
00 00 00 00 -> 是结构体AVIMAINHEADER中的dwReserved[2]成员,保留。
00 00 00 00 -> 是结构体AVIMAINHEADER中的dwReserved[3]成员,保留。
4C 49 53 54 -> FOURCC码'LIST'的ASCII码,说明是一个list
24 01 00 00 -> 表示list大小的4个字节。该list size为0x00000124,即292字节,整个list的大小为:292 + 8 = 300 字节
73 74 72 6C -> FOURCC码'strl'的ASCII码,list类型,说明这是一个流信息的list。
73 74 72 68 -> FOURCC码'strh'的ASCII码,说明这是一个流的头信息chunk,其内容是一个AVISTREAMHEADER结构体。该值是AVISTREAMHEADER结构体的fcc成员。
38 00 00 00 -> 表示chunk大小的4个字节。该chunk的size为0x00000038,即56字节,整个chunk的大小为:56 + 8 = 64 字节。是结构体AVISTREAMHEADER的cb成员。
76 69 64 73 -> FOURCC码'vids'的ASCII码,说明这是一个视频流。是结构体AVISTREAMHEADER的fccType成员。
63 76 69 64 -> FOURCC码'cvid'的ASCII码,标识解码该流时使用的编解码器。是结构体AVISTREAMHEADER的fccHandler成员。
00 00 00 00 -> 是结构体AVISTREAMHEADER的dwFlags成员。整个数据流的标志。Disabled;VideoPaletteChanges。
00 00 00 00 -> 是结构体AVISTREAMHEADER的wPriority成员和wLanguage成员。
00 00 00 00 -> 是结构体AVISTREAMHEADER的dwInitialFrames成员。表示交错帧中的初始帧,非交错文件,该值为0。
E9 03 00 00 -> 是结构体AVISTREAMHEADER的dwScale成员。为0x000003E9,即1001。与 dwRate 一起,决定该流所要使用的时间尺度。对于视频流来说,dwRate / dwScale = 帧率(fram rate )。
30 75 00 00 -> 是结构体AVISTREAMHEADER的dwRate成员。为0x00007530,即3000。该视频流的帧率为:3000 / 1001 = 29.97 (fps)
00 00 00 00 -> 是结构体AVISTREAMHEADER的dwStart成员。这个流的开始时间。此处为0。即文件开始时,流即开始。
DD 00 00 00 -> 是结构体AVISTREAMHEADER的dwLength成员。表示流的长度。为0x000000DD,即221。对于视频流,这其实就是总帧数,用dwLength除以帧率,即得到流的总时长。
A8 62 00 00 -> 是结构体AVISTREAMHEADER的dwSuggestedBufferSize成员。表示读该流时,建议的缓存大小。为0x000062A8,即25256字节。查看数据chunk可知,该流最大的数据chunk的size就是25256。
00 00 00 00 -> 是结构体AVISTREAMHEADER的dwQuality成员。表示该流的质量指标,此处为0。
00 00 00 00 -> 是结构体AVISTREAMHEADER的dwSampleSize成员。表示一个数据样本的大小。如果样本大小可变,此值为0。视频流中,该值一般为0。此处为0。
00 00 00 00 -> 是结构体AVISTREAMHEADER的rcFrame成员的left和top成员。rcFrame指定一个由主头文件中的wWidth 成员和dwHeight 成员文本流或视频流的目标矩形。此处,left和top都为0。
00 00 00 00 -> 是结构体AVISTREAMHEADER的rcFrame成员的right和bottom成员。此处为0。
73 74 72 66 -> FOURCC码'strf'的ASCII码,说明这是一个流的格式信息chunk。如果是视频流,其数据是一个BITMAPINFO结构体,对于音频流,其数据是一个WAVEFORMATEX结构体。
28 00 00 00 -> 格式信息chunk的大小,不包括最初的8个字节。为0x00000028,即40字节。整个chunk的大小为:40 + 8 = 48 字节。
28 00 00 00 -> 是结构体BITMAPINFO的成员BITMAPINFOHEADER的biSize成员,表示结构体BITMAPINFOHEADER的大小。为0x00000028,即40字节。这说明本chunk中,BITMAPINFO只包含一个成员,即BITMAPINFOHEADER结构体(因为biBitCount为24,所以结构体BITMAPINFO不包含颜色表)。
60 01 00 00 -> 是结构体BITMAPINFOHEADER的biWidth成员,位图的宽,以像素为单位。为0x00000160,即352像素。
F0 00 00 00 -> 是结构体BITMAPINFOHEADER的biHeight成员,位图的高,以像素为单位。为0x000000F0,即240像素。
01 00 18 00 -> 是结构体BITMAPINFOHEADER的biPlanes成员和biBitCount成员。其中biPlanes表示目标设备平面层的个数,其值为1。biBitCount表示一个像素所占的位数,其值为0x0018,即一个像素占24位。
63 76 69 64 -> 'cvid'的ASCII码,是结构体BITMAPINFOHEADER的biCompression成员,表示了压缩的类型。
FC 7B 00 00 -> 是结构体BITMAPINFOHEADER的biSizeImage成员,表明image的大小。为0x00007BFC,即31740字节。
00 00 00 00 -> 是结构体BITMAPINFOHEADER的biXPelsPerMeter成员,水平分辨率,此处为0。
00 00 00 00 -> 是结构体BITMAPINFOHEADER的biYPelsPerMeter成员,垂直分辨率,此处为0。
00 00 00 00 -> 是结构体BITMAPINFOHEADER的biClrUsed成员,此处为0。表明此处使用与对于biCompression指定的压缩模式的biBitCount值所对应的最大值。
00 00 00 00 -> 是结构体BITMAPINFOHEADER的biClrImportant成员,此处为0。表明所有的颜色都是重要的。
------------------------------------------------------------------------------------------------
是一个AVI 2.0的索引结构体。由于此次只使用old index,暂不对此进行研究。
------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
一个AVI OpenDML 1.02 Header List,包含一个AVI ODML Header。暂不研究。
--------------------------------------------------------------------------------------------------------
4C 49 53 54 -> FOURCC码'LIST'的ASCII码,说明是一个list
0C BF 4A 00 -> 表示list大小的4个字节。该list size为0x004ABF0C,即4898572字节,整个list的大小为:4898572 + 8 = 4898580 字节
6D 6F 76 69 -> FOURCC码'movi'的ASCII码,list类型,说明这是一个数据list。
--------------------------------------------------------------------------------------------------------
一个AVI Standard Index Chunk,暂不研究
--------------------------------------------------------------------------------------------------------
30 30 64 62 -> FOURCC码'00db'的ASCII码,说明这是第一个流(视频流)的数据,为未压缩帧。
08 62 00 00 -> 表示chunk大小的4个字节。该chunk的size为0x00006208,即25096字节,整个chunk的大小为:25096 + 8 = 25104 字节。
--------------------------------------------------------------------------------------------------------
chunk 的数据。
--------------------------------------------------------------------------------------------------------
30 30 64 63 -> FOURCC码'00dc'的ASCII码,说明这是第一个流(视频流)的数据,为压缩帧。
DA 5A 00 00 -> 表示chunk大小的4个字节。该chunk的size为0x00005ADA,即23258字节,整个chunk的大小为:23258 + 8 = 23266 字节。
--------------------------------------------------------------------------------------------------------
chunk 的数据。
--------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------
连续的chunk 的数据。
--------------------------------------------------------------------------------------------------------
64 69 78 31 -> FOURCC码'idx1'的ASCII码,chunk 类型,说明这是一个old index chunk。
E0 0D 00 00 -> 表示chunk大小的4个字节。该chunk的size为0x00000DE0,即3552字节,整个chunk的大小为:3552 + 8 = 3560 字节。每条索引信息有4个DWORD类型构成,即占16个字节,所以该index chunk中包含的索引项的个数为:3552 / 16 = 222。由此可以推知,movi list中含有222个数据chunk。
37 46 78 78 -> '7Fxx'的ASCII码,chunk ID,这应该是用户自定义的chunk的索引。
00 00 00 00 -> 标志。'LIST'-chunk;KeyFrame;Midpart;Firstpart;Lastpart;NoTime
9C 02 00 00 -> 偏移量。为0x0000029C,即668字节。
00 00 00 00 -> 该数据chunk的大小。根据给chunk的偏移量,没有找到该chunk。该chunk的数据大小又为0,推断这是一处错误数据。
30 30 64 62 -> '00db'的ASCII码,chunk ID,说明是第一个流的非压缩帧。
10 00 00 00 -> 标志。'LIST'-chunk;KeyFrame(+);Midpart;Firstpart;Lastpart;NoTime
FC 08 00 00 -> 偏移量。为0x000008FC,即2300字节。该文件中用的是从文件开始处的偏移量。
08 62 00 00 -> 该数据chunk的大小。为0x00006208,即25096字节。
30 30 64 63 -> '00dc'的ASCII码,chunk ID,说明是第一个流的压缩帧。
00 00 00 00 -> 标志。'LIST'-chunk;KeyFrame;Midpart;Firstpart;Lastpart;NoTime
0C 6B 00 00 -> 偏移量。为0x00006B0C,即27404字节。该文件中用的是从文件开始处的偏移量。
DA 5A 00 00 -> 该数据chunk的大小。为0x00005ADA,即23258字节。
--------------------------------------------------------------------------------------------------------
下面依次是index成员,直到文件结束。
--------------------------------------------------------------------------------------------------------

分享到:
评论

相关推荐

    avi 视频文件信息解析(c源代码)

    `aviinfo.c`可能是实现AVI文件解析的源代码文件,它可能包含了读取和解析AVI文件头、索引和帧数据的函数。这些函数可能涉及内存映射文件、文件流操作以及解析RIFF结构的相关逻辑。 7. **avi.h**: 这个文件可能是...

    avi文件解析实例分析

    《深入理解AVI文件解析》 AVI(Audio Video Interleaved)是Microsoft开发的一种音频视频文件格式,广泛应用于多媒体领域。它以一种交错的方式存储音频和视频数据,使得播放时能够同步。本文将深入剖析AVI文件的...

    VC7编写avi文件解析播放器

    在本文中,我们将深入探讨如何使用VC7(Visual C++ 7,即Visual Studio .NET 2003)来编写一个AVI文件解析播放器。AVI(Audio Video Interleave)是一种流行的视频容器格式,它能存储音频和视频数据。在VC7中开发...

    AVI文件解析工具

    很好的AVI文件解析工具,可以把AVI各个列表的字段一一展开,一目了然。研究AVI文件组成必备工具

    AVI文件解析播放器,高版本VC7编写的代码.rar

    本项目是一个使用高版本VC(Visual C++ 7及以上版本)编写的AVI文件解析播放器,旨在帮助开发者理解和实现多媒体文件的处理。通过分析这个程序,我们可以深入学习AVI文件的结构以及如何在C++环境中进行多媒体编程。 ...

    avi文件解析软件AVIcodec

    一个windows下的文件解析软件,支持AVI & DIVX, ASF & WMV, Real (.rm, .rmvb), Ogg (.ogg, .ogm), Mpeg-(S)VCD-DVD (.mpg, .vob), FLV 等格式的解析

    AVI文件分析工具

    AVI文件采用的是RIFF文件结构方式,RIFF(Resource Interchange File Format,资源互换文件格式)是微软公司定义的一种用于管理windows环境中多媒体数据的文件格式,波形音频wave,MIDI和数字视频AVI都采用这种格式...

    avilib avi分解解析库

    在使用aviplib进行AVI文件解析时,开发者需要注意正确处理返回的数据帧,避免内存溢出和资源泄露。同时,理解aviplib提供的API接口及其用法,能够更有效地利用这个库。 通过理解aviplib的工作原理,开发者可以更好...

    AVI格式解析 源代码 VC

    这是一个avi 的格式解析。 供视频人士研究AVI的格式组成。 注意每个chunk 之间的关系。avi是怎么起到容器的作用。

    avi文件自动解析1

    【AVI文件自动解析1】 AVI(Audio Video Interleaved)文件是一种常见的多媒体格式,尤其在视频处理领域中广泛使用。尽管市面上有许多播放AVI文件的软件,但并不是所有程序都支持从AVI视频中抽取单一帧图像并转换为...

    AVI解析工具,视频解析工具

    不错的AVI文件解析具,视频解析工具,亲测可用.

    C++ 解析AVI 头信息

    1. **IAVI.cpp**: 这可能是实现AVI文件解析接口的源代码文件,其中包含读取和解析AVI头信息的具体函数。 2. **main.cpp**: 这是程序的主入口点,可能包含了调用IAVI接口进行实际操作的示例代码。 3. **IAVI.h**: 这...

    avi文件格式解析[参照].pdf

    AVI 文件格式解析 AVI(Audio Video Interleaved)是 Microsoft 公司开发的一种符合 RIFF 文件规范的数字音频与视频文件格式。AVI 格式允许视频和音频交错在一起同步播放,支持 256 色和 RLE 压缩,但 AVI 文件并未...

    AVI格式查看器AtomicBrowser2(AVI).rar

    然而,由于其开放的结构,AVI文件可能会变得非常大且不便于传输。为了深入了解AVI文件的内部结构和内容,我们需要专门的工具,如AtomicBrowser2。 AtomicBrowser2是一款专为分析和查看AVI格式文件而设计的应用程序...

    视频文件文件头解析--avi

    视频文件文件头解析--avi AVI 格式是音频视频交错(Audio Video Interleaved)的英文缩写,它是 Microsoft 公司开发的一种符合 RIFF 文件规范的数字音频与视频文件格式。AVI 格式允许视频和音频交错在一起同步播放...

    avi信息读取器

    总的来说,《avi信息读取器》不仅是一个实用的工具,也是一个学习AVI文件解析和视频处理的优秀实例,对于开发者来说具有很高的参考价值。通过深入研究这个项目,我们可以了解多媒体文件格式、编解码原理以及如何利用...

    vc++播放AVI视频文件

    3. 创建并连接过滤器,包括源过滤器(通常为AVI文件解析器)、视频渲染器和音频渲染器。 4. 调整过滤器图设置,如窗口大小、播放速度等。 5. 调用`IMediaControl::Run`开始播放。 由于篇幅限制,这里无法给出完整的...

Global site tag (gtag.js) - Google Analytics