媒体基础的新增功能

Windows Vista 中引入了 Microsoft 媒体基础,作为 DirectShow 的替代项。 当然,Windows 7 仍支持 DirectShow,但鼓励开发人员在其新的数字媒体应用程序中使用媒体基础。

媒体基础的改进可以概括如下:

  • 更好的格式支持,包括 MPEG-4
  • 支持捕获设备和硬件编解码器
  • 简化的编程模型
  • 平台改进

更好的格式支持

媒体基础音频/视频管道在 Windows Vista 中实现,但它支持一组有限的格式和文件容器,这意味着一些应用程序需要回退到较旧的技术,例如 DirectShow。 在 Windows 7 中,媒体基础包括以下新的编解码器、媒体源和媒体接收器:

  • AAC 解码器
  • AAC 编码器
  • AVI/WAVE 文件源
  • DV 视频解码器
  • H.264 视频解码器
  • H.264 视频编码器
  • MJPEG 解码器
  • MP3 文件接收器*
  • MP4/3GP 文件源
  • MP4/3GP 文件接收器

注意

MP3 文件接收器不包括 MP3 音频编码器。

 

有关详细信息,请参阅媒体基础中受支持的媒体格式

硬件设备状态

媒体基础现在支持音频/视频管道中的以下类型硬件设备:

  • UVC 1.1 视频捕获设备,例如网络摄像头
  • 音频捕获设备
  • 硬件编码器和解码器
  • 硬件视频处理器,例如颜色空间转换器

硬件编解码器可以执行非常快速的视频转换代码。 例如,应用程序可以将 Windows 媒体视频(WMV) 文件传输到仅支持 3GP 文件的手机。 使用硬件编码器,应用程序可以在后台对文件进行转换代码,然后再将其传输到设备。

硬件设备由代理对象在媒体基础中表示,在管道中使用,就像基于软件的组件一样。

简化的编程模型

在 Windows Vista 中,媒体基础公开了一组相对低级的 API。 对于简单任务,这些 API 非常灵活,但过于复杂。 Windows 7 添加了新的高级 API,更便于使用 C++ 编写媒体应用程序。 这些新的高级 API 包括以下内容。

API 说明
源读取器 源读取器从媒体文件拉取原始或解码的数据。 例如,可以使用源读取器从视频文件获取缩略图位图,或分析音频文件中的波形数据。 还可以使用源读取器从音频或视频捕获设备获取实时数据。
接收器编写器 接收器编写器允许传入未压缩或编码的数据以创作媒体文件。 例如,可以使用它重新编码视频文件,或将实时视频从网络摄像头捕获到文件。
转换代码 API 此功能支持最常见的音频/视频编码方案。

 

仍然可以在媒体基础中使用低级 API。 如果需要更好地控制音频/视频管道,可以执行此操作。

平台改进

Windows 7 包括基础媒体基础平台 API 的许多增强功能。 高级应用程序可以直接使用这些 API;其他应用程序将间接获得优势。 这些改进包括:

  • 更改视频管道以减少能耗和视频内存使用量。
  • DXVA-HD:Microsoft DirectX 视频加速高清 (DXVA-HD) 是硬件加速视频处理的新 API。 DXVA-HD 提供比之前的 DXVA 视频处理 API 更灵活的组合模型,更适用于高清视频格式。
  • 用于枚举源和解码器的新机制,其中包括优点值和首选/阻止列表。 此功能可提高系统的整体可靠性。 有关详情,请参阅以下主题:

SDK 更改

Windows 8 中的新增功能

Windows 8 的媒体基础的一些新更新包括:

关于媒体基础

Microsoft 媒体基础