FFMpeg主要数据结构

FFMpeg中主要数据结构存在包含关系,如下标题显示的就是包含层级的关系。

AVFormatContext ->  AVStream -> AVCodecContext -> AVCodec,其中后者是前的的数据成员。

AVFormatContext是一个贯穿始终的数据结构,很多函数都用到它作为参数,是输入输出相关信息的一个容器。他的主要成员如下:
1. AVInputFormat和AVOutputFormat,同一时间只能存在一个。当播放视频时AVInputFormat生效,录制视频时则AVOutputFormat生效。
2. AVStream是继AVFormatContext之后第二个贯穿始终的数据结构,它保存于数据流相关的编解码器、数据段等信息,还包含“流”这个概念中的一些信息。
2.1 AVCodecContext 保存AVCodec指针和与codec相关的数据。在AVStream初始化后,AVCodecContext的初始化时Codec使用中最重要的一环。 AVCodecContext 中的 codec_type , codec_id 二个变量对于encoder/decoder的匹配来说,最为重要。
AVCodecContext中有两个成员:AVCodec,AVFrame。
2.1.1 AVCodec记录了所要使用的Codec的信息并有5个函数:init,encoder,close,decode,flush来完成编解码工作。
2.1.2 AVFrame中主要包饭了编码后的帧信息。
typedef struct AVFrame {
    FF_COMMON_FRAME
} AVFrame;
其中FF_COMMON_FRAME是以宏出现的,由于编码过程中AVFrame中的数据是要经常存取的,为了加速,采取这样的代码手段。

转载于:https://www.cnblogs.com/wuwangSaber/archive/2012/04/25/2470255.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值