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文件信息块

名称 字节数 说明
格式块标识 4字节 小写字符串“fmt ”
格式块长度 4字节 格式块长度取决于编码形式(参见编码形式表
编码格式代码 2字节 常见的 WAV 文件使用 PCM 脉冲编码调制格式,该数值通常为 1。(参见编码形式表
声道个数 2字节 单声道为 1,立体声或双声道为 2
采样频率 4字节 每个声道单位时间采样次数。常用的采样频率有 11025, 22050 和 44100 Hz。
数据传输速率 4字节 声道数×采样频率×每样本的数据位数/8。播放软件利用此值可以估计缓冲区的大小。
数据块对其单位 2字节 采样帧大小。该数值为:声道数×位数/8。播放软件需要一次处理多个该值大小的字节数据,用该数值调整缓冲区。
采样位数 2字节 存储每个采样值所用的二进制数位数。常见的位数有 4、8、12、16、24、32

蓝:标识符”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数据块

名称 字节数 说明
格式块标识 4字节 标识data块
格式块长度 4字节 表明数据块的长度
数据 N字节 表示音频数据

多声道文件样本在数据中交替出现,本例中,每个采样值所用二进制位数为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;};

参考文献

  1. wav文件分析 https://zhuanlan.zhihu.com/p/45518641
  2. avi文件详解 https://blog.csdn.net/intel1985/article/details/114284756
  3. wav文件格式分析 https://www.cnblogs.com/ranson7zop/p/7657874.html

## 参考文献1. wav文件分析 https://zhuanlan.zhihu.com/p/45518641
2. avi文件详解 https://blog.csdn.net/intel1985/article/details/114284756
3. wav文件格式分析 https://www.cnblogs.com/ranson7zop/p/7657874.html

AVI文件格式简介与WAV文件分析相关推荐

  1. 数据压缩(三)——AVI文件分析WAV文件分析

    一.AVI文件分析 (一).AVI文件音频和视频的数据是如何放置的?交织放置or连续放置? 打开一个AVI格式文件,如下图: 在00000630行文件出现第一个"01wb"代表第一 ...

  2. PCM音频文件(.wav)压缩成ADPCM(.wav) ,wav文件分析,wav 文件格式

    本文来自: http://blog.csdn.net/jtlyr/article/details/5321884 这里还有介绍一些wav文件的其他网站,记录下: https://ccrma.stanf ...

  3. 【数据压缩】WAV文件分析

    AVI文件格式 什么是AVI AVI是音频视频交错(Audio Video Interleaved)的英文缩写,它是Microsoft公司开发的一种符合RIFF文件规范的数字音频与视频文件格式.AVI ...

  4. Java学习笔记:办公自动化简介及PDF文件分析

    啥叫办公自动化 非IT专业人员打交道最多的三种文件: Word.Excel.PDF. 办公自动化就是把手工的操作通过编程自动化完成. 这个阶段讲: Word.Excel.PDF文件的读写,图表,简化日 ...

  5. 【数据压缩】WAV文件和AVI文件格式分析

    一.WAV文件和AVI文件格式简介 WAV的英文全称是Waveform Audio File Format ,它采用 RIFF (Resource Interchange File Format)文件 ...

  6. Qt 之 WAV文件解析

    简介 最近看了一下Qt的处理音频方面的资料,本身利用QAudioInput 和 QAudioOutput 就可以实现录音和播放功能,代码也很简单,但是录音生成的文件并不能用播放器打开,就算更改后缀名也 ...

  7. 数字化波形声音的wav文件浅析

    -windows下一种通用格式叫做RIFF(资源互换文件格式),wav文件也是RIFF格式支持的音频文件结构. RIFF基本结构图 wav文件格式归纳 注:本图摘自北京电子科技学院学报第12卷第2期 ...

  8. wav文件提取音频数据_python

    wav文件提取音频数据_python wav文件格式 首先需要知道wav文件格式:(10条消息) WAV文件格式详解_imxiangzi的专栏-CSDN博客_wav文件格式 简单来说wav文件分为三个 ...

  9. WAV文件格式分析(附AVI文件格式分析)

    目录 一.WAV格式简介 二.WAV格式结构 1.RIFF chunk 2.Format chunk 3.Data chunk 三.AVI文件格式分析 Q1:音频和视频的数据是如何放置的?交织放置or ...

最新文章

  1. 提高C#编程水平的50个要点
  2. Java 运行时数据区域,哪些是线程隔离的?哪些又是公有的?
  3. 我在Archlinux下使用的软件
  4. jQuery select操作控制方法小结
  5. svn的一些相关资料
  6. 图解DIV相关编程实例
  7. 记录gitee再次提交和错误提示
  8. C++知识点串联总结
  9. 华为上机试题:最高分是多少
  10. C# 声明方法关键字
  11. 合法C标识符(信息学奥赛一本通-T1134)
  12. 【LOJ】 #2521. 「FJOI2018」领导集团问题
  13. es6 提取数组对象一部分_ES6新特性你了解了多少呢?
  14. 仿小米商城html网页源码
  15. 蓝桥杯官网 试题 PREV-253 历届真题 质数行者【第十一届】【决赛】【研究生组】【C++】【Java】两种解法
  16. Powerdesigner显示表的comment和列的comment的方法
  17. 51单片机数码管显示数字及小数点
  18. 腾讯云容器团队内部Istio专题分享
  19. K8S 污点和容忍度
  20. 【独立版】翻牌领红包系统一物一码仿口味王验证码抽奖码得红包追溯码源码程序无加密

热门文章

  1. Vue中修改浏览器图标Logo
  2. solr 4.x 中文分词: IKAnalyzer2012FF_u1.jar
  3. 微信多开消息防撤回工具让你的电脑登录多个微信账户
  4. 飞机结冰的那些事(2) Spring-Ice结冰软件介绍
  5. linux系统ssd对齐,Debian SSD ext4 4K 对齐
  6. S7-1200(S7-1500)和S7-1200(S7-1500)不同项目S7通讯
  7. Unity语音识别(百度AI长语句语音识别Unity原生短语语音识别)
  8. 第一章 软件安全概述
  9. java excel 兼容问题_Java之POI读取Excel的解决兼容性问题
  10. 发生系统错误 1275.此驱动程序被阻止加载