学习ffmpeg 结构体之间关系

FFmpeg 有多个重要的结构体,解协议,解分装,解码,解封装。
解协议:http,rstp,rtmp,mms。
AVIOContext,URLProtocol,URLContext主要存储视频音频试用的协议类型及状态,URLProtocol存储输入视频音频的封装格式。每种协议都对应一个URLProtocol结构

解封装:flv,avi,rmvb,mp4
AVFormatContext 主要存储视频音频封装格式中包含的信息;
AVInputFormat存储视频音频试用的封装格式。
每种视频音频封装格式都对应一个AVInputFormat结构。

解码:h264,mpeg2,aac,mp3,avs(真的超级多一页都显示不完,包含摄像头,监控,电视等等几乎能有视频音频的地方都有解码器)
视频音频都有视频流会音频流。
每个AVStream存储一个视频音频流的相关数据。
每个AVStream对应一个AVCodecContext,存储该视频音频的解码方式相关数据。
每个AVCodecContext中对应一个AVCodec,包含该视频音频对应的解码器,每种解码器对应一个AVCodec结构。

存数据:
视频每个结构都是存一帧(一张图)。音频可能好几帧。
解码前的数据:AVPacket;
解码后的数据:AVFormat;

关系是这样:(引用雷神的原图,雷神天堂一路走好,愿天堂永无代码)


学习ffmpeg 结构体之间关系_第1张图片
image.png

你可能感兴趣的:(学习ffmpeg 结构体之间关系)