FFmpeg的视频封装格式
FFmpeg支持很多封装格式,包括MP4、FLV、MKV、TS 等视频封装格式、MP3、AAC等音频封装格式以及RTMP、RTSP、HLS等网络协议封装格式。以下我们简单介绍两种比较流行的使用.
1. MP4的相关学习
1.1 封装格式
MP4 封装格式基本上可以认为是日常生活和工作中最常见的视频文件格式,主要是由于其广泛的适用性,不仅在PC端(windows、mac、linux)支持的非常好,而且在移动端(Android、i0S)也能流畅播放。
1.2 格式标准
MP4 格式标准为ISO-14496 Part 12和ISO-14496 Part 14,具体特征如下:
MP4 文件由许多Box和FullBox。
FullBox是 Box 的扩展,在Header中增加了8位version信息和24位的flags信息。
每个Box由Header和 Data 两部分组成。
Header中包含了整个Box的长度大小(size)和类型(type).
Data中包含了实际的数据,可以是纯数据,也可以是子Box。当Box中的 Data是一系列子Box时,这个Box又被称为Container(容器)。
1.3 关键BOX的介绍
1.3.1 MP4 ftyp Box
ftyp Box,一般位于文件开始位置,其中包含了MP4视频文件的类型、版本、兼容协议等信息。