FFMpeg 解封装
本例子实现的是将音视频分离,例如将封装格式为 FLV、MKV、MP4、AVI 等封装格式的文件,将音频、视频分离开来。
大致的解封装流程:
1.首先要对解复用器进行初始化。
2.其次将输入的封装格式文件给到解复用器内。
3.最后利用解封装对 Container 进行解封装。
根据流程可以推到出大致的代码流程:
-
首先对输入文件(Container 文件)、输出文件(Video/Audio 进行处理),方便后面的使用;
-
其次打开输入文件,并分配 Format Context,从输入文件中得到流信息
-
之后打开视频、音频编码器 Context,针对视频数据,分配图像 image。
-
分配 frame 结构,初始化 packet,从输入文件中读取 frame 信息,并之后进行解码 packet。
-
最后释放各种分配的数据信息。
ffmpeg解封装案例分析
下面讨论如何利用ffmpeg提供的API函数进行多媒体文件的解封装(demux)过程。
在讲解之前,我们先复习一些基本的多媒体文件知识。
容器格式:
不管是音频文件还是视频格式的文件,都是一个多媒体的容器,即container,比如常见的视频容器格式有avi、mp