制作一个播放器
1、注册编码器和解码器所有的函数。
2、创建AvFormatContext 指针。
3、使用avformat_open_input()函数打开文件。
4、遍历AvFormatContext->streams数组 查找音频和视频码流的索引值,根据AvFormatContext中type是否为AVMEDIA_VIDEO,AVMEDIA_AUDIO,并将索引保存下来。
5、根据音视频码流索引值,将音频码流和视频码流取出来
AVStream * audioStream=AvFormatContext->stream[index];
AVStream * videoStream=AvFormatContext->stream[index];
6、根据音频码流和视频码流查找 对应的解码器类型
AVCodecContext *audioCodecContext=audioStream->codec;
AVCodec *audioCodec=av_find_decoder(audioCodecContext->codec_id);
7、使用avcodec_open2打开解码器;
8、使用av_read_frame 读取出AVPacket 分别放入音频和视频 Packet队列。
9、开启音频和视频解码线程,分别从Packet中读取数据,进行解码。
10、进行音视频同步。