wav音频文件格式详解

##利用ffmpeg做音频转换 大多时候我们得到的都是mp3格式的音频文件,在linux下我们想要转换音频格式可以使用ffmpeg ,非常方便,没有ffmpeg就安装一个吧 sudo apt-get install ffmpeg 感觉ubuntu真心的方便。 :::java ffmpeg -i track8.mp3 -ar 44100 -ac 2 -acodec pcm_s32le track8.wav 根据上面的命令,我们把track8.mp3转换为采样率44100,采样精度32位,双声道的wav音频文件。 ##文件的十六进制表示 我们选择vim来看其十六进制数据,或许你不相信vim的强大,但事实就是如此,我们用vim打开一个wav是这样的: info 加上 -b 让vim知道你是打开了一个二进制文件,例如:vim track8.wav -b 不用急,只要用命令模式运行如下命令,将会有奇迹发生。:%!xxd 我们需要的信息就在眼前了。现在可以用来分析了。 ##wav框架 终于进入主题了。 分析头部信息前,首先要明确wav文件存储的头部信息是包含在trunk中的,wav由trunk组成的,一个wav大致有以下几个trunk RIFF WAVE Chunk ID=‘RIFF’ RiffType=‘WAVE’ Format Chunk ID = ‘fmt’ Fact Chunk(optional) ID = ‘fact’ Data Chunk ID = ‘data’ ##具体分析 RIFF WAVE Chunk 头 所占字节数 内容 例子 ID 4 ‘RIFF’ 0x52494646 Size 4 0x0037296c Type 4 ‘WAVE’ 0x57415645 可以看到首4个字节是’RIFF’,接着的四个字节是文件的总大小减去头8个字节,最后四个字节是格式类型’WAVE’。...

January 24, 2013