wav文件头详解,看懂wav文件

摘要:
萌萌在工作期间经常询问wav文件头的格式,以及如何查看wav文件,有时“pseudo.pcm”格式总结如下:wav是最常见的声音文件格式之一,是微软专门为Windows开发的标准数字音频文件,其可以记录各种单声道或立体声声音信息并确保声音不失真。然而,WAV文件有一个缺点,即它们占用了太多的磁盘空间。

工作中部门萌新常问的wav文件头格式及怎么看wav文件,

且有时会遇到   “伪.pcm”  格式

现总结如下:

  WAV是最常见的声音文件格式之一,是微软公司专门为Windows开发的一种标准数字音频文件,该文件能记录各种单声道或立体声的声音信息,并能保证声音不失真。但WAV文件有一个缺点,就是它所占用的磁盘空间太大(每分钟的音乐大约需要12兆磁盘空间)。它符合资源互换文件格式(RIFF)规范,用于保存Windows平台的音频信息资源

推荐一个好用的16进制文件查看的工具:HxDx64


对于完全0基础的,推荐下面网站中的详细解释,比较详细:(侵删)

        https://www.cnblogs.com/ranson7zop/p/7657874.html


1.RIFF块(RIFF-Chunk)

偏移地址字节数数据类型内容
&H004String‘RIFF‘文件标志
&H044UInteger文件总长
&H08 4 String ‘WAVE‘文件标志

2.格式化块(Format-Chunk)

偏移地址字节数数据类型内容
&H0C4String‘fmt‘标志
&H104UInteger块长度
 &H12  2 UShortPCM格式类别 
&H142 UShort 声道数目 
&H184 UInteger 采样率 
 &H1C 4 UInteger 传输速率 
 &H1E 2UShort  数据块对齐 
&H202UShort  每样本bit数 
 &H22 2UShort  可选 

3.附加块(Fact-Chunk) *当前块偏移地址需要根据实际数据变更

偏移地址字节数数据类型内容
&H264String‘fact‘标志
&H2A4UInteger块长度
&H2E4UInteger 附加信息

4.数据块(Data-Chunk) *当前块偏移地址需要根据实际数据变更

偏移地址字节数数据类型内容
&H324String‘data‘文件标志
&H364UInteger

数据块总长

按照相关头格式,来观察字节即可

Example:(取自上面博客)

wav文件头详解,看懂wav文件第1张

免责声明:文章转载自《wav文件头详解,看懂wav文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇蓝桥杯 分考场 (暴搜)java.sql.SQLException: Unknown system variable 'query_cache_size'下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vo中对date格式的时间格式的处理,方便到前台展示

之前一个同事的写法是这样的(绿色的): public static final String GENERAL_PATTERN_2 = "yyyy-MM-dd HH:mm:ss"; 其实没必要这样,在vo里面的set方法做个赋值: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:s...

Spring Boot 异步请求和异步调用,一文搞定

一、Spring Boot中异步请求的使用 1、异步请求与同步请求     特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如长时间的运算)时再对客户端进行响应。 一句话:增加了服务器对客户端请求的吞吐量(实际生产上我们用的比较少,如果并发请求量很大的情况下,我们会通...

提取网页中的超链接(C#)

using System;using System.Xml;using System.Text;using System.Net;using System.IO;using System.Collections;using System.Text.RegularExpressions; public class App{public static voi...

delphi TreeView 从数据库添加节点的四种方法

方法一:delphi中递归算法构建treeView 过程:通过读取数据库中table1的数据,来构建一颗树。table1有两个字段:ID,preID,即当前结点标志和父结点标志。所以整个树的表示为父母表示法。本递归算法不难写,但是要注意:程序内部的变量都应使用局部变量!比如当Query是外部变量(函数外定义或者直接通过控件拖拽得来)时就会得到错误的结果。代...

sscanf函数用法详解

名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 … ); int scanf( const char *format [,argument]… ); 说明: sscanf与scanf类似,都是用于输入的,...

C# 获取 串口 设备名称 与 串口号 ManagementObjectSearcher类

1.效果图: 2.代码 classProgram { static void Main(string[] args) { GetComList(); } private static voidGetComList() {try{...