1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > AVI文件格式简介与WAV文件分析

AVI文件格式简介与WAV文件分析

时间:2021-10-22 01:45:28

相关推荐

AVI文件格式简介与WAV文件分析

AVI文件格式简介与WAV文件分析

AVI文件格式(回答问题)

所有AVI文件至少包含2个必须的LIST Chunk和一个索引Chunk

Chunk:

LIST Chunk:

小端:数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。

打开一个本地的avi文件如下:

元数据:

实际数据:

问题一

第一个hdrl list描述视频,故音频用01wb表示,视频用00dc或00db

01wb代表一个音频数据块wave:

一个视频数据块00dc(压缩后的)

又一个音频数据块:

由上可见avi文件中音频和视频数据是交织放置的。

问题二

一个视频数据块:

大小为00 01 D4 C0,即120000个字节

又一个视频数据块:

大小为0,即0字节

又一个视频数据块:

大小为00 03 AB 21,即240471个字节

由上可知,AVI文件的视频数据块大小各不相同

一个音频数据块:

大小为00 00 19 04

又一个音频数据块:

大小为00 00 19 04

查找后发现音频数据块均为此大小

参考本文使用avi文件解析器的结果:

发现avi文件的确视频帧大小不同,音频数据块大小相同

WAV文件分析

概述

WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道,标准格式化的WAV文件和CD格式一样,也是44.1K的取样频率16位量化数字,因此在声音文件质量和CD相差无几! WAV打开工具是WINDOWS的媒体播放器。

不对原有文件压缩,在音质方面无失真情况,但是文件的体积较大。

文件结构

WAV文件是属于RIFF结构形式的文件,这种结构是一种树状结构,其最基本的组成单元是chunk(块),而每一个chunk则由辨识码,数据大小,以及数据本身组成(各4字节),其中辨识码就是RIFF四个字母的ASCII码,用十六进制表示就是52 49 46 46;辨识码之后的四个字节,表示除去文件辨识码和它自己之后剩余文件的大小,最后就是文件的数据本身了。

而WAV格式的文件除了前面的文件头之后,还包含两个子块,如下所示:

其中fmt子块主要用于描述该wav文件的信息,例如,采样率,数据量,编码格式,声道数等,其结构也如RIFF,最开始4个字节表示标识符“fmt”,接着四个字符表示该块大小,后面的18个字节则表示文件的信息,同样,也是fmt子块的“数据”;

这里的fact子块并不是必须的,在标准的WAV文件中没有该子块,只有一些软件转化而来的才会增加该子块,其主要存储关于该文件内容的重要信息;data块则主要就是WAV文件真正能播放的声音数据部分了。

RIFF Chunk标识块

52 49 46 46,即RIFF标识,其后4个字节为46 C0 06 00,说明WAV大小为442438字节(最小端存储)。

57 41 56 45,即WAVE对应的ASCII码

结构体表示为:

struct RIFF_HEADER{char szRiffID[4]; // 'R','I','F','F'DWORD dwRiffSize;char szRiffFormat[4]; // 'W','A','V','E'};

fmt文件信息块

蓝:标识符”fmt“,66 6D 74 20是fmt对应的ASII码

粉:fmt数据块长度

黄:fmt数据块内容

00 01表示该数据以PCM方式编码

00 02表示该文件为双声道文件

00 00 BB 80表示采样频率为48000Hz

00 02 EE 00表示数据传输速率为192000bps

00 04表示采样帧大小为一次处理一帧4字节

00 10表示每个采样值所用二进制位数为16,高八位左声道,低八位右声道

49 4C表示附加信息

结构体为:

struct WAVE_FORMAT{WORD wFormatTag;WORD wChannels;DWORD dwSamplesPerSec;DWORD dwAvgBytesPerSec;WORD wBlockAlign;WORD wBitsPerSample;};struct FMT_BLOCK{TCHAR szFmtID[4]; //'f','m','t',' ' please note the// space character at the fourth location.DWORD dwFmtSize;WAVE_FORMAT wavFormat;};

data数据块

多声道文件样本在数据中交替出现,本例中,每个采样值所用二进制位数为16,高八位左声道,低八位右声道

粉:64 64 74 61为data标识符,标识data的ASCII码

绿:data数据块长度00 06 C0 00,即442368字节

结构体为:

struct DATA_BLOCK{char szDataID[4]; // 'd','a','t','a'DWORD dwDataSize;};

参考文献

wav文件分析 /p/45518641avi文件详解 /intel1985/article/details/114284756wav文件格式分析 /ranson7zop/p/7657874.html

## 参考文献1. wav文件分析 /p/455186412. avi文件详解 /intel1985/article/details/1142847563. wav文件格式分析 /ranson7zop/p/7657874.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。