【Media Foundation】新版本的更新与改进

来源:互联网 发布:视频后期音乐软件 编辑:程序博客网 时间:2024/05/16 17:26

/*
* blackboy   psyc209@163.com
* 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的改进主要有:

  • 更好的格式支持,包括MPEG-4
  • 支持捕获设备和硬件编解码器
  • 简化的编程模型
  • 针对平台的改进

更好的格式支持

Windows Vista实现了Media Foundation音视频管道,但它仅支持一组有限的格式和文件封装,这意味着一些应用程序需要用回以前的技术,如DirectShow。在Windows 7上,Media Foundation包含以下新的codecs、media sources和media sinks:

  • AAC编、解码器
  • AVI/WAVE文件源
  • DV视频解码器
  • H.264视频编、解码器
  • MJPEG解码器
  • MP3文件sink*
  • MP4/3GP文件源
  • MP4/3GP文件sink

*注意 MP3文件sink不包括MP3音频编码器。

更多信息,见:Supported Media Formats in Media Foundation.

硬件设备支持

Media Foundation目前支持音视频管道内的以下硬件设备类型:

  • UVC 1.1视频捕获设备,如webcams
  • 音频捕获设备
  • 硬件编码器和解码器
  • 硬件视频处理器,如色彩空间转换器(color-space converters)

硬件编码器可以非常快地完成视频转码。例如,应用程序可以把Windows Media Video(WMV)文件传送到一个仅支持3GP文件的手机上。使用硬件编码器,应用程序可以在传送之前,在后台完成文件转码。

硬件设备在Media Foundation中用代理对象(proxy object)来表示,用于管道(pipeline)时就和其他软件组件一样。

简化的编程模型

在Windows Vista,Media Foundation暴露一组相对低层的APIs。这些APIs虽然灵活,但对于常规任务来说太复杂了。Windows 7添加了新的高层APIs,简化了C++开发多媒体应用程序的难度。这些新的高层APIs包括:

API描述Source Readersource reader从媒体文件中拉取原始(raw)或编码数据。例如,可以使用source reader从一个视频文件获得缩略图,或分析一个音频文件的波形数据。还可以用它从音频或视频捕获设备获得实况数据。Sink Writersink writer用于将非压缩或编码后的数据创作(author)为媒体文件。例如,可以用它重新编码一个媒体文件,或将webcam捕获的实况视频存成文件。Trancode API此特性支持常见的音视频编码场景。

你仍可使用低层的Media Foundation APIs。如果要对音视频管道添加更多控制,可能会需要这么做。

针对平台的改进

Windows 7包含多项针对底层Media Foundation平台APIs的增强。高级应用程序可以直接使用这些APIs;其他应用程序可间接地从之受益。更新包括:

  • 视频管道的更进,减少了电量消耗和视频内存使用量。
  • DXVA-HD: Microsoft DirectX Video Acceleration High Definition(DXVA-HD)是用于视频硬件加速的新API。 DXVA-HD提供了比之前的DXVA视频处理API更灵活的复合模型(compositing model),且能更好地适用于高清视频格式。
  • 枚举sources和decoders的新机制,包括merit values和一个preferred/blocked列表。该特性提高了整个系统的可靠性。更多信息,见以下主题:
    • MFTEnumEx
    • IMFPluginControl
    • Codec Merit

SDK修改

  • New headers and library files: Media Foundation Headers and Libraries
  • DLL and .lib changes: Library Changes in Windows 7
  • New SDK Samples:
    • Audio Clip Sample
    • DXVA-HD Sample
    • MFCaptureD3D Sample
    • MFCaptureToFile Sample
    • Transcode Sample
    • VideoThumbnail Sample
  • Improvements to TopoEdit:
  • Support for transcoding. See Building a Transcode Topology with TopoEdit.
  • Support for audio and video capture. See Topology Menu.

相关主题

关于Media Foundation
Microsoft Media Foundation