微软Windows Media Foundation是下一代Windows多媒体平台。188宝金博怎么下载它使开发人员和用户能够以增强的健壮性、无与伦比的质量和无缝互操作性来处理和处理媒体内容。它的框架管道和基础设施平台基于微软Windows组件对象模型(COM),并为跨许多微软编程语言的媒体提供了一个公共接口。它可以根据用户或开发人员的需要渲染或记录媒体文件。Windows Media Foundation提供了高音频和视频播放质量、高清内容(HDTV)、内容保护以及数字版权管理(DRM)及其互操作性的数字数据访问控制的更统一方法。它集成了DXVA 2.0,将更多的视频处理管道卸载到硬件,以获得更好的性能。
微软推出了DirectShow®多媒体框架和API来取代VFW (Vi188宝金博怎么下载deo for Windows)技术,使软件开发人员能够对媒体文件进行各种操作。DirectShow开发工具和文档作为微软平台SDK的一部分分发。188宝金博安卓下载最终,微软计划从Windows Vista开始,用Windows Media Foundation (WMF)取代DirectShow。
微软媒体基金会管道将多媒体任务处理(如视频回放)划分为一组步骤。188宝金博怎么下载数据处理中的每个步骤或阶段都由Media Foundation组件之一执行。主要包括:媒体源、媒体汇和媒体基础转换(MFT)。各部件与流数据流之间的连接由拓扑结构决定。
Windows Media Foundation体系结构使用Topology对象来表示数据如何流经管道,并描述每个流所经过的路径。管道中的每个Media基础组件(媒体源、转换和媒体接收器)在拓扑中表示为一个节点。开发人员可以在拓扑的任何阶段添加自定义效果或其他转换,方法是添加表示其组件的节点,然后将结果呈现给文件、URL或摄像机。
由于在Windows Media Foundation中渲染、转换和捕获文件的整个概念都是基于组件和拓扑的,因此理解每个组件和拓扑的作用非常重要。
媒体来源.媒体源负责读取和分割媒体流。它通常是拓扑中的第一个组件(通过数据流)。数据可以来自磁盘上的文件、网络、硬件设备或任何其他方法。每个媒体源包含一个或多个流,每个流提供一种类型的数据,如音频或视频。
视频/音频译码器.视频和音频解码器是处理数据实际解码或解压缩的媒体基础转换(MFT)组件。它们不解析数据,因此数据在传递给解码器之前应该被分割。由于这个原因,它们通常连接到媒体源输出。例如,视频解码器的输入可能是压缩的视频例如MPEG2,输出可以是原始视频数据。
渲染器.渲染器是为回放提供数据的媒体接收器。数据可以是音频、视频或两者都是。例如,在播放带有音频和视频的媒体文件时,将使用视频渲染器将处理在屏幕上显示视频,音频渲染器将处理将音频数据定向到声音设备。渲染器的输入通常是来自解码器的未压缩数据。
音频/视频编码器.音频和视频编码器是媒体基础转换(MFT)组件,用于压缩数据、音频或视频。输入通常是未压缩的音频或视频数据,输出是相同数据的压缩版本。
媒体水槽.媒体接收器连接媒体流并处理将数据写入磁盘以创建媒体文件。它还可以像Renderer一样在屏幕或声音设备上显示内容。媒体接收器通常是拓扑中的最后一个组件(通过数据流)。输入通常是来自音频/视频编码器的压缩数据。输出是一个包含视频和音频数据的流。
视频/音频处理器(转换)。视频和音频处理器是媒体基础转换(MFT)组件,用于执行某种类型的数据处理或生成某种类型的事件。LEAD已经创建了许多视频和音频处理转换,例如视频调整大小转换,用于调整视频流的大小。通常,这些转换只能处理未压缩的数据,因此它们将被插入到拓扑中,在编码器之前或解码器之后。
Microsoft Media Foundation提供Media Session对象来设置拓扑和控制数据流。它保存部分拓扑,最后使用topology加载器创建完整的拓扑。拓扑加载器是一个创建组件之间必要连接的媒体基础对象。在组件之间创建必要的连接称为“解决拓扑”。
媒体会话中的拓扑在视频回放中被广泛使用,其中媒体基础组件(媒体源、媒体接收器和MFTs)提供了文件解析、视频和音频解复用(分割)、解压缩和渲染等步骤。它们还用于视频和音频录制、代码转换和编辑。在呈现(解析拓扑)期间,拓扑加载器在Windows注册表中搜索已注册的Media Foundation组件。它构建完整的拓扑,将组件连接在一起,并且(在开发人员的请求下)基于创建的拓扑播放、暂停等等。TopoEdit是Windows SDK附带的免费实用程序,可用于构建和解析拓扑,并测试媒体源、媒体接收器和转换。
管道中的数据处理组件(媒体源、转换和媒体接收器)在拓扑中表示为节点。从一个组件到另一个组件的数据流由节点之间的连接表示。拓扑节点有四种类型:
拓扑中的每个组件处理特定的任务,并且每个组件通常被设计为处理特定类型的数据或流。
例如,要创建带有H264压缩视频的MKV文件,请使用H264编码器和MKV媒体接收器。最有可能的是,H264编码器将只创建H264压缩数据,而MKV媒体接收器将接受H264视频作为其支持的视频压缩之一。某些类型的音频也可以被接受为输入。解码和解复用也是如此。H264解码器只解码H264视频,MKV媒体源只接受包含H264视频和某些类型音频的流作为输入。
当您尝试解析拓扑并连接在数据类型上不一致的转换时,连接通常会被拒绝,媒体会话将不会运行。这就是为什么知道每个媒体基础组件支持哪种媒体类型是很重要的。
例如,下表列出了LEAD MKV媒体接收器支持的媒体类型。LEAD MKV媒体接收器拒绝将表中列出的以外的任何媒体类型连接到LEAD MKV媒体接收器的输入的任何尝试。
表1。LEAD MKV媒体接收器支持的媒体类型
媒体 | 视频 | 音频 |
---|---|---|
类型: | MEDIATYPE_Video | MEDIATYPE_Audio |
子类型: | MEDIASUBTYPE_VP8 MEDIASUBTYPE_MPEG2_VIDEO MEDIASUBTYPE_LISO MEDIASUBTYPE_LMPG2 MEDIASUBTYPE_H264 |
MEDIASUBTYPE_Vorbis MEDIASUBTYPE_AC3 MEDIASUBTYPE_MPEG1Audio MEDIASUBTYPE_PCM |
下面的图说明了捕获、转换和回放的基本拓扑:
图1。一个简单的捕获图
图2。一个简单的转换图
图3。一个简单的回放图
微软Windows Media Foundation也有许多接口和属性,允许从和控制许多类型的网络摄像头,电视调谐器和其他设备。选项包括控制电视调谐器和设置许多常见的设备属性,如捕获大小、颜色空间和帧速率。
然而,对设备的实际控制受限于该设备的制造商所公开的内容,以及设备本身所实现的内容。例如,一台设备可能支持3种不同的分辨率,而另一台支持10种。一种设备可能允许你改变帧率,而另一种可能不允许。
微软Windows媒体基金会的问题在于,它最大的优势也是最大的弱点。它最大的优点是能够“深入内部”并创建自定义媒体源、媒体汇和转换等。但这种灵活性也有代价:复杂性。
LEAD的解决方案——LEADTOOLS Media Foundation sdk——在“底层”处理复杂性,通过数十个易于使用的接口向开发人员展示Media Foundation功能。
其中三个接口处理最常见的任务:捕获、播放和转换。它们简化了使用Windows Media Foundation的过程,例如按照正确的顺序连接正确的转换、枚举用于捕获的捕获设备、执行媒体回放等等。
默认情况下,Microsoft Windows Media Foundation支持几种常见的媒体文件格式,如MP4、MP3、Windows Media Video和普通静态图像。但它也是完全可扩展的,扩展允许它支持任何可用的容器格式——包括任何音频或视频编解码器。
LEAD创建了许多这样的扩展,这些扩展包含在LEADTOOLS Media Foundation SDK中。可用的编码器、解码器、媒体接收器/源和转换的当前列表在LEADTOOLS媒体基金会转型(//m.ahtuanjie.com/sdk/188宝金博怎么下载multimedia/media-foundation).
MSDN微软媒体基金会文档188宝金博安卓下载.2012年12月20日检索。
维基百科媒体基金会条目。2012年12月20日检索。