音频重采样

445 阅读1分钟

1、什么是音频重采样

将音频三元组(采样率、采样大小、通道数)的值转成另外一组值.

例如 : 将44100/16/2 转成 48000/16/2

音频三元组中的任何一个值发生变化都属于音频重采样.

2、为什么要重采样

  • 从设备采集的音频数据与编码器要求的数据不一致

  • 扬声器要求的音频数据与要播放的音频数据不一致

  • 更方便运算,例如: 回音消除中, 重采样将数据变成单声道, 数据更好处理

3、如何知道是否需要进行重采样

  • 要了解音频设备的参数, 从不同平台下的设备管理中获取采集的参数和播放的参数.

  • 查看ffmpeg源码, ffmpeg是跨平台的, 各个平台的的编解码器都囊括进去了.

4、重采样的步骤

  • 创建重采样上下文 : 连接前后操作的桥梁, 保证操作的连续性

  • 设置参数(音频三元组的参数)

  • 初始化重采样

  • 进行重采样

5、几个重要的API

  • swr_alloc_set_opts : 设置重采样的参数并获取上下文
  • swr_init : 对上下文进行初始化
  • swr_convert : 对音频帧进行转换
  • swr_free : 释放上下文资源