ffmpeg常用结构体总结

AVFormatContext描述了一个媒体文件或媒体流的构成和基本信息,位于avformat.h文件中。 

int nb_streams:AVFormatContext中所含stream的个数;

AVStream**stream :文件中所有的音视频个数;

char filename[]:输入活或者输出的文件名;

 

AVStream 音频流和视频流的一些信息。

int index:音视频文件在AVFormatContext中的位置

AVRational time_base:时间基,解码时将pts转换为实际时间;

int64_t duration: 该流的时长,单位为time_base;

AVCodecContext *codec:与此流关联的编解码器的上下文;

 

AVPacket 此结构体包含了压缩数据,音频的话例如mp3 ,AAC,视频的话例如h264,hevc;

data:包含的压缩数据,例如如果h264数据的话,一个packet几乎等同于一个nal数据;

int size: 数据大小;

int stream_index:是音频数据还是视频数据;

int64_t pts:单位AVStream->time_base;

int64_t dts:单位AVStream->time_base;

AVFrame 此结构体包含了原始数据 音频的话可能是YUV420P,RGB24像素数据,音频的话可能是PCM采样数据

uint8_t *     data[] packet:数据的话data[0] 是一个完整的rgb24数据,planar数据的话data【0】Y数据,data【1】U数据,data【2】V数据

linesize:一行数据的大小,通常比一行像素的数据要大

width,height:图像的宽高

nb_samples:音频的采样个数,一个AVFrame中含有多少个采样数据,比如1024个

key_frame:是否是关键帧

format :数据的格式

pic_type:图像的格式

int64_t     pkt_pts:帧的展示时间

AVCodecContext此结构体 包含了编解码器的一些信息

AVMediaType     codec_type:编解码器所属地额类型,是音频还是视频。

AVCodec *codec:此结构体关联的编解码器-解码时avcodec_open2 会为此赋值,编码时需要先创建AVCodec,然后在avcodec_open时为此 变量赋值

int width,height: 图像的宽高

int channel_layout: 音频的声道个数

AVCodec 包含的编解码器的具体信息

const char * name: 编解码器的名称

const char * long_name :详细的编解码器名称

enum AVMediaType  type :编解码器的类型

ffmpeg常用结构体总结_第1张图片

你可能感兴趣的:(音视频学习总结)