Media Foundation 和 DirectShow 提供了Windows中基本的媒体支持。Media Foundation在Windows Vista中作为DirectShow的替代被引入。在Windows 7中,Media Foundation被提升来提供更好的格式支持,包括MPEG-4,以及视频捕获设备的支持和硬件编码器
格式支持
在 Windows 7 中 ,Media Foundation提供了广阔的格式支持包括H.264视频、MJPEG、MP3,新的格式如:MP4、3GP、AAC 视频, AVI,新MP4、3GP和MP3文件接收器(参考:Supported Media Formats in Media Foundation。)
硬件设备
Media Foundation的音频/视频管理现在支持如下类型的硬件设备:
• UVC 1.1 视频捕获设备,如webcams
• 音频捕获设备
• 硬件编码和解码
• 硬件视频处理,如色彩空间转换器
硬件编码器可以执行非常快速的视频转码。例如,假设你想要将一个 Windows Media Video 格式的文件转成只支持 3GP 格式的手机上能用的文件。使用硬件编码器,文件可以按需要转码,在复制到设备之前立即转换完成。
硬件设备在Media Foundation中展现时使用代理对象,在管道中使用它就象在使用基于软件的组件一样(参考:What's New for Media Foundation.)
Simplified Programming Model
简化了的编程模块 (Simplified Programming Model)
在 Windows Vista 中 , Media Foundation 暴露了一组相关的低级 API 。这些 API 接口可伸缩性高 , 但是可能对于展现类任务并不合适。 Windows 7 中添加了新的高级 API ,使得在 C++ 中编写多媒体应用程序更容易。这些高级 API 接口包括:
• MFPlay.这些API设计用于音频和视频的播放。它们支持的典型播放操作(停止,暂停,查找,评价控件,音量及向前),同时隐藏低级别API的详细情况(会话和拓扑层)。
• Source Reader.你可以使用这些API从媒体文件中取出原始数据或解码数据,而无需对了解底层格式。例如,你可以从视频文件中获取到缩略图或从网络摄像机中获取到实时的视频帧。
• Sink Writer你可以用这些API通输入一些未经压缩或编码的数据来创建媒体文件,比如可以重新编码或混合一个音频文件。
• Transcode.软件码的API用于完成常见的音视频转码任务。
平台改进
Windows 7包括了大量的更新到底层的Media Foundation 平台的API。高级应用程序可以直接使用这些API;其它应用将间接地受益。这些好处包括:
• 视频传输通道上的更新以减少电源的消耗和视频内存使用率。
• 新的DVXA视频处理API,使用了更具灵活性的混合模式从而更适合于HD视频格式。
• 插件程序(源文件与解码器)被列举并更好地管理