Media Foundation

Media Foundation是微软在Windows上推出的下一代多媒体开发库,目的是为Windows平台提供统一的多媒体影音解决方案,开发者可以透过Media Foundation播放影片和声音文件、进行影音编码或者多媒体文件转码等等工作。Media Foundation是DirectShow为主的旧式多媒体应用程序接口的替代者与继承者,在微软的项目下将逐步汰换DirectShow技术。Media Foundation仅支持Windows Vista或更新的系统。

Media Foundation擅长高质量的音频和视频播放,高清内容(如HDTV,高清电视)和数字版权管理(DRM)访问控制。Media Foundation在不同的Windows版本上能力不同,在Windows Vista上仅支持WMV格式,但到了Windows 7后添加了H264编码支持。Windows 8上则多了数种更高质量的设置。

架构

 
Media Foundation架构

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。

而MF支持的视频格式较DirectShow有限是其缺点。[2]

应用支持

Media Foundation首次适用于Windows Vista,可见诸于media playback applications.

注释

  1. ^ Migrating from DirectShow to Media Foundation and comparison of the two. [2009-08-27]. (原始内容存档于2008-04-09). 
  2. ^ Supported Media Formats in Media Foundation. [2015-04-22]. (原始内容存档于2017-02-16). 

外部链接