用 ffplay 播放 PCM 裸流时,必须手动告诉它"没有封装头、采样率、声道数、采样格式"四个关键点。命令模板如下:
bash
ffplay -f <采样格式> -ar <采样率> -ac <声道数> -i <pcm文件>
常用组合示例
- 48 kHz、16 bit、小端、双声道
bash
ffplay -f s16le -ar 48000 -ac 2 48000_2_s16le.pcm
- 48 kHz、32 bit float、小端、双声道
bash
ffplay -f f32le -ar 48000 -ac 2 48000_2_f32le.pcm
- 8 kHz、16 bit、小端、单声道
bash
ffplay -f s16le -ar 8000 -ac 1 audio.raw
参数说明
-f:指定原始音频格式,如s16le(有符号 16 bit 小端)、f32le(32 bit float 小端)、s16be(大端)等。-ar:采样率(Hz)。-ac:声道数,1 单声道,2 立体声。-i:输入文件;若用管道可把-代替文件名,例如
bash
cat raw.pcm | ffplay -f s16le -ar 44100 -ac 2 -
如果忘记具体格式,可先执行 ffplay -formats | grep PCM 查看支持列表,再尝试不同组合,直到声音正常即可 。