movievideo starr等于什么?

这里面的内容主要是分析mp4/3gp文件的層级结构详细的介绍了各种不同的box的结构等,网上有一些参考资源他们大多都是结合实际的例子来说明,篇幅较大而且笼统,建议讀者分多次结合网上资源来理解这部分内容

本章简单介绍了QuickTime movie atoms,以及这些atoms的布局和用法的具体细节本章中讨论的每种atom类型都有包含偏移量信息的附图,以及字段说明

本章分为以下主要部分:

? :media atoms和sample atoms不包含实际采样数据,如视频帧或音频采样 它们包含用于定位和解釋这些采样的元数据。

QuickTime movie atoms的atom类型为“moov” 这些atom作为描述movie数据的信息的容器。 该信息或元数据存储在多种不同类型的atom中 一般来说,只有元数據存储在movie原子中 movie的样本数据,例如音频或视频样本在movie atom中引用,但不包含在其中

list table的数据。 所有这些atom将在本文档的后面讨论

图2-1提供了┅个简单的单轨QuickTime movie的组织的概念图。图中的每个嵌套框表示属于其父atom的atom该图不显示任何atom的数据区域。这些区域在这部分的后面介绍

? 紸意:在单轨QuickTime movie文件中,其他的atoms可能存在但不显示在图2-1中。

您使用movie atoms来指定定义movie的信息即允许程序解释存储在其他位置的sample数据的信息。movie atom通瑺包含movie header atom其定义整个movie的时间尺度和持续时间信息,以及其显示特性现有movie可能包含movie profile atom,其中总结了movie的主要功能例如必要的编解码器和最大仳特率。此外movie

? 注意:如前所述,叶子atoms显示为白色框容器atoms显示为灰色框。

? 注意:profile atoms在QuickTime文件格式中已弃用 以下信息旨在记录包含profile atoms嘚现有内容,不应用于新开发

movie profile atom总结了movie的特征和复杂性,例如所需的编解码器和最大比特率以帮助播放器应用或设备快速确定他们是否具有播放movie的必要资源。

movie的特征通常包括movie的最大视频和音频比特率音频和视频编解码器类型的列表,movie的视频尺寸以及任何适用的MPEG-4配置文件囷级别 这是也可以通过更详细地检查movie文件的内容而获得的所有信息。 此摘要旨在允许应用程序或设备快速确定他们是否可以播放movie 它不咑算作为movie中其他地方找不到的信息的容器,不应该用作单独的一个

? 注意:实际上,不出现在profile atom中的特征并不意味着它不在movie中 profile atom本身可鉯不存在,或者可以仅列出movie特征集的子集 profile atom中列出的特征都是存在的,但列表不一定是完整的

创建profile atom时,可以省略movie中存在的某些要素但需要完全指定profile atom中包含的任何要素。例如包含视频的movie在profile atom中可以具有或可以不具有视频编解码器类型特征,但是如果在profile atom中包括任何视频编解碼器类型特征则必须在profile atom中列出每个所需的视频编解码器。

特征列表中的每个条目由四个32位字段组成:

  • 第一个字段保留必须设置为零。
  • 苐三个字段是特征码或名称一个32位无符号整型,通常最好解释为四个ASCII字符如:最大视频比特率特征具有特征码或名称“mvbr”。允许使用零特征代码值(0x而不是四个ASCII零字符)作为一个或多个名称/值对中的占位符。读者应忽略零值的特征码
  • 第四个字段是值,它也是一个32位芓段该值可以是有符号或无符号整数,或定点值或包含子字段,或由打包数组组成;它仅可以关于特定特征来解释

有关profile atoms的结构和内容嘚详细信息,请参阅

    标识atom类型的32位整数;必须设置为“mvhd”。 一个32位整数指定创建movie atom时的日期和时间(从1904年1月1日午夜起的秒数)。强烈建议使用协调世界时(UTC)指定此值 一个32位整数,用于指定更改movie atom时的日期和时间(从1904年1月1日午夜起的秒数)强烈建议使用协调世界时(UTC)指萣此值。 指示此movie的时间刻度的时间值即在其时间坐标系中每秒通过的时间单位的数量。例如以六十分之一秒测量时间的时间坐标系具囿60的时间标度。 以时间刻度单位表示movie持续时间的时间值请注意,此属性来自movie的track此字段的值对应于电影中最长track的持续时间。
  • 唯一允许的湔缀是“public.”和反向域所有其他前缀保留供将来使用。

? 注意:支持除“public”之外的通用顶级域(如果要分配)字符串“public”保留用于表礻公共媒体特征标签。

此规范定义了以下几个公共媒体特征标签其他公共和私人标签可以在规范之外定义;无法识别的标记应该被忽略。

    表示曲目(track)的内容已被内容作者标记为对媒体文件的呈现的辅助例如,评论音频或字幕轨道可以用这个标签标记因为它不是节目内容。洳果此标签不存在则如果轨道是备用组的成员,则轨道仍然可以被推断为用该特性标记并且使用“Track Exclude From Autoselection atom”将该轨道从自动选择中排除;请参閱Track Exclude From 表示轨道包含以轨道区域设置语言描述的可读内容,用于描述发生在节目音频中的音频和音频效果 表示轨道以其已指定语言环境的语訁提供易读内容,该语言已经编辑以便于阅读
  • 保留:必须设置为零的32位整数。
  • 名称:以空字符结尾的UTF-8或UTF-16字符串保存曲目名称(track name) 如果这是┅个UTF-16字符串,字符串必须以字节顺序标记(0xFEFF)开头

轨道可以具有多个具有不同语言代码的“tnam”atom。 通常每个轨道具有与轨道内容相同的語言的单个“tnam”atom是足够的。 备选轨道也可以具有'tnam' atoms; 它们的存在意味着该名称是轨道的好的用户可读标签

这个atom通常被暂时添加和删除以控制鼡于单个演示的movie的显示模式,但是它也可以被存储为永久movie文件的一部分

    指示movie的显示大小的16位小端整数:0表示movie应以其正常大小播放; 1表示movie应鉯双倍大小播放; 2表示电影应以半尺寸播放; 3表示电影应该缩放以填满屏幕; 4表示应当以其当前大小播放电影(该最后的值通常在print to video atom被暂时插入并苴movie已经临时调整时使用)。 一个8位布尔值其值为1,用于幻灯片放映在幻灯片播放模式下,每次按下向右箭头键movie前进一帧。音频静音 8位布尔值,其值通常为1表示movie在打开时应播放。由于在全屏模式下没有可见的控制器应用程序应始终将此字段设置为1,以防止用户混淆

track atom定义了movie的单个轨道。 movie可能由一个或多个曲目(tracks)组成 每个轨道独立于movie中的其他轨道并且携带其自己的时间和空间信息。 每个轨道atom包含其楿关联的媒体atom
轨道专门用于以下目的:

  • 包含媒体数据引用和说明(媒体轨道)。
  • 要包含修饰符轨道(补间等)
  • 包含流协议的包化信息(提示轨道)。 提示轨道可以包含对媒体样本数据或媒体样本数据的副本的引用 有关提示轨道的详细信息,请参阅

? 注意:QuickTime movie不能只包括提示轨道或修改轨道; 必须至少有一个媒体轨道。 此外不能从提示的movie中删除媒体轨道,即使提示轨道包含媒体样本数据的副本 - 除了提礻轨道整个未提示的电影必须保留。

? 注意图2-6包含可选的track profile atom'prfl' 轨迹配置文件atom在当前版本的QuickTime中已弃用,但可能存在于现有的QuickTime文件中 这裏的包含旨在记录包含profile atom的现有内容,它们不应当用于新的开发

    一个32位整数,指定此轨道atom中的字节数 标识atom类型的32位整数; 此字段必须设置為“trak”。

? 注意:profile atoms在QuickTime文件格式中已弃用 以下信息旨在记录包含profile atom的现有内容,不应用于新开发

  • 标识原子类型的32位整数;此字段必须设置為“tkhd”。

  • 为track header flags保留的三个字节这些标志指示如何在movie中使用track。以下标志有效(当设置为1时所有标志都被使能)。

  • 一个32位整数指示创建track header时嘚日期和时间(以秒为单位,自1904年1月1日起的秒数)强烈建议使用协调世界时(UTC)指定此值。

  • 一个32位整数指示track header更改时的日期和时间(以秒为单位,自1904年1月1日起的秒数)强烈建议使用协调世界时(UTC)指定此值。

  • 保留供Apple使用的32位整数将该字段设置为0。

  • 指示此曲目的持续时間(在movie的时间坐标系中)的时间值请注意,此属性来源于曲目的编辑此字段的值等于所有轨道编辑的持续时间的总和。如果没有编辑列表则持续时间是样本持续时间的总和,被转换为movie时间刻度

  • 保留供Apple使用的8字节值。将该字段设置为0

  • 一个16位整数,用于标识包含另一個数据的movie tracks的集合相同的标识符出现在组中其他track的每个“tkhd”atom中。 QuickTime从播放movie时要使用的组中选择一个曲目该选择可以基于诸如回放质量,语訁或计算机的能力的考虑
    值为零表示轨道不在备用轨道组中。
    使用备用曲目的最常见原因是提供不同语言的相同曲目的版本图 2-8 显示了幾个轨道的示例。视频轨道的备用组ID为0表示它不在备用组中(并且其语言代码为空;通常,视频轨道应具有相应的语言标签)三个声音軌道具有相同的组ID,因此它们形成一个替代组并且字幕轨道具有不同的组ID,因此它们形成另一个替换组轨道在实际的QuickTime文件中不相邻;这呮是示例轨道字段值的列表。

  • 一个16位的定点值表示该音轨的以多大的声音播放。 值1.0表示正常音量

  • 保留供Apple使用的16位整数。 将此字段设置為0

  • 与此轨道相关联的矩阵结构。 有关矩阵结构的说明请参见图2-3。

  • 一个32位定点数用于指定此轨道的宽度(以像素为单位)。

  • 指示此轨噵的高度的32位定点数以像素为单位。

一些替代轨道包含除主要内容的直接翻译(或非翻译书写形式)之外的东西评论轨道就是一个例孓。这些轨道不应自动选择在轨道中存在Track Exclude From Autoselection atom表示不应该自动选择该轨道。

这种轨道应该具有用户可读的名称以帮助用户识别轨道的目的。这些名称存储在“trak” atom内的user data('udta')atom内的一个或多个轨道名称('tnam')atom中每个atom被翻译成不同的语言。

    标识原子类型的32位整数;此字段必须设置为“txas”

QuickTime Movie中的视频轨道可以通过图像描述扩展发出清晰的光圈和像素宽高比信息。清洁光圈定义要显示的编码像素的部分像素宽高比是编码潒素的宽高比。概念上基于像素高宽比对编码像素进行解压缩,拉伸(或收缩)并且根据清洁孔径裁剪额外像素。

? 注意:QuickTime轨道在track header dimensionsΦ定义其内容的简单尺寸在没有轨道孔径模式维度原子的情况下,轨道头部中的尺寸用于所有模式

考虑到这种上下文,记录在图像描述中的尺寸定义了编码像素(编码尺寸)的尺寸实际显示的是应用像素宽高比和净光圈(显示尺寸)的结果。

尽管应用清洁孔径和像素寬高比的结果是用于最终显示的但是存在为了各种不同的有用的目的而显示存在于内容中的所有像素。解析QuickTime影片的读者需要允许这些不哃显示模式的信息以提供这种灵活性:

    在此模式下,清洁光圈和像素宽高比都会应用轨道的尺寸等于纯净光圈尺寸,其等于显示尺寸(具有一致的内容) 此模式适用像素宽高比,但不适用于清晰光圈以正确的纵横比呈现图像,但是将呈现存在于源材料中的图像之外嘚额外像素轨道尺寸等于应用像素宽高比的结果。 在该模式下编码像素完整显示。在此模式下轨道尺寸等于编码尺寸。不进行缩放戓变换

? 注意:在QuickTime 7之前构建的旧应用程序将继续使用存储在轨道header中的dimension值。

    标识atom类型的32位整数; 此字段必须设置为“tapt”
    标识atom类型的32位整數; 此字段必须设置为“clef”。 为atom标志保留的三个字节
    标识atom类型的32位整数; 此字段必须设置为“prof”。 为atom标志保留的三个字节
    为atom标志保留的三個字节。 32位定点数指定以像素为单位的轨道编码像素尺寸的宽度。 32位定点数指定以像素为单位的轨道编码像素尺寸的高度。
    标识atom类型嘚32位整数; 此字段必须设置为“clip”
    标识atom类型的32位整数; 此字段必须设置为“crgn”。

Track matte atoms用于在显示轨迹图像时可视地混合轨迹图像

    标识atom类型的32位整数; 此字段必须设置为“matt”。
    标识atom类型的32位整数; 此字段必须设置为“kmat” 标志的三个字节的空间。 将此字段设置为0 与该遮片数据相关联嘚图像描述结构。 图像描述包含控制如何使用遮罩数据的详细信息 有关图像描述的详细信息,请参阅

您可以使用edit atoms来定义要用于为movie建立軌道的媒体部分。 edit本身包含在edit list table中该表由每个段的时间偏移量和持续时间值组成。 Edit atoms的原子类型值为'edts'

在没有edit list的情况下,轨道的呈现立即开始 空的edit用于补偿曲目的开始时间。

? 注意:如果缺少edit atom或edit list atom则可以假定轨道使用整个媒体。

    标识atom类型的32位整数; 此字段必须设置为“elst” 標志的三个字节的空间。 将此字段设置为0 32位值的数组,分组为每个包含3个值的条目 图 2-16显示了此表中条目的布局。
    一个32位整数以电影時间单位为单位指定此edit片段的持续时间。 包含此edit片段的媒体内的开始时间(以媒体时间单位为单位)的32位整数 如果此字段设置为-1,那么咜是空编辑 曲目中的最后一个编辑应该永远不是空白编辑。 电影持续时间和曲目持续时间之间的任何差异都表示为隐式空白编辑 指定播放与此edit片段相对应的媒体的相对速率的32位定点数。 此速率值不能为0或负数
    标识atom类型的32位整数;此字段必须设置为“load”。 一个32位整数指萣要预先加载的轨道片段在电影时间坐标系中的开始时间。与预载持续时间一起使用 一个32位整数,指定电影时间坐标系统中要预加载的軌道段的持续时间如果持续时间被设置为-1,则意味着预加载段从预加载开始时间延伸到轨道的结束当要播放电影时,由preloadvideo starrt time和preload duration值定义的轨噵段中的所有媒体数据应当被加载到存储器中 包含控制预加载操作的标志的32位整数。只定义了两个标志它们是互斥的。如果此标志设置为1则track将被预加载,而不管是否启用如果此标志设置为2,则只有在启用track时才会预加载track 包含回放提示的32位整数。可以启用多个标志通过将标志设置为1来启用标志。定义以下标志 此标志指示应使用双缓冲I/O播放曲目。此标志的值为0x0020 此标志指示轨道应以最高可能质量显礻,而不考虑实时性能该标志的值为0x0100。

Track reference是单向的并从接收轨道指向源轨道。例如视频轨道可以参考时间代码轨道以指示其时间代码被存储在何处,但是时间代码轨道将不参考视频轨道时间码轨道(time code track)是视频轨道的时间信息的源。

单个轨道可以引用多个轨道例如,视频軌道可以参考声音轨迹以指示两者是同步的并且指示时间代码轨道以指示其时间代码被存储在何处。

单个轨道也可以由多个轨道引用唎如,如果声音和视频轨道共享相同的定时信息则它们可以引用相同的时间代码轨道。

如果这个atom不存在轨道不以任何方式引用任何其怹轨道。 注意track reference type atoms的阵列的大小被设置为填充track reference atom。 允许使用参考索引为0的轨道引用 这表示没有参考。

    标识atom类型的32位整数; 此字段必须设置为“tref”

每个track reference atom定义与特定类型的轨道的关系。 参考类型意味着轨道类型 表2-2显示了轨道参考类型及其说明。

    标识atom类型的32位整数; 此字段必须设置為表 2-2中所示的值之一 指定相关轨道的轨道ID值(32位整数)列表。 注意这是轨道ID值可以被设置为0的一种情况。atom中未使用的条目可以具有轨噵ID值0将轨道ID设置为0可以比删除引用更方便。

Track input map atoms定义如何解释从其非主要源发送到该轨道的数据 “ssrc”类型的轨道引用定义了轨道的辅助数據源。 这些源提供在处理轨道时使用的附加数据 track input map atoms具有atom类型值“imap”。

输入映射(input map)定义了所有轨道的辅助输入 每个辅助输入使用单独的track input atom来定義。

    标识atom类型的32位整数; 此字段必须设置为“in”(请注意开头前两个字节必须设置为0x00)。
    一个32位整数指定此输入类型atom中的字节数。 标识atom類型的32位整数; 此字段必须设置为'ty'(注意开头前两个字节必须设置为0x00)。 指定要从辅助数据源接收的数据类型的32位整数 表 2-3列出了此字段嘚有效值。

如果输入对轨道内的对象(例如子画面轨道内的子画面)进行操作,则obejct ID atom必须包括在track input atom中以识别对象

    标识atom类型的32位整数; 此字段必须设置为“obid”。

Media atoms描述和定义轨道的媒体类型和样本数据 media atom包含指定以下内容的信息:

  • 媒体类型,例如声音视频或定时元数据
  • 用于解释樣本数据的媒体处理程序组件
  • 媒体时间刻度和轨道持续时间
  • 媒体和曲目的特定信息,如音量或图形模式
  • 媒体数据引用通常指定存储样本數据的文件
  • 样本表atom,对于每个媒体样本指定样本描述,持续时间和与数据引用的字节偏移量
    标识atom类型的32位整数;此字段必须设置为“mdia”
    標识atom类型的32位整数;此字段必须设置为“mdhd”。 Media header标记的三个字节的空间将该字段设置为0。 一个32位整数指定(从1904年1月1日午夜起的秒数)media atom的创建时间。强烈建议使用协调世界时(UTC)指定此值 一个32位整数,指定(从1904年1月1日午夜起的秒数)media atom的修改时间强烈建议使用协调世界时(UTC)指定此值。 指示此媒体的时间刻度的时间值即在其时间坐标系统中每秒通过的时间单位数。 一个16位整数指定媒体的播放质量 - 也就是說,它适合在给定环境中播放

第一次翻译英文文档,纯手工翻译难免出现错误,欢迎指正!感谢!

我要回帖

更多关于 movie star 的文章

 

随机推荐