AVI和WAV文件格式分析


AVI文件

使用Atomic Browser 软件打开AVI文件,可以看出视频和音频的数据是交织放置的。在这里插入图片描述在这里插入图片描述

请添加图片描述

WAV文件概述

    WAVE(Waveform Audio File Format),是录音时用的标准的Windows文件格式,文件的扩展名为“WAV”,数据本身的格式为PCM或压缩型。WAVE文件格式是一种由微软和IBM联合开发的用于音频数字存储的标准,它采用RIFF文件格式结构,非常接近于AIFF和IFF格式。符合 PIFF Resource Interchange File Format规范。WAVE文件可以存储大量格式的数据,通常采用的音频编码方式是脉冲编码调制(PCM)。WAVE对音频流的编码没有硬性规定,除了PCM之外,还有几乎所有支持ACM规范的编码都可以为WAV的音频流进行编码。由于 WAV格式源自Windows/Intel环境,因而采用Little-Endian字节顺序进行存储。


文件结构

  • WAV文件遵循RIFF规则,其内容以区块(chunk)为最小单位进行存储。
  • RIFF格式的wav文件由若干个Chunk(块)组成,按顺序为 RIFF WAVE Chunk、Format Chunk、Fact Chunk(可选)和Data Chunk。每个块都有固定而且类似的格式。
  • 一般整个WAV文件可以分成两部分:前一部分为文件头,后一部分为数据块。根据其编码方式和采样位数的不同, 这两部分的大小有所不同。

1. RIFF WAVE块格式

名称长度(字节)说明
ID4“RIFF”,块标识
Size4
Type4“WAVE”
  • Wav 文件最开始 4 个字节是 ID 部分,其内容为 RIFF 的 ASCII码,紧跟的4个字节表示的文件大小是总文件字节数减去ID 和Size所占字节数的8 个字节。然后是 Type部分,其内容为WAVE的ASCII码,4个字节。

在这里插入图片描述

  • 以上图为例:
    52 49 46 46 :表示RIFF文件格式,固定。
    72 0d 0b 00 :表示WAV文件大小,为724338(0xb0d72)字节
          (不包括ID 和Size所占字节数的8个字节)。
    57 41 56 45 : 表示WAVE文件, 固定.

2. Format块格式

名称长度(字节)说明
ID4“fmt”,块标识,字符最后以空格结束
Size4Format块长度(不包括ID、Size),其数值不确定,取决于编码格式。
AudioFormat2表示Data区块存储的音频数据的编码类型标识
NumChannels2音频数据的声道数,1:单声道,2:双声道
SampleRate4采样频率
ByteRate4数据传输速率,每秒记录的数据量(单位:字节)
BlockAlign2数据块对齐单位,表示每个采样帧占据的字节数
BitsPerSample2采样位数,存储每个采样值所用的二进制数位数
(附加,可选)2系统预留,全部置0,仅8位采样文件中有
  • 其中,ByteRate和Block可以由其他数据计算得出:
    ByteRate = SampleRate * NumChannels * BitsPerSample / 8
    BlockAlign = NumChannels * BitsPerSample / 8

在这里插入图片描述

  • 以上图为例:
    66 6D 74 20 : “fmt ”, Format块标识
    10 00 00 00 :表示Format块数据大小,为16字节。
    01 00 :音频数据的编码类型标识,为PCM编码
    01 00 :音频数据的声道数,为单声道
    40 1F 00 00 :采样频率为8000Hz
    80 3E 00 00 :数据传输速率为16000字节/s
    02 00 : 数据块对齐单位,每个采样帧占据2字节
    10 00 : 采样位数,每个采样值所用的二进制数位数为16

3. Fact块格式

名称长度(字节)说明
ID4“fact”,块标识
Size4Fact块长度(不包括ID、Size),一般为4
Data4Fact数据,表示每个声道的采样总数

4. Data块格式

名称长度(字节)说明
ID4“data”,块标识
Size4Data块数据长度,ByteRate * seconds
Data-Data块数据

对于Data块,根据声道数和采样率的不同情况,布局如下:

1) 8比特单声道

采样1采样2
数据1数据2

2) 8比特双声道

采样1采样2
声道1数据1声道2数据1声道1数据2声道2数据2

3) 16比特单声道

采样1采样2
数据1低字节数据1高字节数据2低字节数据2高字节

4) 16比特双声道

采样1
声道1数据1低字节声道1数据1高字节声道2数据1低字节声道2数据1高字节
采样2
声道1数据2低字节声道1数据2高字节声道2数据2低字节声道2数据2高字节

在这里插入图片描述
以上图为例
64 61 74 61 : “data”,数据块标识
4E 0D 0B 00 : data块数据长度,为724302字节
剩下的是数据部分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值