本文通过2种办法(命令行、编程)演示一下:如何将PCM转成WAV。
1 WAV文件格式
在进行PCM转WAV之前,先再来认识一下WAV的文件格式。

找遍了全网,并没有找到令我十分满意的WAV文件格式图,于是按照自己的理解画了一张表格,个人以为还是极其普通易懂的。
每一个chunk(数据块)都由3部分组成:
id:chunk的标识data size:chunk的数据部分大小,字节为单位data,chunk的数据部分全体WAV文件是一个RIFF chunk,它的data由3部分组成:
format:文件类型fmt chunk音频参数干系的chunk
它的data里面有采样率、声道数、位深度等参数信息
data chunk音频数据干系的chunk
它的data便是真正的音频数据(比如PCM数据)
RIFF chunk撤除data chunk的data(音频数据)后,剩下的内容可以称为:WAV文件头,一样平常是44字节。
2 命令行
通过下面的命令可以将PCM转成WAV。
须要把稳的是:上面命令天生的WAV文件头有78字节。比拟44字节的文件头,它多增加了一个34字节大小的LIST chunk。
关于LIST chunk的参考资料:
What is a “LIST” chunk in a RIFF/Wav header?List chunk (of a RIFF file)加上一个输出文件参数-bitexact可以去掉LIST Chunk。
3 编程
在PCM数据的前面插入一个44字节的WAV文件头,就可以将PCM转成WAV。
3.1WAV的文件头构造
WAV的文件头构造大概如下所示
3.2 PCM转WAV核心实现
封装到了FFmpegs类的pcm2wav函数中。
3.3 调用函数
感兴趣的小伙伴可私 免费领学习资料哟