微软媒体基金会的现状如何?

What is the status of Microsoft Media Foundation?

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

但是,网上的教学资源和官方文档似乎非常缺乏。只有 1 本涵盖该主题的书(由 Microsoft 出版),并且不再以正常价格提供。 (人们对二手版本收取 500 美元或更多费用。)

据我所知,没有其他书籍。而来自 Microsoft 的其他技术通常在多个出版商的多本书中都有介绍。

官方 Media Foundation 博客自 2011 年以来一直没有更新。在它活跃的两年里只写了 10 篇技术文章,其中 5 篇涉及错误 logging/tracing 而不是实际功能。

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

那么 Microsoft Media Foundation 发生了什么?新的 API 是否会起飞并取代 DirectShow,或者甚至微软放弃 MF 以支持回到旧的和生锈的(可信赖的?)DirectShow。或者是否有另一个非 Microsoft 框架接管了?

首先,我不知道答案,我是一个花了太长时间试图让基本的媒体基础场景工作的人;有时感觉更像是在寻找一些失传已久的秘籍而不是编程。

我怀疑 Microsoft 确实想让 MF 成为 Windows 平台的标准媒体 API,也许最好的迹象是 Windows Universal App Samples,其中有 7 个 "mfapi.h" 但 "dshow.h" 的实例为零。此外,相对较新的 WPF MediaCapture 和 MediaElement 控件确实连接到 Media Foundation APIs,因此可以肯定地说,对于所有新工作,Microsoft 都在使用 MF 而不是 DirectShow。

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

关于官方 MF 博客,MSDN 论坛上有一个帖子在抱怨这件事,其中一位微软人员回应说他们已经切换了博客平台(如果他们能发表评论显然会很好表明)。显然,许多 Microsoft MF 开发人员仍在写博客。这个好像是最"active"one.

更新:如果有人碰巧因为 Polinger 的书参考而被吸引到这里,请注意可以从 here (the original link quoted in the book is http://go.microsoft.com/FWLink/?Linkid=229072 下载配套代码,在撰写本文时重定向到上述页面)。

对我来说,Media Foundation 真的是一个很好的API做多媒体编程。

我可以责备的是,媒体基金会的发布不适用于 Windows 7,目前世界上最流行的 OS。

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

我会尽我所能推广这个 API,所以这是我在 Media Foundation 上的工作:MFNode

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

你会发现:

  • audio/video 玩家 (win32)
  • 自定义媒体会话
  • 音序器来源
  • audio/video 捕获
  • 屏幕截图
  • kinect V1 捕捉
  • wave 音频混合器
  • http 流式传输 (winsock)
  • jpeg 编码 (Gdiplus)
  • dxva2技术
  • cuda解码
  • directX9 渲染器和着色器
  • COM技术
  • 不同类型的媒体基础来源、接收和转换(mpeg2、flv、a52、vp6...)
  • mp3 转码器

编辑

此处有更多 MediaFoundation 代码:github mofo7777

我怀疑 MediaFoundation 没有被广泛使用的一个原因是它限制了您只能以 WMV 格式编码,并且也限制了您的解码能力(您可以解码的不仅仅是 WMV,甚至是旧的 VFW 来自赢得 3.1 天让您 select 您选择的压缩机)

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

MediaFoundation API's,尽管接口,看起来仍然很低级,并且需要大量的样板代码才能使基本的东西工作 - 对于 WMV 制作非常强大,因为它们为您提供了大量工具 -但是,执行基本任务有点难(最好是下载 API 周围的包装器,令我惊讶的是,不存在很多..这些 API 不像你那么受欢迎会想)。