FFmpeg在C++子線程中解碼音頻資料,得到資料包AVPacket
AVPacket:存放原始音頻/視訊的壓縮包。

C++多線程解碼音頻資料
1、注冊解碼器并初始化網絡
av_register_all();
avformat_network_init();
2、打開檔案或網絡流
AVFormatContext *pFormatCtx = avformat_alloc_context();
avformat_open_input(&pFormatCtx, url, NULL, NULL);
3、擷取流資訊
avformat_find_stream_info(pFormatCtx, NULL)
4、擷取音頻流
pFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO
5、擷取解碼器
AVCodec *dec = avcodec_find_decoder(audio->codecpar->codec_id);
6、利用解碼器建立解碼器上下文
AVCodecContext *avCodecContext = avcodec_alloc_context3(dec); avcodec_parameters_to_context(audio->avCodecContext, audio->codecpar)
7、打開解碼器
avcodec_open2(audio->avCodecContext, dec, 0)