问题标签 [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.
windows - 是否有检测操作系统的宏...?
我打算使用 vista 之后可用的媒体基础 API 编写一段代码。我想在#if 块中添加代码,例如...
我找不到检测操作系统版本的宏。这通常是如何在 Windows 上完成的?我发现 _WIN32 和 _WIN64 可以检测 32 位和 64 位,但没有确定 api 可用性的宏。有没有更好的方法根据 vc.. 中的 API 可用性隔离代码?
谢谢,阿比奈。
windows - DirectShow 与 Media Foundation 的视频捕捉?
我正在尝试在这两个 API 之间为视频捕获/监控/流式传输应用程序进行选择,但我不确定哪个是最好的选择。
一点背景:
- 我需要它与各种视频采集卡/加密狗一起工作。
- 该应用程序可能会使用 C++ 开发,因此本机 API 是必不可少的
- 性能很重要,因为我需要处理多个视频流
有点谷歌搜索给我的印象是
- MF 仅支持 Win 7 上的视频捕获
- Directshow 得到更好的支持,但会过时
- MF 可以在某些应用中提供更好的性能
MF 感觉是一个更好的选择,但我担心如果 MF 没有“赶上”并且 Directshow 仍然是首选的 API,最终会陷入技术死胡同。建议和建议,请...
windows-7 - 为 MPEG2 传输流构建图的最佳方法
在 Windows 7 上,Windows Media Player 非常支持 .ts 文件,因为 Windows Media Player 知道如何处理此类文件而无需任何额外的编解码器包。
但是,如果我尝试使用 graphedit “渲染” .ts 文件,它会抱怨它不知道如何为它构建图形。
Windows Media Player 使用什么方法对这些文件进行解复用/解码?是直播吗?Windows 媒体基金会?BDA?微软电视技术?统一调优模型?
无论他们使用什么方法,都可以作为 API 用于我的自定义应用程序吗?
.net - 为 Media Foundation 生成托管包装器
MF 团队提供了用 C# 编写的 MFManagedEncode,在源代码中他们为许多 MF 接口创建了包装器,但不是所有接口,是否有任何工具可以自动生成其余接口的包装器?如果没有,我需要自己编写包装器,但是我在哪里可以找到 COM 的 GUID 和接口的 IID?MSDN刚才提到接口属于哪个lib,比如IMFMediaStream接口的IID是什么?
c++ - 获取视频文件的原生视频分辨率
我目前正在为 Media Foundation 播放器编写一些自定义 EVR。
到目前为止一切正常,但我需要找到我正在渲染的视频文件的原始分辨率。
我尝试使用 IBasicFilter2 接口来使用 getVideoSize、get_VideoHeight 或其他 get_SourceWidth 等...但它总是返回给我一个 E_NOINTERFACE...
那么有人有办法获得视频文件的分辨率吗?即使它有一个漂亮的灯光库......只是大小没有别的......Windows设法在文件浏览器中找到它,但我完全无法从代码中获取它......
谢谢!
windows - Simulating a webcam stream
Is it possible to simulate a web-cam output so that other programs that use web-cams (for example Skype) will recognize it as a real web-cam?
directshow - 使用 Media Foundation 解码 MPEG1/2 视频
我正在使用 Media Foundation 播放视频。在 Windows 7 上,一些用 Mpeg1/Mpeg2 PS 和 Windows Media Player 编码的视频可以播放它们,但 Media Foundation 不能(我尝试注册一个存根 MPEG1Source,但它仍然无法正常工作)。我注意到其中一些文件可以用 directshow 播放,但不能用 Media Foundation 播放(根本无法打开)。我猜“媒体播放器”不只使用媒体基金会?
是否可以使用 Media Foundation 播放这些文件?如果不是,媒体播放器如何工作?非常感谢。
PS我已经阅读了windows SDK并注册了一个“假”mpeg1解码,它显示了一个没有时间码的空白帧。如果 windows 媒体播放器可以解码,为什么我们需要一个假的 mpeg1 解码器?
c# - VMR9 与 EVR:如何将 ImageCompositor 与 EVR 一起使用?
我编写了一个 PixelShader 编译器/测试器,它可以在使用 DirectShow.Net + VMR9 播放的图像或视频源上实时工作。
一切都很好,直到我决定将它作为一个真正的视频播放器试一试,并开始调整它的每一点以使其正常工作(标题等)。
然后我发现在带有 ATI gpus 的 Windows7 上,视频非常像素化(插值很差)。解决方案是使用 EVR。我做到了。除了背景闪烁和调整大小缓慢的一些小故障之外,我将尝试使用自定义演示器解决它,这一切看起来都不错。
但...
我失去了对输出视频应用像素着色的能力,因为 EVR FilterConfig 接口上没有 SetImageCompositor 方法。
这是 EVR 界面:
这是 VMR9 接口:
我一直在使用这种方法和自定义图像合成器来应用像素着色器:
我现在不可以...
使用:VS2010、C#、DirectShow.NET、Mediafoundation.NET、托管 DX9。
这个问题的解决方案是什么?有关如何使用 EVR 执行此操作的任何指南?
非常感谢你!
c# - Vista / Windows 7 中的字幕透明度
我在我的一个播放器中实现了 EVR 渲染器,以处理 Windows Vista+ 上糟糕的大小调整质量,但遇到了问题......
我的 EVR 有字幕叠加问题:
试着看看我在说什么- 你必须在选项中设置 EVR。
我使用它来将 32 位 alpha 位图应用到 VMR9,使用 DirectX 表面:
然而,现在 MediaFoundation.NET 项目没有要设置的 alphaBmp.pDDS 指针,所以我不能使用 directdraw 表面,需要使用 GDI(如果有人有办法做到这一点,它会很酷)。但是对于 GDI,我不能使用 32 位 alpha 位图来实现真正的透明度 - 我用这种方法只能获得 1 位透明度:
所以问题是:
- 如何使用 DirectDraw 表面在 EVR 视频上混合位图或
- 如何在没有 DirectDraw 的情况下混合半透明位图?
非常感谢!