FFMPEG结构体分析:AVFormatContext
来源:互联网 发布:高职大数据专业课程 编辑:程序博客网 时间:2024/05/02 17:32
注:写了一系列的结构体的分析的文章,在这里列一个列表:
FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContext
FFMPEG结构体分析:AVCodecContext
FFMPEG结构体分析:AVIOContext
FFMPEG结构体分析:AVCodec
FFMPEG结构体分析:AVStream
FFMPEG结构体分析:AVPacket
FFMPEG有几个最重要的结构体,包含了解协议,解封装,解码操作,此前已经进行过分析:
FFMPEG中最关键的结构体之间的关系
在此不再详述,其中AVFormatContext是包含码流参数较多的结构体。本文将会详细分析一下该结构体里每个变量的含义和作用。
首先看一下结构体的定义(位于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:时长(单位:微秒us,转换为秒需要除以1000000)
int bit_rate:比特率(单位bps,转换为kbps需要除以1000)
AVDictionary *metadata:元数据
视频的时长可以转换成HH:MM:SS的形式,示例代码如下:
视频的原数据(metadata)信息可以通过AVDictionary获取。元数据存储在AVDictionaryEntry结构体中,如下所示
每一条元数据分为key和value两个属性。在ffmpeg中通过av_dict_get()函数获得视频的原数据。
下列代码显示了获取元数据并存入meta字符串变量的过程,注意每一条key和value之间有一个"\t:",value之后有一个"\r\n"
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析 AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPEG结构体分析:AVFormatContext
- FFMPeg代码分析:AVFormatContext结构体
- FFMPeg代码分析:AVFormatContext结构体
- FFMPEG结构体分析一:AVFormatContext
- (13) FFMPEG结构体分析:AVFormatContext
- FFmpeg中结构体AVFormatContext
- ffmpeg之AVFormatContext结构体
- FFMpeg学习笔记 AVFormatContext结构分析
- Ffmpeg结构体——AVFormatContext
- 使用css及简单的js实现酷炫的响应式slider
- 三大WEB服务器对比分析 (apache ,lighttpd,nginx)
- Mocapy++ in Heart
- Django快速学习搭建blog项目
- Android:EditText动态输入监听TextWatcher
- FFMPEG结构体分析:AVFormatContext
- C++拷贝构造函数、赋值运算符重载函数使用总结
- 我是如何利用一个只有500人的QQ通过人性的弱点来变现的
- day8-9(二)
- bzoj 1977 [BeiJing2010组队]次小生成树 Tree [严格的次小生成树]
- opt/buildroot-gcc342/bin/mipsel-linux-gcc: Command not found解决办法
- 文件操作
- CoreData—使用进阶
- 域名获取IP