【读书会第13期】《FFmpeg从入门到精通》学习笔记2:学习FFmpeg的视频封装格式
前言:
之前没接触过音视频处理这块的内容,刚好这次领读会分享《FFmpeg从入门到精通》这本书,借此机会了解一下相关的知识。本次笔记为领读视频第二章内容。
一、FFmpeg支持的封装格式:
1.视频封装格式:MP4、FLV、MKV、TS等
2.音频封装格式:MP3、AAC等
3.网络协议封装格式:RTMP、RTSP、HLS等
二、本章主要学习MP4封装格式
MP4封装格式是当前日常生活和工作中最常见的视频文件格式,适用性广泛:PC端(windows、mac、linux)、移动端(Android、iOS)
三、MP4格式标准
MP4格式标准为ISO-14496 Part 12和ISO-14496 Part 14,具体特征有:
1.MP4文件由许多Box和FullBox组成
2.FullBox是Box的扩展,在Header中增加了8位version信息和24位flags信息
3.每个Box由Header和Data两部分组成
4.Header中包含了整个Box的长度大小(size)和类型(type)
5.Data中包含了实际的数据,可以是纯数据,也可以是子Box。当Box中的Data是一系列子Box时,这个Box又被称为Container(容器)
四、MP4 ftyp Box
一般位于文件开始位置,其中包含了MP4视频文件的类型、版本、兼容协议等信息
五、MP4 moov容器
moov容器中包含了MP4视频文件的媒体数据信息,内部又包含两个子容器:mvhd和trak,前者定义文件头信息,后者定义媒体文件中的track信息
moov容器一般默认生成在MP4文件结尾,在线播放时需要加载完整个文件才能正常打开,为了能够快速打开视频,需要把moov容器放在MP4文件的前面
六、MP4 mdat Box
用来存放媒体文件的实际数据内容。
总结:
FFmpeg可以处理多种音视频封装格式,本次领读章节带领我们对常用的MP4格式进行了详细的学习,了解了MP4格式标准及其文件结构
后续空闲时间可以再对其他音视频格式增进一下了解
- 点赞
- 收藏
- 关注作者
评论(0)