媒体基础的新增功能
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 更改
- 新的标头和库文件:媒体基础标头和库
- DLL 和 .lib 更改:Windows 7 中的库更改
- 新的 SDK 示例:
- TopoEdit改进:
- 支持转换代码。 请参阅使用 TopoEdit 生成转换代码拓扑。
- 支持音频和视频捕获。 请参阅拓扑菜单。
Windows 8 中的新增功能
Windows 8 的媒体基础的一些新更新包括:
- IMFCaptureEngine控制一个或多个捕获设备。 有关属性列表,请参阅捕获引擎属性。 其他新的媒体捕获相关接口包括IMFCapturePhotoSink、IMFCapturePreviewSink、IMFCaptureRecordSink、IMFCaptureSink、IMFCaptureSource。
- 以下媒体基础类扩展是 Windows 8 的新增功能:
- Direct3D 11 视频 API是 Windows 8 的新增功能。 Windows 8 桌面应用仍可以使用Direct3D 9 视频 API,但 Windows 应用商店应用必须使用新的 Direct3D 11 视频 API。 有关 Microsoft Direct3D 11 视频的详细信息,请参阅在媒体基础中支持 Direct3D 11 视频解码。
- 媒体基础工作队列进行了更新和改进。 有关详细信息,请参阅工作队列和线程处理改进。
- H.264 UVC 1.5 相机编码器。
- 有关可与 Windows 应用商店应用结合使用的媒体基础 API 列表,请参阅适用于 Windows 应用商店应用的 Win32 和 COM(多媒体)。
- Windows 8 的 N 和 KN 版本不包括媒体基础。 有关详细信息,请参阅所有 Windows 8 版本的 N 和 KN 版本的 Microsoft Windows 媒体功能包。
相关主题