用 ffplay
播放 PCM 裸流時,必須手動告訴它“沒有封裝頭、采樣率、聲道數、采樣格式”四個關鍵點。命令模板如下:
ffplay -f <采樣格式> -ar <采樣率> -ac <聲道數> -i <pcm文件>
常用組合示例
- 48 kHz、16 bit、小端、雙聲道
ffplay -f s16le -ar 48000 -ac 2 48000_2_s16le.pcm
- 48 kHz、32 bit float、小端、雙聲道
ffplay -f f32le -ar 48000 -ac 2 48000_2_f32le.pcm
- 8 kHz、16 bit、小端、單聲道
ffplay -f s16le -ar 8000 -ac 1 audio.raw
參數說明
-f
:指定原始音頻格式,如s16le
(有符號 16 bit 小端)、f32le
(32 bit float 小端)、s16be
(大端)等。-ar
:采樣率(Hz)。-ac
:聲道數,1 單聲道,2 立體聲。-i
:輸入文件;若用管道可把-
代替文件名,例如
cat raw.pcm | ffplay -f s16le -ar 44100 -ac 2 -
如果忘記具體格式,可先執行 ffplay -formats | grep PCM
查看支持列表,再嘗試不同組合,直到聲音正常即可 。
參考資料:https://github.com/0voice