Media Foundation
Media Foundation是微软在Windows上推出的新一代多媒体应用库,目的是提供Windows平台一个统一的多媒体影音解决方案,开发者可以透过Media Foundation播放影片和声音文件、进行影音编码或者多媒体文件转码等等工作。Media Foundation 是DirectShow为主的旧式多媒体应用程式接口的替代者与继承者,在微软的项目下将逐步汰换DirectShow技术。Media Foundation要求Windows Vista或更高版本,不支持较早期的Windows版本如Windows XP。
Media Foundation 长于高质量的音频和视频播放,高清内容(如HDTV, 高清电视)和数码版权管理(DRM)访问控制。Media Foundation在不同的Windows版本上能力不同,在Windows Vista上仅支持WMV格式,但到了Windows 7后添加了H264编码支持。Windows 8上则多了数种更高质量的设置。
架构
Media Foundation (以下简称MF) 架构分为控制层(Control layer),核心层(Core layer)与平台层(Platform layer)。大部分MF功能均由核心层提供,开发者则由控制层来控制行为。一般开发者仅须了解控制层与核心层,几乎不须接触平台层。
Media Foundation提供了两种编程模型,第一种是以Media Session为主的媒体管道模型(Media pipeline)。但是媒体管道模型太过复杂,且曝露过多底层细节,故微软于 Windows 7 上推出第二种编成模型,内含SinkWriter、SourceReader、以及Transcode API三部分,大大简化了MF的使用难度。
媒体管道(pipeline)分三个组成部分:媒体来源(Media Source),媒体接收器(Media Sink)和媒体平台变换(Media Foundation Transforms)。
媒体平台变换
媒体平台变换(Media Foundation Transforms)推出了一个革新式的技术 DirectX Media Objects (DMOs)。混合DMO的/ MFT的对象也可以创建。应用程式可以使用MFTs内的管道,或直接使用它们作为独立的对象。其种类如下:
- 音频和视频编解码器
- 音频和视频效果
- Multiplexers 和 demultiplexers
- Tees
- 色彩空间转换器
- Sample-rate converters
- 视频定标器(Video scalers)
微软建议开发人员编写MFTs,取代DirectShow筛选器[1]。
增强型视频渲染器
Media Foundation 使用 Enhanced Video Renderer (EVR)作为渲染器。它可以组合多达16个同步流(simultaneous streams),第一流是一个参考流(reference stream)。
相对于DirectShow的优势
MF提供了以下好处:
- 可扩展的高清晰度内容和数码版权管理保护(DRM-protected)的内容。
- 允许DirectX视频加速用于之外DirectShow的基础设施。支持DXVA 2.0。
- MF的可扩展性(extensibility),使不同的内容保护系统一起运作。
- 使用多媒体类别计划程序服务(MMCSS),是一个新的系统服务在Windows Vista。
应用支持
Media Foundation 首次适用于 Windows Vista, 可见诸于 media playback applications.
注释
外部链接
- Microsoft Media Foundation SDK
- Media Foundation Development Forum
- Media Source Metadata
- Media Foundation Pipeline
- Media Foundation Architecture
- About the Media Session
- About the Media Foundation SDK
- Enhanced Video Renderer