【云享读书会第13期】第二章视频文件的封装格式

举报
孙小北 发表于 2022/07/22 22:11:06 2022/07/22
【摘要】 FFmpeg 支持很多封装格式,包括 **MP4、FLV、MKV、TS** 等视频封装格式、**MP3、AAC** 等音频封装格式以及 **RTMP、RTSP、HLS** 等网络协议封装格式。WMA 音频。

FFmpeg的视频封装格式

  • FFmpeg 支持很多封装格式,包括 MP4、FLV、MKV、TS 等视频封装格式、MP3、AAC 等音频封装格式以及 RTMP、RTSP、HLS 等网络协议封装格式。WMA 音频。

MP4 封装格式

  • MP4 封装格式基本上可以认为是日常生活和工作中最常见的视频文件格式,主要是由于其广泛的适用性,不仅在PC端(windows、mac、linux)支持的非常好,而且在移动端(Android、iOS)也能流畅播放。

MP4 格式标准

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(容器)
    image-20220722214032330.png

MP4 ftyp Box

  • ftyp Box,一般位于文件开始位置,其中包含了 MP4 视频文件的类型、版本、兼容协议等信息。
    image-20220722215756961.png

MP4 moov容器

  • moov 容器中包含了 MP4 视频文件的媒体数据信息,内部又包含两个子容器:mvhd和trak,前者定义了文件头信息,后者定义了媒体文件中的track信息。
  • moov 容器一般默认会生成在 MP4 文件结尾,在线播放时需要加载完整个文件才能正常打开,为了能够快速打开视频,需要把 moov 容器放在 MP4 文件的前面。
    image-20220722215809042.png

MP4 mdat Box

mdat Box,用来存放媒体文件的实际数据内容mdat Box,用来存放媒体文件的实际数据内容。
image-20220722215818208.png

小结

通过本章内容,学习了并了解视频文件的封装格式、编码格式,掌握了FFmpeg查看和处理视频媒体信息的方法。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。