ffmpeg源码解析(十二)FFmpeg的主要结构体概述
发布时间
阅读量:
阅读量
FFMPEG中包含大量结构体,其中最为关键的结构体可划分为以下几个类别:
a) 协议解析(http, rtsp, rtmp, mms)
AVIOContext、URLProtocol以及URLContext主要用于保存与视音频相关协议的类型及运行状态。URLProtocol具体记录了输入视音频所采用的封装格式。每一种协议都会对应一个独立的URLProtocol结构。(需注意,在FFMPEG中,文件也被视为一种特殊的协议“file”)
b) 封装格式解析(flv, avi, rmvb, mp4)
AVFormatContext用于存储视音频封装格式中的相关信息;AVInputFormat则记录了输入视音频所使用的封装格式。每种不同的视音频封装格式都对应着一个特定的AVInputFormat结构。
c) 解码处理(h264, mpeg2, aac, mp3)
每个AVStream用于保存一个视频或音频流的相关信息;每个AVStream对应一个AVCodecContext,其中存储了该视频或音频流所采用解码方式的具体参数;而每个AVCodecContext内部又关联着一个AVCodec,用于保存对应的解码器信息。每种解码器都对应着一个独立的AVCodec结构。
d) 数据存储
对于视频数据而言,通常每个结构用于存储一帧内容;而音频数据可能涉及多个帧。
在解码之前的数据以
全部评论 (0)
还没有任何评论哟~
