音频重采样
2020-08-09 本文已影响0人
想成为大牛的程旭元
什么是音频重采样
将音频三元组(采样率、采样大小、通道数)的值转换为另一组值。
一旦他们三个中其中一个发生变化,就叫重采样
。
例如:44100/16/2 转成48000/16/2
为啥要重采样
- 从设备上采集的音频数据和编码器要求的不一样
- 扬声器要求的音频数据与要播放的音频数据不一样
- 更方便运算(回音消除的时候,把声道数改成单声道,只有单声道的声音是最好处理的)
如何知道是否需要进行重采样
- 要了解音频设备参数,不同的平台都有设备管理,在设备管理里面,都能找到一些参数,采样率多少
- 查看ffmpeg源码,来看参数多少,ffmpeg有所有的编码器的参数
使用ffmpeg重采样步骤
- 创建重采样上下文,上下文是连接上面一个过程和下面一个过程的桥梁
- 设置相关的参数
- 初始化重采样
- 进行重采样
几个重要的API
1. swr_alloc_set_opts
实现2个功能,
功能一,创建一个上下文
功能二,重采样参数的设置
2. swr_init
对上下文进行初始化
3. swr_convert
对音频帧的转换
4. swr_free
释放上下文