1、什么是音频重采样
将音频三元组(采样率、采样大小、通道数)的值转成另外一组值.
例如 : 将44100/16/2 转成 48000/16/2
音频三元组中的任何一个值发生变化都属于音频重采样.
2、为什么要重采样
-
从设备采集的音频数据与编码器要求的数据不一致
-
扬声器要求的音频数据与要播放的音频数据不一致
-
更方便运算,例如: 回音消除中, 重采样将数据变成单声道, 数据更好处理
3、如何知道是否需要进行重采样
-
要了解音频设备的参数, 从不同平台下的设备管理中获取采集的参数和播放的参数.
-
查看ffmpeg源码, ffmpeg是跨平台的, 各个平台的的编解码器都囊括进去了.
4、重采样的步骤
-
创建重采样上下文 : 连接前后操作的桥梁, 保证操作的连续性
-
设置参数(音频三元组的参数)
-
初始化重采样
-
进行重采样
5、几个重要的API
- swr_alloc_set_opts : 设置重采样的参数并获取上下文
- swr_init : 对上下文进行初始化
- swr_convert : 对音频帧进行转换
- swr_free : 释放上下文资源