Scorm与mP4都是不常见的视频封装格式的格式吗

日常生活中看到的视频文件的後缀名如 .mp4、.avi、.rmvb 都是属于视频文件的不常见的视频封装格式格式。所谓不常见的视频封装格式格式就是以怎样的方式将视频轨、音频轨、芓幕轨等信息组合在一起。说得通俗点视频轨相当于饭,而音频轨相当于菜不常见的视频封装格式格式就是一个碗或者一个锅,是用來盛放饭菜的容器

视频文件的不常见的视频封装格式格式并不影响视频的画质,影响视频画面质量的是视频的编码格式

下面介绍常见嘚视频不常见的视频封装格式格式 - MP4

MP4 是一种较为全面的容器格式,被认为可以在其中嵌入任何形式的数据,不过我们常见的大部分的 MP4 文件存放的 AVC(H.264) 或 MPEG-4(Part 2) 编码的视频和 AAC 编码的音频MP4 格式的官方文件后缀名是 “.mp4”,还有其他的以 mp4 为基础进行的扩展或者是阉割版的格式如 M4V、 3GP、F4V 等。

MP4 文件中所有数据都装在 box 中也就是说 MP4 由若干个 box 组成,每个 box 有类型和长度包含不同的信息,可以将 box 理解为一个数据对象块box 中可以嵌套另一个 box,这种 box 称为 container box

MP4 文件 box 以树形结构的方式组织, 一个简单的 MP4 文件由以下 box 结构数组成(mp4info 工具查看 MP4 文件结构):

根节点之下主要包含鉯下三个 box 节点:

  • 一个 MP4 文件有且仅有一个 “ftyp” 类型的 box,作为 MP4 格式的标识并包含一些关于文件的一些信息;
  • MP4文件的媒体数据包含在 “mdat” 类型的 box(Midia Data Box)中该类型的 box 也是 container box,可以有多个也可以没有(当媒体数据全部引用其他文件时),媒体数据的结构由 metadata 进行描述;

要更深入的了解 MP4 不常見的视频封装格式格式首先需要理解几个基本概念:

  1. track:表示一些 sample 的集合,对于媒体数据来说track 表示一个视频或音频序列

mp4 文件由若干个 box 组荿。下面是 box 结构示意图:

File Type Box 有且只有 1 个并且只能被包含在文件层,不能被其他 box 包含该 box 应该被放在文件的最开始,指示该 MP4 文件应用的相关信息

mvhd 结构如下表,具体值以上面的 mvhd 字节举例:

创建时间(相对于 UTC 时间 零点的秒数)
文件媒体在 1 秒时间内的刻度值可以理解为 1 秒长度的時间单元数。值 0x0258 = 600
推荐播放速率高 16 位和低 16 位分别为小数点整数部分和小数部分,即 [16.16] 格式该值为 1.0 表示正常前向播放
保留位,固定全设为 0

“trak” box 的字节实例如下图其中黄色为 “trak” box 头,绿色为 “tkhd”蓝色为 “edts”(一个可选 box),红色为一部分 “mdia”

“tkhd” 结构如下表,具体值以上面嘚 tkhd 字节举例:

flag按位或操作结果值,定义见表格后说明
创建时间(相对于 UTC 时间 零点的秒数)
track id 号不能重复且不能为 0,字节实例中值为 1
视频層默认为 0,值小的在上层
高均为 [16.16] 格式值,用于播放时的展示宽高

表中 flag 为按位或操作结果值预定义如下:

“mdia” 也是个 container box,其子 box 的结构和種类还是比较复杂的先来看一个 “mdia” 的实例结构树图。

“free” 中的内容是无关紧要的可以被忽略。该 box 被删除后不会对播放产生任何影響

该 box 包含于文件层,可以有多个也可以没有(当媒体数据全部为外部文件引用时),用来存储媒体数据数据直接跟在 box type 字段后面,具体數据结构的意义需要参考 metadata(主要在sample table中描述)

我要回帖

更多关于 不常见的视频封装格式 的文章

 

随机推荐