AVFormatContext是个贯穿全局的数据结构,很多函数都要用它作为参数。FFmpeg代码中对这个数据结构的注释是 format I/O context,此结构包含了一个视频流的格式内容。其中存AVInputFormat(AVOutputFormat,但是同一时间 AVFormatContext内只能存在其中一).AVStream,AVPacket区儿个重要的数据结构以及一些其他的相关信息,比如 title、Hthor,copyright等.另外,企有一些可能在编解码中会用到的信息,诸如 duration,file size,bit_rate等.
由于 AVFormatConext 结构包含许多信息,因此初始化过程是分步完成的,而且其中有些变量如果没有值可用,也可不初始化。 但是由于一般声明都使用指针,因此分配内存的过程不可少.
如下代码初始化了 AVFormatContext:
1 | AVFormatContext *pFormatCtx; |
结构体定义如下:
1 | //mux:视频/音频封装 复用 |