当前位置:网站首页>FFMPEG关键结构体——AVFormatContext

FFMPEG关键结构体——AVFormatContext

2022-07-05 23:56:00 陈小帅hh

一、AVFormatContext结构体

AVFormatContext是存储音视频封装格式中包含的信息的结构体,也是FFmpeg中统领全局的结构体,对文件的封装、编码操作从这里开始。

结构体的定义位于libavformat中的avformat.h
在这里插入图片描述

二、常见变量

struct AVInputFormat *iformat;//输入数据的封装格式。仅解封装用,由avformat_open_input()设置。

struct AVOutputFormat *oformat;//输出数据的封装格式。仅封装用,调用者在avformat_write_header()之前设置。

AVIOContext *pb;// I/O上下文。
解封装:由用户在avformat_open_input()之前设置(然后用户必须手动关闭它)或通过avformat_open_input()设置。
封装:由用户在avformat_write_header()之前设置。 调用者必须注意关闭/释放IO上下文。

unsigned int nb_streams;//AVFormatContext.streams中元素的个数。

AVStream **streams;//文件中所有流的列表。

char filename[1024];//输入输出文件名。

int64_t start_time;//第一帧的位置。

int64_t duration;//流的持续时间

int64_t bit_rate;//总流比特率(bit / s),如果不可用则为0。 

int64_t probesize;
//从输入读取的用于确定输入容器格式的数据的最大大小。
仅封装用,由调用者在avformat_open_input()之前设置。

AVDictionary *metadata;//元数据

AVCodec *video_codec;//视频编解码器

AVCodec *audio_codec;//音频编解码器

AVCodec *subtitle_codec;//字母编解码器

AVCodec *data_codec;//数据编解码器

int (*io_open)(struct AVFormatContext *s, AVIOContext **pb, const char *url, int flags, AVDictionary **options);
//打开IO stream的回调函数。
void (*io_close)(struct AVFormatContext *s, AVIOContext *pb);
//关闭使用AVFormatContext.io_open()打开的流的回调函数。
原网站

版权声明
本文为[陈小帅hh]所创,转载请带上原文链接,感谢
https://blog.csdn.net/PPPPPPPKD/article/details/125586664