导航

Windows Media Format 9 Series SDK 介绍

Posted on 2004-07-01 16:54  黑暗中的舞者  阅读(5255)  评论(0编辑  收藏  举报

使用 Windows Media Format 9 Series SDK 添加 Windows Media 支持


Jay Loomis
Microsoft New Media Platforms Division

2002 年 11 月

适用于:

Windows Media Format 9 Series

摘要:本文介绍了 Microsoft® Windows Media® Format 9 Series 软件开发工具包 (SDK) 的新增功能,还概括介绍了 SDK 结构。(本文包含一些指向英文站点的链接。)

简介

Microsoft Windows Media 9 Series 提供了多种自定义应用程序的方法。您可以使用 Windows Media Player 9 Series SDK、Windows Media Encoder 9 Series SDK 和 Windows Media Services 9 Series SDK 扩展 Windows Media 功能。但是,有些应用程序需要 Windows Media 文件的底层访问权限,您可以使用 Windows Media Format SDK 来满足这些要求。

本文讨论了 Windows Media Format SDK 和高级系统格式 (ASF) 之间的关系,高级系统格式是所有 Windows Media 文件使用的文件格式。本文还介绍了 Windows Media Format SDK 的一般结构,以及 Windows Media 9 Series 的一些很强大的新功能。

本文包括以下主题:

什么是 Windows Media Format SDK?

Microsoft Windows Media Format SDK 是一组底层应用程序编程接口 (API),它处理使用 ASF 结构的数据。ASF 是一种可扩展的、独立于内容的格式,Windows Media 使用它来保存和分发数字媒体。

Windows Media Format SDK 是 Windows Media 的核心,Windows Media Player、Windows Media Encoder 和 Windows Media Services 均使用它来提供核心文件 I/O、联网和数字版权管理 (DRM) 支持。下图显示了 Windows Media Player 与 Windows Media Format SDK 之间的依存关系。

值得注意的是,Windows Media Format SDK 不支持从输入设备捕获内容,也不支持向输出设备呈现内容。使用 Windows Media Format SDK 创建应用程序时,您可以使用任意方法来捕获或呈现数字媒体。

如上图所示,Microsoft DirectShow® SDK 为 Windows Media Player 提供内容呈现支持。为了简化应用程序开发,Windows Media Format 9 Series SDK 提供了一个新的筛选器,以便与 DirectShow 一起使用。Windows Media Format SDK 与 DirectShow SDK 的结合为创建编码和播放应用程序提供了端到端解决方案。

Windows Media Format SDK 最重要的功能之一是它与 Windows Media Audio 和 Video 9 Series 编码解码器实现了连接。这些编码解码器提供了最新的压缩功能,使保存高质量数字媒体所需的空间大大减少。

什么是 Windows Media Format?

尽管 ASF 容器格式用于所有 Windows Media 文件,但术语“Windows Media Format”指的是一项较具体的配置。如下图所示,Windows Media Format 是编码解码器、DRM、协议和容器格式的组合。最主要的区别是所有 Windows Media 文件都使用 ASF,但使用 ASF 的文件不一定是 Windows Media 文件。例如,如果一个文件包含使用第三方编码解码器压缩的数据,则该文件属于 ASF 文件,而不是 Windows Media 文件。

导致差异的原因是一致性问题。Windows Media 文件使用 .wma 和 .wmv 文件扩展名,而包含第三方编码解码器压缩数据的文件使用 .asf 文件扩展名。通过缩小 Windows Media Format 定义的范围,应用程序开发人员可以确信他们的程序可以与 Windows Media 文件一起使用。扩展名为 .asf 的文件可以单独处理,但是需要理解,它们可能包含某些播放应用程序无法访问的数据。

很显示,不是所有 Windows Media 文件都需要 DRM 和协议。这些组件是可选的,但包含这些组件并不会改变文件的格式类别。

使用 Windows Media Format SDK 创建的文件有一个共同点,就是它们都使用 ASF 容器。这种文件格式用于存储一般演示时隔行扫描的任意数据,这样可使这些文件适于在网络中流式处理数据。

ASF 容器的基本结构十分简单。文件的第一部分是描述文件中所保存数据内容的文件头,然后是实际的数据。最后一部分是一个可选的索引,包含与数据部分中的要点相关的内容,这些内容对用户很有用。下图显示了 ASF 的结构。

ASF 文件的标头部分包含文件中单个流的配置信息以及流之间的关系。例如,有些流是互斥的,因而一次只能发送一个流。标头部分还包含元数据或有关内容的描述性数据。

读写结构

Windows Media Format 9 Series SDK 具有许多处理 ASF 文件的功能,但其核心功能是读写文件。本节概括介绍这两大基本任务背后的体系结构。

写入过程

下图显示了 Windows Media Format SDK 的文件写结构,说明了多比特率视频编码文件的过程。

使用 Windows Media Format SDK 构建的应用程序将源媒体样本传递给编写器,如上图的左侧部分所示。编写器使用配置文件对象中指定的设置对文件进行编码。配置文件对象(位于图形的上部)定义已编码文件的格式,包括每个流的详细信息以及应如何处理流的信息(例如,当流互斥时应如何处理)。

大多数音频和视频流由一种 Windows Media 编码解码器来处理。但是,编写器管理器首先用一种转换器来处理数据,为压缩做准备。当样本可以放入文件时,先传递给多路复用器,多路复用器根据演示时间从所有流中隔行扫描样本并将数据打包。

多路复用器创建的位流被传送到一个接收器,接收器为最终目的地处理 I/O,不管它是磁盘上的文件还是 Internet 或其他网络广播。

读取过程

下图显示了 Windows Media Format SDK 的读结构。

读取过程与写入过程基本上相同,不过顺序是相反的。读取器连接到源,源可以是文件、网络连接或自定义源。拆分器处理文件的数据部分,将数据分成单个流样本。然后将样本解压缩(如果启用了 DRM 保护),并通过相应的 Windows Media 编码解码器来处理。音频流可以使用 Microsoft 安全音频路径 (SAP) 来保护,这样可以在呈现音频数据之前对其进行加密。

上图显示了包含 HTML 数据的第三类流,这种流类型称为 Web 流,它是 Windows Media Format 9 Series SDK 中的新增类型。它允许组成 Web 页面的多个文件保存在文件中,并通过响应同一文件中保存的事件加载到客户机的浏览器中。

当样本可以发送时,首先进行排队,然后按演示时间顺序实时发送。样本被作为源数据从读取器中发送,发送方式与将源数据发送到编写器的方式相同。然后,应用程序可以按要求处理数据。Windows Media Format SDK 未提供呈现数据的方法。

Windows Media Format 9 Series SDK 具有哪些新增功能?

Windows Media Format 9 Series SDK 对以前的版本做了许多改进,主要体现在可扩展性和灵活性两个方面。SDK 增加了许多新功能并对旧版本进行许多改进,为更过的开发人员提供了更多的帮助。

新增功能

下面列出了 Windows Media Format 9 Series SDK 提供的许多令人激动的新增功能:

  • 同步读取
    • 按需检索样本,不需要多线程。
  • 支持 IStream
    • 从自定义资源读取媒体。
  • 增强的索引功能
    • 基于帧的索引加快了访问特定视频帧的速度。
    • 基于 SMPTE 的时间代码,可以按源时间代码识别视频。
  • 增强的配置功能
    • 带宽共享将流带宽与高比特率相结合。
    • 利用流的优先级可以确定读取器读取流的顺序。
  • 设备一致性模板
    • 针对特定硬件的编码解码器设置标准化。
  • 扩展的编码解码器
    • 完全的双路编码技术可以以较低的比特率获得较高的质量。
    • 使用 Windows Media Video 9 图像编码解码器将静态图像转换为高质量的视频。
  • 扩展的多比特率 (MBR) 支持
    • 为带有各种图像大小的 MBR 音频和视频流提供互斥支持。
  • 使用智能再压缩技术转换代码
    • 可以为设备优化高比特率代码转换。
  • 扩展的元数据支持
    • 特定于流的属性。
    • 扩展的 ID3 兼容属性支持。
    • 基于索引的元数据标记,允许多个标记同名。
    • 具有超过 64k 相关数据的属性。
    • 多语言属性。
    • 新增了许多预定义属性。
  • 动态像素纵横比
    • 将输入设备视频与不同的像素纵横比组合到一个流中。
  • 隔行扫描的视频流
    • 可以为机顶盒及类似设备编码并发送隔行扫描视频内容。
  • DirectX 视频加速
    • 支持对基于 Windows Media 的内容进行硬件解码,而不需要高端设备。
  • 支持 ASF 格式的多种语言
    • 为流指定语言并允许用户选择播放语言,以获得类似 DVD 风格的体验。
  • 多声道音频
    • 编码并播放多声道音频(6 到 8 个声道)。
  • 支持水印功能
    • 以 ASF 格式编码文件,并通过数字水印增强安全性。
  • 流式处理 HTML
    • 保存与您的流内容相符的 Web 页面组件。
  • DirectShow 筛选器
    • 利用现有的、基于 DirectShow 的体系结构,同时又支持读写 ASF 文件。
增强功能

下面列出了对旧版本 Windows Media Format SDK 的改进。

  • 增强的流式处理/下载体验
    • 减少快速流缓存所需的等待时间。
    • 可变比特率 (VBR) 流式处理和渐进式下载优化。
    • MBR 音频和多分辨率 MBR 视频允许将动态选择的内容保存到一个文件中。
  • 性能大大改进
    • 同步读取器接口减少了编辑应用程序所需的编码开销。
    • 可在 1GHz 的计算机上处理 640x480 30 fps 未压缩视频的实时多路复用。
  • 扩展性
    • 支持任意流类型,使您可以在 ASF 文件中包含所需的任何数据。
    • 使用标准 COM 接口 IStream 自定义源。
    • 支持自定义元数据的强大功能。
为应用程序开发人员提供了更多帮助

Windows Media Format 9 Series SDK 提供了许多增强功能和改进功能,以满足媒体专业人员在各开发阶段的需要。应用程序开发人员可以使用 Windows Media 技术编写能够增强下一代数字媒体功能的软件。下图显示了新版本 Windows Media Format SDK 的应用范围。