/*
* blackboy [email protected]
* QQ群: 135202158
* 转载请注明作者及出处
*/
原文:http://msdn.microsoft.com/en-us/library/bb970511(v=vs.85)
Windows Vista引入了Microsoft Media Foundation,用于替换DirectShow。当然,Windows 7仍然支持DirectShow,但更鼓励开发者在新的数字媒体应用程序中使用新的Media Foundation。
Media Foundation的改进主要有:
Windows Vista实现了Media Foundation音视频管道,但它仅支持一组有限的格式和文件封装,这意味着一些应用程序需要用回以前的技术,如DirectShow。在Windows 7上,Media Foundation包含以下新的codecs、media sources和media sinks:
*注意 MP3文件sink不包括MP3音频编码器。
更多信息,见:Supported Media Formats in Media Foundation.
Media Foundation目前支持音视频管道内的以下硬件设备类型:
硬件编码器可以非常快地完成视频转码。例如,应用程序可以把Windows Media Video(WMV)文件传送到一个仅支持3GP文件的手机上。使用硬件编码器,应用程序可以在传送之前,在后台完成文件转码。
硬件设备在Media Foundation中用代理对象(proxy object)来表示,用于管道(pipeline)时就和其他软件组件一样。
在Windows Vista,Media Foundation暴露一组相对低层的APIs。这些APIs虽然灵活,但对于常规任务来说太复杂了。Windows 7添加了新的高层APIs,简化了C++开发多媒体应用程序的难度。这些新的高层APIs包括:
API | 描述 |
---|---|
Source Reader | source reader从媒体文件中拉取原始(raw)或编码数据。例如,可以使用source reader从一个视频文件获得缩略图,或分析一个音频文件的波形数据。还可以用它从音频或视频捕获设备获得实况数据。 |
Sink Writer | sink writer用于将非压缩或编码后的数据创作(author)为媒体文件。例如,可以用它重新编码一个媒体文件,或将webcam捕获的实况视频存成文件。 |
Trancode API | 此特性支持常见的音视频编码场景。 |
你仍可使用低层的Media Foundation APIs。如果要对音视频管道添加更多控制,可能会需要这么做。
Windows 7包含多项针对底层Media Foundation平台APIs的增强。高级应用程序可以直接使用这些APIs;其他应用程序可间接地从之受益。更新包括:
关于Media Foundation
Microsoft Media Foundation