ASF 标头对象的媒体基础属性

文件的顶级 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 纳秒为单位。
Flags 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 最大瞬时比特率,以位数/秒为单位。

 

流属性对象

此标头对象描述 ASF 文件中流的属性。 在 Media Foundation 中,这由配置文件对象和流配置对象管理。 有关详细信息,请参阅 创建和配置 ASF 流

编解码器列表对象

如果存在此标头对象, 则 MF_PD_ASF_CODECLIST 属性提供用于对 ASF 文件中的流进行编码的编解码器列表。 每个流都应在此对象中具有其编解码器信息。

脚本命令对象

如果存在此标头对象,它将指定 ASF 文件中支持的脚本命令列表。 脚本命令由命令类型、命令名称和演示时间组成。 命令类型和命令名称是宽字符字符串。 这些命令可用于通知客户端在演示文稿中的某个时间点执行操作。 例如,应用程序可以使用命令类型“FILENAME”播放连续序列的 ASF 文件。

若要获取脚本命令的列表,请从演示文稿描述符中获取 MF_PD_ASF_SCRIPT 属性。 应用程序应在开始播放之前检索所有脚本命令。

Marker 对象

标记是 ASF 文件中的书签。 应用程序可以使用标记来查找内容中的不同点。 每个标记由标记名称、关联的演示时间和距文件开头的偏移量组成。 MF_PD_ASF_MARKER 属性提供可用于文件的标记列表。

流比特率属性对象

此标头存储 ASF 文件中存在的每个流的平均比特率。 此值存储在 MF_SD_ASF_STREAMBITRATES_BITRATE 属性中的流的流描述符上。

内容加密对象

如果内容提供商已使用 Microsoft 数字版权管理保护内容,则存在此标头对象。 下表列出了内容加密对象中的字段和相应的演示文稿描述符属性:

内容加密对象字段 演示文稿描述符属性 说明
机密数据 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 ContentInfo 对象

ASF 标头对象

媒体基础中的 ASF 支持