问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ASF 文件结构详解

创作时间:
作者:
@小白创作中心

ASF 文件结构详解

引用
1
来源
1.
https://learn.microsoft.com/zh-cn/windows/win32/medfound/asf-file-structure

ASF(Advanced System Format)文件的结构由多个对象组成,这些对象共同构成了ASF文件的基本组织单位。每个对象包含特定的数据,用于描述文件的属性、媒体数据和索引信息。

ASF 文件的基本结构

ASF文件的基本组织单位是对象,每个对象包含以下数据:

  • 标识对象的GUID(128位)
  • 对象的大小(64位)
  • 对象数据(可以包含其他ASF对象)

需要注意的是,ASF文件对象只是一个数据块,而不是计算机编程意义上的对象。

ASF文件包含三种类型的顶级文件对象:

  1. 标头对象:包含有关ASF文件的信息
  2. 数据对象:包含媒体数据的数据包
  3. 索引对象:包含一个或多个索引(可选)

下图显示了ASF文件的结构:

这张示意图不是按比例绘制的;通常,数据对象包含文件的大部分。

标头对象

标头对象是必需的,并且出现在每个ASF文件的开头。其中包含全局文件属性和有关ASF文件中流的信息。这些信息用于解释和播放文件中的数据。

标头对象包含几个必需子对象:

  • 文件属性对象:描述文件的全局属性,如文件大小、播放持续时间、数据包数量、最小和最大数据包大小以及最大比特率。
  • 标头扩展对象:允许在保持向后兼容性的同时向ASF文件添加其他功能。
  • 流属性对象:描述文件中的一个流。一个ASF文件必须至少包含一个流,因此必须包含至少一个流属性对象。

标头对象可以包含其他可选信息,包括有关文件的元数据(如标题和作者)、用于编码文件的编解码器列表以及内容保护信息。

数据对象

ASF数据对象包含ASF文件的所有媒体数据。此对象是必需对象,并且必须跟在ASF标头对象后面。

数据对象分为数据数据包。每个数据包都包含文件中一个或多个流的数据。数据包包含提供数据包分析信息的数据包标头,后跟有效负载数据,即实际数字媒体数据。所有数据包都有一个与之相关的演示时间,并按照接收到的顺序排列。

关于数据对象的内容的信息(例如,数据包大小和数据包计数)存储在标头对象中。

索引对象

索引对象是可选对象,是ASF文件中的最后一个对象。一个ASF文件可以包含多个索引对象。索引对象提供对ASF数据对象的基于时间的随机访问。

简单索引对象是另一种类型的索引。

本文来自微软官方文档,详细介绍了ASF文件的结构和组成,对于从事多媒体文件处理和开发的技术人员具有较高的参考价值。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号