是什么是重采样
- 将音频三元组(采样率,采样大小和通道数)的值转成另外一组值
- 三元组其中任意一个值发生改变就称为重采样, 例如44100/16/2 转成 48000/16/2
为什么要重采样
- 从设备采集的音频数据与编码器要求的数据不一致
- 扬声器要求的音频数据与要播放的音频数据不一致
- 更方便运算(回音消除须使用单声道,需要先转换)
如何知道是否需要进行重采样
- 要了解音频设备的参数(在设备管理中查看相应要求)
- 查看ffmpeg源码(包括各平台几乎所有编解码器实现)
重采样的步骤
- 创建重采样上下文
- 设置参数
- 初始化重采样
- 进行重采样
几个重要的API
- swr_alloc_set_opts(创建上下文,设置参数)
- swr_init(初始化)
- swr_convert(具体音频帧转换)
- swr_free(释放上下文占用资源)