1、大体流程
- (1)打开视频文件
- (2)获取视频流
- (3)得到流的编码器
- (4)获取该编码器的具体信息
- (5)根据(3)(4)查找编解码器
- (6)打开编码器
- (7)初始化SDL显示图像需要的环境
- (8)读取数据帧
- (9)解码数据帧
- (10)将解码得到的数据帧用SDL显示出来
2、解码函数分析
(1)av_register_all() 注册库
(2)avformat_open_input(&pFormatCtx, filepath, NULL, NULL)
作用:打开视频文件,把流信息填充到pFormatCtx指向的AVFormatContext结构体中。
参数意义:
- pFormatCtx是AVFormatContext结构体的指针
- filepath 就是要播放视频的地址啦
- 后面两个参数用来指定特殊的文件格式,缓冲大小和格式参数,但如果把它们设置为空 NULL 或 0, 将自动检测这些参数。
(3)avformat_find_stream_info(pFormatCtx, NULL)
作用:如果上面打开视频文件的函数获取到的流信息不完整,就要用这个函数获取完整的流信息,继续放到 AVFormatContext结构体中。事实上,上面的函数只打开了