微软媒体基金会的状况如何



Microsoft Media Foundation(MF)作为DirectShow在Windows Vista中的继任者而推出。我基本上忽略了它,但它有一些功能(如WMV AC-1文件的解码)很难在DirectShow中实现。Media Foundation也是一个更现代的API,因此进行切换似乎是合乎逻辑的。

然而,在线教学资源和官方文件似乎非常缺乏。只有一本关于这个主题的书(由微软出版),而且它不再以正常价格出售。(人们收取500美元,二手版甚至更多。)

据我所知,没有其他的书了。而微软的其他技术通常由多家出版商在多本书中介绍。

自2011年以来,媒体基金会的官方博客一直没有更新。在它活跃的两年里,只写了10篇技术文章,其中5篇涉及错误记录/跟踪,而不是实际功能。

StackOverflow标签ms media foundation仅用于328个问题,其中142个问题未回答。相比之下,DirectShow有1641个问题,其中只有496个问题没有得到回答。

那么微软媒体基金会怎么了?新的API会取代DirectShow吗?或者甚至微软已经放弃了MF,转而使用陈旧过时的(可靠的?)DirectShow。或者可能有另一个非微软的框架取代了它?

首先,我不知道答案,我花了太长时间试图让媒体基础的基本场景发挥作用;有时候,这感觉更像是在寻找一些早已失传的秘密经文,而不是编程。

我的怀疑是,微软确实想让MF成为Windows平台的标准媒体API,也许最好的指示是Windows通用应用程序示例,其中有7个"mfapi.h"实例,但没有"dshow.h"实例。此外,相对较新的WPF MediaCapture和MediaElement控件确实与媒体基础API挂钩,因此对于所有新工作来说,这似乎是安全的微软正在使用MF而不是DirectShow。

哇,我明白你说波林格的MF书是什么意思了!我有这本书(我很快就会以这个价格出售),可以向你保证它绝对不值得。尽管我重读了很多遍,但我从未真正发现它有多大帮助。它与在线文档几乎相同,因为它坚持使用少数特定场景(事实上,书中的许多章节只是重新打印了SDK示例),一旦你需要做一些超出这些场景的事情,你就可以自己做了。

关于MF的官方博客,MSDN论坛上有一条帖子抱怨这件事,其中一名微软员工回应称,他们已经更换了博客平台(如果他们能写一条说明,那显然会很好)。显然,许多微软MF开发人员仍在写博客。这似乎是最"活跃"的一次。

更新:如果有人因为波林格的参考书而被画在这里,请注意,配套代码可以从这里下载(书中引用的原始链接是http://go.microsoft.com/FWLink/?Linkid=229072其在写入时重定向到上述页面)。

对我来说,Media Foundation确实是一个非常好的API来进行多媒体编程。

我可以责怪的是,媒体基金会的版本不适用于目前世界上最流行的操作系统Windows7。

Media Foundation有很多竞争对手(DirectShow、Ffmpeg、Gstreamer等)。因此,更多的选择,更少的开发人员,更少的教程等等…

我尽量推广这个API,所以这里是我在媒体基础上的工作:MFNode

我涵盖了很多场景,您必须检查源代码才能学习。

你会发现:

  • 音频/视频播放器(win32)
  • 自定义媒体会话
  • 定序器源
  • 音频/视频捕获
  • 屏幕捕获
  • kinect V1捕获
  • 波形音频混合器
  • http流(winsock)
  • jpeg编码(Gdiplus)
  • dxva2技术
  • cuda解码
  • directX9渲染器和着色器
  • COM技术
  • 不同类型的媒体基础源、接收和转换(mpeg2、flv、a52、vp6…)
  • mp3转波转码器

编辑

更多MediaFoundation代码点击此处:github mofo7777

我怀疑MediaFoundation没有被大量使用的一个原因是它限制了你只能用WMV格式编码,也限制了你的解码能力(你可以解码的不仅仅是WMV,但即使是Win 3.1天的旧VFW也允许你选择你选择的压缩器)

更粗糙和更旧的VFW(windows视频)比所有最新和最棒的VFW都更简单,并且允许多个压缩器-所以我想知道MediaFoundation是否会更新,允许比它们提供的非常有限的选择更多的压缩器和解压缩器(或编码器和解码器)。

MediaFoundation API的接口虽然很低,但似乎仍然很低,并且需要大量的锅炉板代码才能使基本的东西正常工作-对于WMV生产来说功能强大,因为它们为您提供了大量的工具-但是,有点难以用于执行基本任务(最好是下载API的包装器,令我惊讶的是,没有多少包装器存在……这些API并不像你想象的那么受欢迎)。

最新更新