• 音频重采样时

    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