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

目录

一、AVI结构分析

问题1

问题2

二、WAV文件结构分析

1、WAV文件简介

2、WAV文件结构

(1)RIFF Chunk

(2)Format Chunk

(3)Data Chunk

扫描二维码关注公众号,回复: 14876018 查看本文章

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

名称

偏移

地址

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

(2)Format Chunk

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

采样位数

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

(3)Data Chunk

名称

偏移

地址

字节数 端序 内容 说明
ID 0x00 4Byte 大端 'data' (0x64617461) 以'data'为标识
Size 0x04 4Byte 小端 N

Size表示音频数据的长度,

N = ByteRate * seconds

Data 0x08 NByte 小端 音频数据 Data音频数据

3、WAV文件实例分析

子块 名称 数据 说明
RIFF Chunk ID 52 49 46 46 标识符RIFF
Size CC 17 0D 01

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

                  =17635284字节

Type 57 41 56 45 标识符WAVE
Format Chunk ID 66 6D 74 20 标识符fmt
Size 10 00 00 00 该Format区块的大小为16+4+4=24字节
AudioFormat  01 00 音频格式为PCM
NumChannels 02 00 双声道
SampleRate 44 AC 00 00 采样率=0000AC44=44100Hz
ByteRate 10 B1 02 00 每秒数据字节数=0002B110=176400
BlockAlign 04 00 数据块对齐为’4‘
BitsPerSample 10 00 表示每个采样存储16bit
Data Chunk ID 64 61 74 61 标识符data
Size BC 16 0D 01 data音频数据大小=010D16BC=17635004字节

猜你喜欢

转载自blog.csdn.net/m0_51333023/article/details/123486597
今日推荐