一.流程
解复用就是读取本地文件或网络流,将解封装后的音频和视频数据分别保存到缓存队列中
解复用的一般流程如下:
1.avformat_open_input
int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options);
该函数的作用就是打开文件,尽可能的收集各方面的信息并填充AVFormatContext结构体,基本上是做了除过解码之外的所有工作
这里要注意参数fmt和options,fmt用来指定输入格式,如果非空,强制以此参数指定的格式打开,否则自动检测输入格式,因此通常将fmt设置为nullptr
options可以打开码流前指定各种参数,比如:探测时间/超时时间/最大延时等,在打开网络流的时候非常有用
2.avformat_find_stream_info
int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **op