FFmpeg结构体 AVFormatContext分析
AVFormatContext 结构体定义在 <libavformat/avformat.h> 中。
在使用 FFmpeg 进行开发的时候,AVFormatContext 是一个贯穿始终的数据结构,很多函数 都要用到它作为参数。它是 FFmpeg 解封装(flv,mp4,rmvb,avi)功能的结构体。下面看几个 主要变量的作用(在这里考虑解码的情况):
struct AVInputFormat *iformat; //输入数据的封装格式
AVIOContext *pb; //输入数据的缓存
unsigned int nb_streams; //视音频流的个数
AVStream **streams; //视音频流
char filename[1024]; //文件名
int64_t duration; //时长(单位:微秒ms,转换为秒需要除以1_000_000)
int bit_rate; //比特率(单位bps,转换为kbps需要除以1_000)
AVDictionary *metadata; //元数据
duration计算
参考
FFMPEG结构体分析:AVFrame
FFMPEG结构体分析:AVFormatContext
FFMPEG结构体分析:AVCodecContext
FFMPEG结构体分析:AVIOContext
FFMPEG结构体分析:AVCodec
FFMPEG结构体分析:AVStream
FFMPEG结构体分析:AVPacket