ffmpeg 解码流程和解码函数的讲解

引言
ffmpeg 是一个非常好的开源音视频项目 ,想学习它 必须从最基本的解码 开始 下面就简单介绍下他的解码流程和解码函数
1.FFmpeg的解码函数

ffmpeg 解码流程和解码函数的讲解
av_register_all() 注册所有组件
avformat_open_input() 打开输入视频文件
avformat_find_stream_info() 获取视频文件信息
avcodec_find_decoder() 查找编码器
avcodec_open2() 打开编码器
av_read_frame() 从输入文件读取一帧压缩数据
AVPacket
avcodec_decode_video2() 解码一阵压缩数据
AVFrame
avcodec_close() 关闭解码器
avformat_close_input() 关闭输入视频文件
2.FFmpeg解码的数据结构

ffmpeg 解码流程和解码函数的讲解

AVFormatContext 要申请AVFormatContext 作为操作上下的线索是核心内容
AVFormatContext 包含了

AVInputFortmat 文件的封装格式
AVStream 是个数组,一般视频就是两个,视频流和音频流,AVStream[0]视频流,AVStream[1]音频流
AVCodecContext 处理编解码,分装格式在编解码之上
AVCodec 每个解码器都会拥有一个自己的静态对像,每种音视频对应一个结构体
AVPacket 存储一帧压缩编码数据
AVFrame 存储一帧解码后像素(采样)数据

通过对上述知识点的理解 也会慢慢理解音视频解码流程