所谓的重采样,就是改变音频的采样率、sample format、声道数等参数,使之按照我们期望的参数输出。
SwrContext常用函数:
struct SwrContext *swr_alloc(void);
此函数用于申请一个SwrContext结构体
int swr_init(struct SwrContext *s);
当设置好相关的参数后,使用此函数来初始化SwrContext结构体
struct SwrContext *swr_alloc_set_opts(struct SwrContext *s,
int64_t out_ch_layout, enum AVSampleFormat out_sample_fmt, int out_sample_rate,
int64_t in_ch_layout, enum AVSampleFormat in_sample_fmt, int in_sample_rate,
int log_offset, void *log_ctx);
分配SwrContext并设置/重置常用的参数,参数包含了输入输出参数中sample rate(采样率)、sample format(采样格式)、channel layout等
int swr_convert(struct SwrContext *s, uint8_t **out, int out_count,
const uint8_t **in , int in_count);
此函数便是将输入的音频按照定义的参数进行转换,并输出
void swr_free(struct SwrContext **s);
释放掉SwrContext结构体并将此结构体置为NULL;
基本用法如下:
申请结构体(swr_alloc、swr_alloc_set_opts)—>设置相关参数—>初始化—>转换—->释放结构体