问题标签 [ms-media-foundation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3110 浏览

.net - 没有 Windows Media Player 10+ 的 WPF 中的媒体支持?

我想知道是否可以在没有 Windows 媒体播放器 10 或 11 的情况下部署 Windows Media Foundation?

这是上下文。我有一个在企业环境中运行的 WPF 应用程序。WPF 需要 Windows Media Foundation 来支持富媒体。Windows Media Foundation 是通过 Windows 媒体播放器 10 和 11 分发的。WMP 10/11 的公司发布时间表太遥远了,我等不及了。但是因为我不需要整个播放器基础设施,只需要媒体基础,我想知道是否有办法只部署那个组件。

0 投票
2 回答
1768 浏览

directshow - 将 DirectShow 过滤器迁移到 Media Foundation MFT 的快速方法

我有一些自定义 DirectShow 过滤器(用于编码/解码/复用/解复用)。

我想在 Media Foundation 上将它们用作 MFT。

我听过一些人说:

“微软声称所有 DirectShow 过滤器只需添加一些代码即可迁移到 MFT”

实际上,我怀疑有没有快速的方法。因为 DShow 和 MediaFoundation 的方法、API 不同。

但既然有人告诉我这些信息,我想问一下:

“这是真的吗?我怎么能快速迁移?”

提前致谢。

0 投票
1 回答
949 浏览

com - 媒体基金会:调用 IMFActivate::ShutdownObject 的另一种方式?

这是一个关于媒体基金会IMFActivate::ActivateObject的问题。IMFActivate::ShutdownObject

根据 MSDN,调用的组件ActivateObject负责调用ShutdownObject.

但是有两个例子不遵循这个规则:

http://msdn.microsoft.com/en-us/library/dd388503%28VS.85%29.aspx

http://msdn.microsoft.com/en-us/library/dd317912%28VS.85%29.aspx

在这两个例子中,它们调用ActivateObject然后释放IMFActivate接口而不调用ShutdownObject方法。

这会导致内存泄漏,对吧?还是有其他方法可以释放对象占用的资源?

(我可以使用IMFMediaSource::Shutdown释放对象而不是使用IMFActivate::ShutdownObject

提前致谢。

0 投票
2 回答
4321 浏览

c# - 使用 C# 的 Microsoft 媒体基础转换 (MFT)?

有谁知道是否可以用 C# 编写适用于 Win7 的 Microsoft MFT?如果是这样,是否有任何书籍或网站可以帮助我。

0 投票
0 回答
674 浏览

.net - 托管代码的媒体基础类型库?

有谁知道如何生成媒体基础 TypeLibrary,然后将其作为 COM 导入托管代码?我没有找到任何可以在我的 C#.Net 应用程序中导入的与媒体基础相关的 dll 或 tlb 文件。

0 投票
3 回答
8538 浏览

c++ - 使用 Windows 媒体基础

好的,所以我的新工作是高性能视频(想想谷歌街景但电影) - 艰苦的工作都是嵌入式捕捉和图像处理,但是:

我正在查看用于显示内容的新 MS 视频产品 = Windows Media Foundation。

有人真的在用这个吗?

  • 没有关于该主题的书籍。
  • 唯一的文档是一个开发团队博客,其中包含一个 9 个月大的条目。
  • 我以为我们已经不必通过监视 com 控制消息来学习 MS api 了!
  • 它只是围绕同一个旧的 activeX 控件的另一个包装器吗?
0 投票
2 回答
2911 浏览

c++ - 使用 IMFSourceResolver::CreateObjectFromByteStream

我正在尝试使用 IMFSourceResolver::CreateObjectFromByteStream 方法为受 DRM 保护的 WMA 文件创建 IMFMediaSource 实例。我正在将 Windows SDK 中的 ProtectedPlayback 示例改编为游乐场。我希望实现的最终目标是让播放过程由自定义实现提供,如果我将编写 IMFByteStream。

但是,我无法让我的简单 IMFByteStream 实现或 MFCreateFile 函数返回的实现工作。当传递给 CreateObjectFromByteStream 时,每个都返回 MF_E_UNSUPPORTED_BYTESTREAM_TYPE 的 HRESULT。

我使用受 DRM 保护的 WMA 文件测试了默认状态下的示例项目(在文件上使用 CreateObjectFromUrl),它运行良好。文件未损坏且许可证有效。我不明白为什么用 CreateObjectFromByteStream( MFCreateFile() ) 替换这段代码不起作用。我几乎找不到涵盖使用自定义字节流或解析器对字节流实例的期望的文档。

如果有人对这些东西有任何经验或知道我做错了什么,将不胜感激。

我正在使用的代码在这里:

我没有包括整个东西,因为它与示例基本相同,我只更改了这一部分。

谢谢,

史蒂夫

0 投票
2 回答
1488 浏览

directshow - 在 DirectShow 之外使用 DirectShow 过滤器?

我目前正在与 Windows Media Foundation 打交道。但是,由于 Microsoft H.264 解码器的一些问题和一些缺少自定义格式的解码器,我想知道是否可以直接使用 CLSID 实例化 DirectShow 解码器,并围绕它构建一个暴露 IMFTransform 的代理为媒体基金会获取解码器。所以这是我的问题:

我可以直接实例化 Directshow 过滤器(最好是解码器)并将它们用于解码(即放置一些压缩帧并获得未压缩的帧)以创建 MFT?

我知道如何使用其 CLSID 实例化过滤器本身。但是,我不知道如何使用实际的解码功能。

任何想法,提示,链接都将不胜感激。谢谢,

J。

0 投票
2 回答
5800 浏览

.net - System.AccessViolationException 来自非托管代码?

我正在编写这个库,它通过将由托管代码使用的媒体基础框架在 C++/CLI 中实现一些基本的音频播放器功能。我可以很好地播放音频、停止、暂停等。对于不熟悉 Media Foundation 的任何人,媒体会话都会发布您可以处理的通知事件。这是通过使用 IMFAsyncCallback 对象在会话对象上调用 BeginGetEvent 来完成的。IMFAsyncCallback 定义了您应该实施以处理事件的方法 Invoke(IMFAsyncResult)。发生事件时,工作线程上的会话对象会调用调用方法,该对象具有您可以查询事件信息的 IMFAsyncResult 对象。此结果对象由事件线程创建和拥有。

在我的 Invoke 实现中,每当我尝试使用传递的 IMFAsyncResult 对象执行任何操作(包括仅调用 QueryInterface 或其他操作)时,都会收到 System.AccessViolationException。我实现 IMFAsyncCallback 的对象是在 CRT 堆上分配的基本 C++ 类(非托管),事件发布在会话对象拥有的线程上,该线程也分配在 CRT 堆上。

  1. 什么可能导致此异常?

  2. 为什么我会从用普通旧 C++ 实现的代码中抛出 .NET 托管异常?当你有一个混合模式程序集时会发生这种情况吗?

0 投票
2 回答
8288 浏览

ms-media-foundation - Microsoft Media Foundation - 解码 h264 示例

我使用 Microsoft Media Foundation 示例(即 MFCaptureToFile)从我的网络摄像头捕获 H264 帧并将它们写入文件。

我正在尝试使用 IMFTransform 来解码捕获的帧并获取下划线图像(YUV、BMP 等)。

但是,ProcessInput 方法永远不会返回 MF_E_NOTACCEPTING,而 ProcessOutput 方法总是返回 MF_E_TRANSFORM_NEED_MORE_INPUT。

我基本上阅读每一帧并在其上调用 ProcessInput。

有任何想法吗?有人可以修改 MFCaptureToFile 示例以向我展示它是如何完成的吗?我正在 CCapture::OnReadSample 下进行所有处理。

任何帮助将不胜感激!

我愿意