wav文件头格式详解
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文件头格式详解相关推荐
- 一、各种WAV文件头格式
Wav文件也分好几个种类,相应的非数据信息存储在文件头部分,以下是各种WAV文件头格式. 表1 8KHz采样.16比特量化的线性PCM语音信号的WAVE文件头格式表(共44字节) 偏移地址 字节数 数 ...
- g711音频封装wav文件头格式
g711音频封装wav文件头格式 之前的客户需求,平台音频不支持g711格式,只支持wav/mp3,wav格式封装比较简单,只需要在原始音频数据上封装一层wav头就可以,在此记录一下该模块接口.参考开 ...
- Audio WAV文件头格式
最近需要对多个WAV文件进行拼接,这就涉及到WAV文件头的创建和修改更新.之前的方式是利用第一个WAV的文件头,在最后全部拼接完后再修改文件头中的文件长度及音频数据长度.这个长度如果不修改,最后拼接的 ...
- pythonmat文件转excel_利用python将图片转换成excel文档格式详解
本文主要介绍了关于利用python将图片转换成excel文档的相关内容,编写了一小段Python代码,将图片转为了Excel,纯属娱乐,下面这篇文章主要给大家介绍了关于利用python将图片转换成ex ...
- wav文件格式分析与详解
wav文件格式分析与详解 WAV文件是在PC机平台上很常见的.最经典的多媒体音频文件,最早于1991年8月出现在Windows 3.1操作系统上,文件扩展名为WAV,是WaveFom的简写,也称为波形 ...
- 三维重建:PNG格式详解-与LibPNG使用
PNG图像包含了骨骼信息,左边的图像比右边的大几十K,包含了骨骼信息: PNG格式详解:https://blog.mythsman.com/post/5d2d62b4a2005d7404 ...
- BMP格式详解<转>
BMP格式详解 BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Win ...
- PE 格式详解与试验
PE 格式详解与试验 可执行文件结构分析 DOS头 文件头 可选头 PE RVA 地址与文件地址转换 块表 Section Header 导入表 Data Directory 基址重定位 reloc ...
- bmp图片的格式详解
BMP文件格式详解(BMP file format) BMP文件格式,又称为Bitmap(位图)或是DIB(Device-Independent Device,设备无关位图),是Windows系统中广 ...
最新文章
- Python:Scrapy实战项目手机App抓包爬虫
- C++:运算符重载函数之成员运算符重载函数
- 内存条结构_CPU是电脑里最难坏的硬件,为什么不敢终身质保,而内存条却可以...
- 自问自答 学习系列(1):从图像分类,到损失函数,到神经网络
- 【SSL】【Apache】 配置 https/ssl
- 查询Linux系统网卡流量负载,超好用linux系统查询网卡等流量参数的工具,分享给大家!!!...
- jdk12源代码文件_JDK 11:轻松取出单文件Java源代码程序
- 子元素div高度不确定时父div高度如何自适应
- 6个残酷的人生事实[转]
- MasterPage简介
- 高等代数——大学高等代数课程创新教材(丘维声)——3.5笔记+习题
- 轻量级kali虚拟机
- 有关Excel表格公式的方式进行前边数字排序,后边内容不变的方法。
- HDS设备高级操作_VSP_更换Cache电池手册
- 3天10万,5天20万!中山公园这场摄影大赛是如何做到的?
- 24V转5V稳压芯片,低功耗降线性稳压器
- 《安富莱嵌入式周报》第266期:真正模拟DA神的威力,全开源nV级测量仪表挑战赛结束,欣赏震撼设计过程
- centos命令行常用快捷键
- Mysql如何添加环境变量(详细教程)
- 西山居工作室十周年回顾——产品篇