问题标签 [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 回答
1976 浏览

video - 媒体基金会。使用自定义 IMFMediaSource 从位图中编码视频

任何人都可以澄清以下问题吗?一个像样的源代码片段或示例会很棒,到目前为止我发现的唯一相关示例是 SDK 中的 WavSource。

  1. 原始位图数据如何呈现给编码器?是 (A)RGB 32BPP 还是类似的?

  2. 基于 WavSource 示例,在输入流上调用 RequestSample(),这将返回数据、播放时间和持续时间。所以我会返回一个适当格式化的缓冲区,其播放时间和持续时间为 1 秒?

谢谢。

0 投票
2 回答
2454 浏览

windows - 我可以从 DirectShow 获取原始视频帧而不播放吗

我正在使用媒体基础开发媒体播放器。我想支持VOB文件播放。但是,媒体基金会目前不支持 VOB 容器。因此,我希望同样使用 DirectShow。

我在这里的想法不是使用 DirectsShow 图表采用替代路径,而只是抓取一个视频帧并将其传递到媒体基础中的同一管道。在媒体基础中,我有一个“IMFSourceReader”,它只是从视频文件中读取帧。是否有直接显示等效项,它只为我提供帧而无需创建图形、开始播放周期,然后尝试从渲染引脚中提取帧?(更清楚地说,DirectsShow 是否支持一种架构,它可以给我原始帧而无需实际播放视频?)

我读过 ISampleGrabber,但它已被弃用,我认为它不适合我的架构。我以前没有在 DirectShow 上工作过。

谢谢,莫茨

0 投票
1 回答
1823 浏览

directshow - IMediaSample(DirectShow) 到 IDirect3DSurface9/IMFSample(MediaFoundation)

我正在开发自定义视频播放器。我在我的架构中使用了 DirectShow/Media Foundation 的组合。基本上,我使用 DS 来抓取 VOB 帧(MF 不支持)。我能够从 DirectShow 获得一个样本,但一直坚持将其传递给渲染器。在 MF 中,我得到了一个 Direct3DSurface9(来自 IMFSample),并使用 IDirect3D9Device 将它呈现在后台缓冲区中。

使用 DirectShow,我将 IMediaSample 作为我的数据缓冲区对象。我不知道如何转换并将其作为 IMFSample 传递。我发现其他人从示例中获取位图信息并使用 GDI+ 进行渲染。但我的视频数据可能并不总是有 RGB 数据。我希望从 IMediaSample 获得 IDirect3DSurface9 或 IMFSample 并将其传递给渲染,这样我就不必为色彩空间转换而烦恼了。

我是新手。如果我错了,请纠正我。谢谢

0 投票
0 回答
850 浏览

rtsp - 媒体基础:当 GOV 长度大于 1 时,来自摄像机的 mpeg4 流会失真

我在客户端使用 Media Foundation 通过 RTSP 服务器显示来自 AXIS 摄像机的实时 mpeg4 流。

如果我设置 GOV @ camera = 1,客户端视频工作得很好,即相机只会发送 I 帧。但是如果 GOV 增加并且相机也开始发送 P 帧,我的视频会突然定期失真。我不能总是设置 GOV = 1,因为它会消耗大量带宽。

以下是我向媒体基金会提供样本的 RequestSample 方法的代码:

我需要设置任何属性来处理 P 帧吗?

任何帮助将不胜感激....

更新(2012/02/22):

我运行了一些统计数据,发现有时 I 帧从未到达客户端,即假设 GOV = 15,所以每 15 帧应该是一个 I 帧,但有时(不定期)客户端在 28 或 30 之后收到一个 I 帧或 59 个 P 帧。

任何指针??

谢谢,

普拉泰克

0 投票
1 回答
7731 浏览

directshow - 自定义虚拟视频捕获设备

我是媒体基金会和 C++ 的新手。但我想创建一个可供 Microsoft Expression Encoder 使用的虚拟视频捕获设备。你能告诉我看哪个方向吗?我认为它应该是异步工作的东西,源将是来自移动设备的字节流。提前致谢。

0 投票
1 回答
1503 浏览

ms-media-foundation - 如何在媒体基础中播放 IMFMediaSample?

我可以使用 readSample 方法从视频中提取样本。现在如何播放这些样本中的数据?或者如何玩 IMFSample ?

0 投票
0 回答
166 浏览

windows-8 - 无法调试或修改 Windows 8 灰度过滤器示例

我正在为 Windows 8 (Metro) 开发。Microsoft 有一个不错的 MediaCapture 示例项目。它可以为您的网络摄像头应用灰度滤镜。我构建并运行了这个项目,一切都很好。然后我开始弄乱过滤器,尝试制作自己的过滤器。我修改后的过滤器构建正常,但是当我运行应用程序时,我似乎得到了原始过滤器。就像原始版本缓存在某个地方一样。我在修改后的过滤器上设置了断点,没有任何效果,甚至在 dllmain() 中也没有设置断点。我错过了什么?

0 投票
2 回答
934 浏览

ms-media-foundation - windows media player如何调用第三方解码器MFT?

根据Windows SDK中的解码器示例,我实现了自己的解码器MFT,但是关于第三方MFT有一个问题。我注册了一个amr编解码器MFT,用windows示例代码调试),手动连接拓扑,可以正常播放。但如果我运行 windows 媒体播放器,它不会播放包含 amr 编解码器的文件。

我该怎么办?Windows 媒体播放器可以自动调用我的编解码器 MFT。

其他问题是关于优点的,比如directshow。

0 投票
2 回答
993 浏览

visual-c++ - 我想从基础开始学习 DirectShow 和 MediaFoundation 编程。学习资源(网站链接等)所需的帮助

我想从基础开始学习 DirectShow 和 MediaFoundation 编程。培训资源(网站链接等)所需的帮助。

开始使用 DirectShow 和 MF 编程的所有先决条件。

我想我必须具备 COM 编程基础知识。由于我需要快速使用 DirectShow 和 MF,如果有人可以让我知道我应该知道 COM 的哪个部分与 DShow 和 MF 编程有关,那将非常有帮助。(因为我没有太多时间,我需要快速使用 COM,以便我可以腾出更多时间来加速 DirectShow 和 MF)。

帮助我使用 COM 上的培训链接也将非常有帮助。

我是 COM、MFC、DirectShow、媒体基础等方面的新手......(提供的培训链接牢记这一点将非常有助于从基础开始)

提前致谢。

0 投票
4 回答
3218 浏览

visual-c++ - 微软媒体基金会网络摄像头接口

我一直在开发一个 c++ 接口,以通过 Micrsoft Media Foundation 从所有类型的网络摄像头中捕获图像。我已经有一些代码可以连接多种类型的网络摄像头,并且能够捕捉不同分辨率和格式的图像。

我知道在 WinXP 下可以通过使用 Direct Show 库来更改网络摄像头的不同参数(如白平衡、曝光时间等)。不幸的是,Direct Show 库中可以轻松从网络摄像头捕获单帧的界面已从 Win7 下的 Direct Show 中删除。有人知道我如何使用 Microsoft Media Foundation 或我可以与 Microsoft Media Foundation 结合的任何其他库来访问这些参数吗?