wav文件头格式详解

首先先声明几个变量:

int file_size;      //文件大小

int channel;        //声道数

int sample_rate;   //采样率

int bit_rate;      //比特率

int sample_bit;    //每个采样点的位数

int data_size;     //pcm数据的大小

char *header = new char[44]; //wav文件头

1:

00~03 4字节“RIFF” 资源交换文件标志

header[0] ='R';
header[1] ='I';
header[2] ='F';
header[3] ='F';

2:

04~074字节size=文件大小-8字节 (从下一个字节开始到文件末尾的总字节数)

header[4] = (char) ((file_size -8) & 0xff);
header[5] = (char) (((file_size -8) >> 8) & 0xff);
header[6] = (char) (((file_size -8) >> 16) &0xff);
header[7] = (char) (((file_size -8) >> 24) &0xff);

3:

08~11 4字节“wave” wav文件标志

header[8]  ='W';
header[9]  ='A';
header[10] ='V';
header[11] ='E';

4:

12~15 4字节“fmt” 波形格式标志,最后一位空格

header[12] ='f';
header[13] ='m';
header[14] ='t';
header[15] =' ';

5:

16~19 4字节过滤字节(一般为00000010H)

header[16] =16;
header[17] =0;
header[18] =0;
header[19] =0;

6:

20~21 2字节格式种类(值为1时,表示数据为线性pcm编码)

header[20] =1;
header[21] =0;

7:

22~23 2字节通道数,单声道为1,双声道为2

header[22] = (char) channel;
header[23] =0;

8:

24~27 4字节采样率

header[24] = (char) (sample_rate &0xff);
header[25] = (char) ((sample_rate >>8) & 0xff);
header[26] = (char) ((sample_rate >>16) & 0xff);
header[27] = (char) ((sample_rate >>24) & 0xff);

9:

28~31 4字节比特率(Byte率=采样频率*音频通道数*每次采样得到的样本位数/8)

header[28] = (char) (bit_rate &0xff);
header[29] = (char) ((bit_rate >>8) & 0xff);
header[30] = (char) ((bit_rate >>16) & 0xff);
header[31] = (char) ((bit_rate >>24) & 0xff);

10:

32~33 2字节数据块长度(每个样本的字节数=通道数*每次采样得到的样本位数/8)

header[32] = (char) (channel* sample_bit / 8);
header[33] =0;

11:

34~35 2字节每个采样点的位数

header[34] = (char) sample_bit;
header[35] =0;

12:

36~39 4字节 “data”数据标志符

header[36] ='d';
header[37] ='a';
header[38] ='t';
header[39] ='a';

13:

40~43 4字节 pcm音频数据大小

header[40] = (char) (data_size &0xff);
header[41] = (char) ((data_size >>8) & 0xff);
header[42] = (char) ((data_size >>16) & 0xff);
header[43] = (char) ((data_size >>24) & 0xff);

当我们在一个.wav文件前写入这44个字节的头,后面接上pcm数据.这样很多播放器都能播放了.

本文参考:

http://baike.baidu.com/view/8033.htm

wav文件头格式详解相关推荐

  1. 一、各种WAV文件头格式

    Wav文件也分好几个种类,相应的非数据信息存储在文件头部分,以下是各种WAV文件头格式. 表1 8KHz采样.16比特量化的线性PCM语音信号的WAVE文件头格式表(共44字节) 偏移地址 字节数 数 ...

  2. g711音频封装wav文件头格式

    g711音频封装wav文件头格式 之前的客户需求,平台音频不支持g711格式,只支持wav/mp3,wav格式封装比较简单,只需要在原始音频数据上封装一层wav头就可以,在此记录一下该模块接口.参考开 ...

  3. Audio WAV文件头格式

    最近需要对多个WAV文件进行拼接,这就涉及到WAV文件头的创建和修改更新.之前的方式是利用第一个WAV的文件头,在最后全部拼接完后再修改文件头中的文件长度及音频数据长度.这个长度如果不修改,最后拼接的 ...

  4. pythonmat文件转excel_利用python将图片转换成excel文档格式详解

    本文主要介绍了关于利用python将图片转换成excel文档的相关内容,编写了一小段Python代码,将图片转为了Excel,纯属娱乐,下面这篇文章主要给大家介绍了关于利用python将图片转换成ex ...

  5. wav文件格式分析与详解

    wav文件格式分析与详解 WAV文件是在PC机平台上很常见的.最经典的多媒体音频文件,最早于1991年8月出现在Windows 3.1操作系统上,文件扩展名为WAV,是WaveFom的简写,也称为波形 ...

  6. 三维重建:PNG格式详解-与LibPNG使用

    PNG图像包含了骨骼信息,左边的图像比右边的大几十K,包含了骨骼信息:        PNG格式详解:https://blog.mythsman.com/post/5d2d62b4a2005d7404 ...

  7. BMP格式详解<转>

    BMP格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Win ...

  8. PE 格式详解与试验

    PE 格式详解与试验 可执行文件结构分析 DOS头 文件头 可选头 PE RVA 地址与文件地址转换 块表 Section Header 导入表 Data Directory 基址重定位 reloc ...

  9. bmp图片的格式详解

    BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广 ...

最新文章

  1. Python:Scrapy实战项目手机App抓包爬虫
  2. C++:运算符重载函数之成员运算符重载函数
  3. 内存条结构_CPU是电脑里最难坏的硬件,为什么不敢终身质保,而内存条却可以...
  4. 自问自答 学习系列(1):从图像分类,到损失函数,到神经网络
  5. 【SSL】【Apache】 配置 https/ssl
  6. 查询Linux系统网卡流量负载,超好用linux系统查询网卡等流量参数的工具,分享给大家!!!...
  7. jdk12源代码文件_JDK 11:轻松取出单文件Java源代码程序
  8. 子元素div高度不确定时父div高度如何自适应
  9. 6个残酷的人生事实[转]
  10. MasterPage简介
  11. 高等代数——大学高等代数课程创新教材(丘维声)——3.5笔记+习题
  12. 轻量级kali虚拟机
  13. 有关Excel表格公式的方式进行前边数字排序,后边内容不变的方法。
  14. HDS设备高级操作_VSP_更换Cache电池手册
  15. 3天10万,5天20万!中山公园这场摄影大赛是如何做到的?
  16. 24V转5V稳压芯片,低功耗降线性稳压器
  17. 《安富莱嵌入式周报》第266期:真正模拟DA神的威力,全开源nV级测量仪表挑战赛结束,欣赏震撼设计过程
  18. centos命令行常用快捷键
  19. Mysql如何添加环境变量(详细教程)
  20. 西山居工作室十周年回顾——产品篇

热门文章

  1. Android手机通过usb连接电脑上网
  2. 基于php网上购物商城系统
  3. js控制网页全屏,监听退出全屏动作
  4. CVE-2020-15148--Yii2 反序列化漏洞复现
  5. 气象站维护的三大问题
  6. Android组件化最佳实践 ARetrofit原理
  7. 安卓手机移动办公App软件的开发
  8. Siemens Simcenter FloEFD 2021.1.0 v5312 for Solid Edge
  9. JS 判断一个字符串中每个字母出现的次数
  10. Flowable流程图数据封装