1、播放器是无法直接播放PCM音频文件。
原因是播放器不知道PCM文件的采样率、声道数、位深度(采样大小)等参数。
当PCM转成某种特定的音频文件格式后(比如转成WAV、MP3等),就能够被播放器识别播放了。
WAV是IBM和微软共同开发的文件格式,基于RIFF标准的文件格式。简单来说WAV文件可以分为两部分:文件头和PCM音频数据。一般情况文件头占44个字节,里面主要描述音频的采样率、通道数等信息。这样播放器就能直接播放WAV文件了。
2、ffmpeg命令的格式
在使用命令行之前先了解一下ffmpeg命令的格式,主要是通过 -i 把输入文件参数和输入文件分隔开:
ffmpeg 输入文件参数 -i 输入文件 输出文件参数 输出文件
3、通过下面的命令可以将PCM转成WAV
ffmpeg -ar 44100 -ac 2 -f s16le -i 小河淌水.pcm 小河淌水.wav
可以看出命令中没有设置输出文件的参数,也就是采样率、采样格式、通道数都是按照PCM的,上面命令生成的WAV文件头有78字节。对比44字节的文件头,它多增加了一个34字节大小的LIST chunk。这34个字节主要是描述FFmpeg里面libavformat动态库的版本。
4、可以通过输出参数过滤掉这个LIST chunk的信息
ffmpeg -ar 44100 -ac 2 -f s16le -i 小河淌水.pcm -bitexact 小河淌水.wav
查看文件的属性可以看到,确实多了44个字节,也就是WAV的文件头