文件的顶级 ASF 标头对象包含多个 ASF 子标头对象。 ContentInfo 对象存储所有这些标头对象中的信息,并通过属性向应用程序公开某些值。
文件属性对象
此标头对象存在于所有 ASF 文件中。 这些字段描述整个演示文稿的文件级属性。 下表列出了文件属性对象中的字段和相应的演示文稿描述符属性。
| “文件属性对象”字段 | 演示文稿描述符属性 | 描述 |
|---|---|---|
| 文件 ID | MF_PD_ASF_FILEPROPERTIES_FILE_ID | 此文件的唯一标识符。 |
| 文件大小 | MF_PD_TOTAL_FILE_SIZE | 文件的大小(以字节为单位)。 |
| 创建日期 | MF_PD_ASF_FILEPROPERTIES_CREATION_TIME | 文件创建日期和时间。 |
| 数据包计数 | MF_PD_ASF_FILEPROPERTIES_PACKETS | ASF 数据对象中的数据包数。 |
| 播放持续时间 | MF_PD_ASF_FILEPROPERTIES_PLAY_DURATION | 播放文件所需的时间(以 100 纳秒为单位)。 此值包括预注册时间。 |
| 发送持续时间 | MF_PD_ASF_FILEPROPERTIES_SEND_DURATION | 发送文件所需的时间(以 100 纳秒为单位)。 |
| 预注册 | MF_PD_ASF_FILEPROPERTIES_PREROLL | 在播放文件之前缓冲数据的时间长度(以 100 纳秒为单位)。 |
| 标志 | MF_PD_ASF_FILEPROPERTIES_FLAGS | 指示文件是广播还是可查找的标志。 |
| 最小数据包大小 | MF_PD_ASF_FILEPROPERTIES_MIN_PACKET_SIZE | 文件中数据包的最小大小(以字节为单位)。 |
| 最大数据包大小 | MF_PD_ASF_FILEPROPERTIES_MAX_PACKET_SIZE | 文件中数据包的最大大小(以字节为单位)。 |
| 最大比特率 | MF_PD_ASF_FILEPROPERTIES_MAX_BITRATE | 最大即时比特率(以位/秒为单位)。 |
Stream Properties 对象
此标头对象描述 ASF 文件中流的属性。 在 Media Foundation 中,这是由配置文件对象和流配置对象管理的。 有关详细信息,请参阅 创建和配置 ASF 流。
编解码器列表对象
如果存在此标头对象,则 MF_PD_ASF_CODECLIST 属性提供用于对 ASF 文件中流进行编码的编解码器列表。 每个流都应在此对象中具有其编解码器信息。
Script Command 对象
如果存在此标头对象,则它指定 ASF 文件中支持的脚本命令列表。 脚本命令由命令类型、命令名称和演示时间组成。 命令类型和命令名称是宽字符字符串。 这些命令可用于通知客户端在演示文稿中的某个点执行作。 例如,应用程序可以使用命令类型“FILENAME”播放 ASF 文件的连续序列。
若要获取脚本命令的列表,请从演示文稿描述符获取 MF_PD_ASF_SCRIPT 属性。 应用程序应在开始播放之前检索所有脚本命令。
Marker 对象
标记是 ASF 文件中的书签。 应用程序可以使用标记来查找内容中的各种点。 每个标记由标记名称、关联的呈现时间和文件开头的偏移量组成。 MF_PD_ASF_MARKER 属性提供可用于该文件的标记列表。
流比特率属性对象
此标头存储 ASF 文件中存在的每个流的平均比特率。 此值存储在 MF_SD_ASF_STREAMBITRATES_BITRATE 属性中的流的流描述符上。
内容加密对象
如果内容提供程序使用 Microsoft Digital Rights Management 保护了内容,则存在此标头对象。 下表列出了内容加密对象中的字段和相应的演示文稿描述符属性:
| 内容加密对象字段 | 演示文稿描述符属性 | 描述 |
|---|---|---|
| 机密数据 | MF_PD_ASF_CONTENTENCRYPTION_SECRET_DATA | 包含机密数据的字节数组。 |
| 保护类型 | MF_PD_ASF_CONTENTENCRYPTION_TYPE | 值为“DRM”的以 Null 结尾的字符串。 |
| 密钥 ID | MF_PD_ASF_CONTENTENCRYPTION_KEYID | 描述密钥标识符的以 Null 结尾的字符串。 |
| 许可证 URL | MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL | 以 Null 结尾的字符串,其中包含从中获取使用该内容的许可证的 URL。 |
扩展内容加密对象
如果内容提供程序使用 Windows Media Rights Manager 7 SDK 保护了内容,则存在此标头对象。 MF_PD_ASF_CONTENTENCRYPTION_LICENSE_URL 属性提供对应于标头对象的 Data 字段的字节数组。 此字段是使用该内容所必需的。
扩展流属性对象
此标头是标头扩展对象的一部分。 扩展流属性对象提供流属性对象中未定义的流的属性。 这些属性主要用于确定解码器使用的“泄漏桶”参数。 压缩数据时,编码器也会使用这些属性。 这是由配置文件对象和流配置对象管理的。 有关详细信息,请参阅 创建和配置 ASF 流。
下表列出了扩展流属性对象字段和相应的流描述符属性。
| “扩展流属性”字段 | 流描述符属性 | 描述 |
|---|---|---|
| 数据比特率 | MF_SD_ASF_EXTSTRMPROP_AVG_DATA_BITRATE | 平均数据速率(以位/秒为单位)。 |
| 缓冲区大小 | MF_SD_ASF_EXTSTRMPROP_AVG_BUFFERSIZE | 泄漏的存储桶大小。 值是可在缓冲区中以平均数据速率容纳的数据毫秒数。 |
| 备用数据比特率 | MF_SD_ASF_EXTSTRMPROP_MAX_DATA_BITRATE | 峰值数据速率,以每秒咬数为单位。 峰值数据速率用于具有可变比特率的流。 |
| 备用缓冲区大小 | MF_SD_ASF_EXTSTRMPROP_MAX_BUFFERSIZE | 最大泄漏桶大小。 值是可在缓冲区中以峰值数据速率容纳的数据毫秒数。 |
| 流语言 ID | MF_SD_ASF_EXTSTRMPROP_LANGUAGE_ID_INDEX | 流使用的语言,指定为语言列表对象中语言列表中的索引。 |
语言列表对象
此标头对象是标头扩展对象的一部分。 如果存在,则 MF_PD_ASF_LANGLIST 属性提供文件中支持的语言标识符列表。 标识符符合 RFC 1766 以指定语言。
相互排除对象
此标头指定一组流及其属性,其中只有一组一次传递。 有关详细信息,请参阅 对 ASF 流使用相互排除。
相关主题
-
媒体基础 中的 ASF 支持