准备
SDL2库
cmake构建
h264文件
解码
解码即将264格式解析成帧
ffmpeg解码流程
SDL显示流程
ffmpeg 解码常见api
av_register_all
初始化所有组件,只有调用了该函数,才能使用复用器和编解码器.
avformat_open_input
打开一个文件并解析。可解析的内容包括:
视频流、音频流、视频流参数、音频流参数、视频帧索引。
int avformat_open_input( AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options );
- AVFormatContext **ps:
封装的上下文 - url:文件路径
- ff_const59 AVInputFormat *fmt:输入流格式
- AVDictionary **options:传入的附加参数
avformat_network_init();//打开网络视频流
av_open_input_file()
读取文件头部把信息保存到AVFormatContext结构体
av_find_stream_info()
为pFormatCtx->streams填充上正确的信息
CODEC_TYPE_VIDEO
通过判断得到视频流类型
avcodec_find_decoder()
查找解码器
avcodec_open()
打开编解码器
avcodec_alloc_frame()
分配空间保存帧数据
av_read_frame()
不断从流中提取帧数据
avcodec_decode_video()
解码视频流
avcodec_close()
关闭解码器
avformat_close_input_file()
关闭输入文件