首页 > 其他 > 详细

ffmpeg 学习:主要结构体之间关系

时间:2020-01-15 16:35:41      阅读:76      评论:0      收藏:0      [点我收藏+]

背景

学习例程源码的时候,搞不清楚各结构体之间是什么含义。

解析

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 学习:主要结构体之间关系

原文:https://www.cnblogs.com/schips/p/12197255.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!