音频数据格式
音频原始数据格式为pcm及wav。wav属于对pcm进行包装过的格式,在pcm基础上添加了一个header头信息。
音频量化基本概念
- 采样大小(也叫位深):指一个采用使用多少bit存放,常用的是16bit
- 采样率:采样频率一般有 8k 16k 32k 44.1k 48k,采样率越高,数字信号与模拟信号越接近,误差越小。例如电话中听到的声音一般为8k的采样率,能大概听清说话人声音的特色,但有些失真。如果是48k采样率,基本就完全还原了面对面交谈时听到的音质。
- 声道数:单声道、双声道、多声道
学习了以上三个概念,要计算一个pcm音频流的码率是一件很轻松的事情:采样率x采样大小x声道数。
例如:采样率为44.1khz,采样大小为16bit,双声道的pcm编码的wav文件,它的码率是44.1k x 16 x 2 = 1411.2kb/s
音频采集
使用ffmpeg指令采集音频:ffmpeg -f avfoundation -i :0 out.wav。注意: -i 后面的参数表示为采集视频或音频 若 0: 表示采集视频,:0 表示采集音频。 0 代表的是输入设备所在的通道数,该参数不是一个固定值,要根据电脑当前输入设备实际所在的通道为准。out.wav 表示采集的音频保存在当前目录下,文件名为out.wav
查询输入设备所在通道数指令为:ffmpeg -f avfoundation -list_devices true -i "",在控制台即可看到支持avfoundation协议的音视频输入设备所在通道:
我们可以看到分别有三个视频设备以及三个音频设备,我们当前需要通过电脑的麦克风进行音频采集,所以实际指令为:ffmpeg -f avfoundation -i :1 out.wav
音频播放
使用指令:ffplay out.wav 播放采集到的音频文件