一、音频录制
1. arecord 录制音频
# 录制一个双声道的 16 位 16KHz 持续 5 秒钟的 wav 格式音频文件
arecord --file-type=wav --channel=2 --format=S16_LE --rate=16000 --duration=5 /tmp/record.wav
# 精简用法
arecord --file-type=raw --channel=2 -f cd --duration=5 ~/record.wav
- –file-type:文件类型(voc、wav、raw、au)
- –channel:声道数(1、2 …)
- –format:采样格式(S8 U8 S16_LE S16_BE …)
- –rate:采样率(8000、16000 …)
- –duration:录制时间(单位秒)
-
-f:快捷格式
- -f cd(16 位小 endian, 44100,立体声)
- -f cdr(16 位大 endian, 44100,立体声)
- -f dat(16 位小 endian, 48000,立体声)
--format
完整取值:S8 U8 S16_LE S16_BE U16_LE U16_BE S24_LE S24_BE U24_LE U24_BE S32_LE S32_BE U32_LE U32_BE FLOAT_LE FLOAT_BE FLOAT64_LE FLOAT64_BE IEC958_SUBFRAME_LE IEC958_SUBFRAME_BE MU_LAW A_LAW IMA_ADPCM MPEG GSM SPECIAL S24_3LE S24_3BE U24_3LE U24_3BE S20_3LE S20_3BE U20_3LE U20_3BE S18_3LE S18_3BE U18_3LE
说明:不知为什么,录制的声音特别小。
二、音频播放
1. ffplay 播放音频
# 播放一个单声道 16 位采样率为 16KHz 的 pcm 音频文件
ffplay -ar 16000 -channels 1 -f s16le -autoexit -showmode 1 -i xxx.pcm
- -ar:采样率
- -channels:声道数
- -f:采样格式
- -autoexit:播放完毕自动退出
- -showmode:波形图或频谱图显示模式
- -i:pcm 音频文件
2. aplay 播放音频
# 播放 pcm 文件
aplay -t raw -c 2 -f S16_LE -r 8000 test.pcm
# 播放 wav 文件
aplay test.wav
三、音频格式转换
1. pcm 文件转为 wav 文件格式
ffmpeg -f s16le -ar 8000 -ac 2 -i test.pcm -ar 44100 -ac 2 test.wav
四、参考链接
arecord
音频采样率
播放媒体文件的工具 ffplay