- 音频重采样时
int swr_convert(struct SwrContext s, uint8_t *out, int out_count,
const uint8_t in , int in_count);
in和out都只用下标为0的数据,不管是packet模式还是planer模式。只有在planer模式下才会选择使用其他下标,一般自己写的代码都只用0下标的数据就可以
- 音频采集 -> 编码aac
电脑采集的格式是s16 —-> 重采样到fltp(aac编码只支持fltp)
- 音频解码 -> pcm(fltp)
aac —-> pcm(fltp) —-> pcm(s16)
注:因为播放的时候不支持fltp播发
- ffmpeg编码的aac数据需要自己添加adts头部
- 解码aac数据时可以从av_read_frame读取一帧的packet数据,也可以从网络流或者文件里读取adts头,解析aac_frame的长度,从而获取aac_frame的数据。需要注意的是解析出来的长度=aac_header_len + aac_frame_len