3、AVI结构分析||WAV文件结构分析

目录

一、AVI结构分析

问题1

问题2

二、WAV文件结构分析

1、WAV文件简介

2、WAV文件结构

(1)RIFF Chunk

(2)Format Chunk

(3)Data Chunk

3、WAV文件实例分析


一、AVI结构分析

打开一个你机器上的AVI文件,回答下述问题:

1.音频和视频的数据是如何放置的?交织放置or连续放置?

2.一个视频帧大约占用多少字节?一个音频数据块大约占用多少字节?


问题1

由上图可知:

AVI文件中音频和视频的数据是交织放置的的。


问题2

由上图可知:

音频数据块(01wb)大小总是为:01 A2 = 416字节;

视频数据块(00dc)大小可以为:2E 10 = 11792字节

                                              或 48 71 = 18545字节

                                              或 33 F1 = 13297字节

说明视频数据块大小是可变的。


二、WAV文件结构分析

1、WAV文件简介

WAV是最常见的声音文件格式之一,是微软公司专门为Windows开发的一种标准数字音频文件,该文件能记录各种单声道或立体声的声音信息,并能保证声音不失真。但WAV文件有一个致命的缺点,就是它所占用的磁盘空间太大。它符合资源互换文件格式(RIFF)规范。


2、WAV文件结构

WAV文件遵循RIFF规则,其内容以区块(chunk为最小单位进行存储。WAV一般由3个区块组成:RIFF chunkFormat chunkData chunk。另外,文件中还可能包含一些可选的区块,如:Fact chunk、Cue points chunk、Playlist chunk、Associated data list chunk等


(1)RIFF Chunk

名称

偏移

地址

字节数端序内容说明
ID0x004Byte大端'RIFF' (0x52494646)'RIFF'为标识
Size0x044Byte小端fileSize - 8Size是整个文件的长度减去IDSize的长度
Type0x084Byte大端'WAVE'(0x57415645)TypeWAVE表示后面需要两个子块:Format区块和Data区块
  • 大端:数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中。
  • 小端:数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中。

(2)Format Chunk

名称偏移地址字节数端序内容说明
ID0x004Byte大端 'fmt ' (0x666D7420)以'fmt '为标识
Size0x044Byte小端16表示该区块数据的长度(不包含ID和Size的长度)
AudioFormat 0x08 2Byte小端音频格式表示Data区块存储的音频数据的格式,PCM音频数据的值为1
NumChannels0x0A2Byte小端声道数表示音频数据的声道数,1:单声道,2:双声道
SampleRate0x0C4Byte小端采样率表示音频数据的采样率
ByteRate0x104Byte小端每秒数据字节数表示每秒数据字节数 = SampleRate * NumChannels * BitsPerSample / 8
BlockAlign0x142Byte小端数据块对齐表示每个采样所需的字节数 = NumChannels * BitsPerSample / 8
BitsPerSample 0x162Byte小端

采样位数

表示每个采样存储的bit数,8:8bit,16:16bit,32:32bit

(3)Data Chunk

名称

偏移

地址

字节数端序内容说明
ID0x004Byte大端'data' (0x64617461)以'data'为标识
Size0x044Byte小端N

Size表示音频数据的长度,

N = ByteRate * seconds

Data0x08NByte小端音频数据Data音频数据

3、WAV文件实例分析

子块名称数据说明
RIFF ChunkID52 49 46 46标识符RIFF
SizeCC 17 0D 01

文件总长度=010D17CC(17635276)+4+4

                  =17635284字节

Type57 41 56 45标识符WAVE
Format ChunkID66 6D 74 20标识符fmt
Size10 00 00 00该Format区块的大小为16+4+4=24字节
AudioFormat 01 00音频格式为PCM
NumChannels02 00双声道
SampleRate44 AC 00 00采样率=0000AC44=44100Hz
ByteRate10 B1 02 00每秒数据字节数=0002B110=176400
BlockAlign04 00数据块对齐为’4‘
BitsPerSample10 00表示每个采样存储16bit
Data ChunkID64 61 74 61标识符data
SizeBC 16 0D 01data音频数据大小=010D16BC=17635004字节

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值