问题标签 [directshow]

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 回答
1395 浏览

com - COM:IMoniker::BindToObject 的 IBindCtx* 参数可以为 NULL 吗?

我正在使用 IMoniker::BindToObject 函数,并且我已经阅读了 MSDN 上的文章。

文章并没有说第一个参数可以为NULL,但下页的示例代码使用NULL作为参数:

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

由于我不是很了解这个参数的使用,也不需要函数返回的额外绑定信息,

我想问“参数可以为NULL吗?”。

提前致谢。

0 投票
3 回答
2295 浏览

c# - Directshow & .Net - 位图从图像左侧的右侧显示条纹?

示例图片:替代文字

我正在使用 DirectShow.net 将网络摄像头素材放入我的程序中。为此,我将源相机添加到图表中,并添加了一个 VideoMixingRenderer9。

这部分工作正常,但我使用 GetCurrentImage(out lpDib) 提取帧的部分遇到了我只能描述为一个奇怪的问题。

我正在做的是使用 Marshal.PtrToSTructure 从 lpDib 创建一个 BitmapInfoHeader,然后计算宽度/高度/步幅/和像素格式。

当我查看存储在位图中的图像时,问题就出现了 - 它的左侧有一条 10 px 宽的线,实际上是右侧的!

值得注意的是,我从 GetCurrentImage 调用中获得的数据实际上是颠倒的——注意对 Cap.RotateFlip 的调用。

我完全迷失在这里。似乎是某种偏移问题,我尝试过一些调整,但无济于事(只会产生奇怪的对角线外观)。

0 投票
2 回答
1768 浏览

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

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

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

我听过一些人说:

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

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

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

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

提前致谢。

0 投票
1 回答
645 浏览

c# - DirectShow.Net 中是否提供 IOverlay 接口

我对 DirectShow 还很陌生,现在真的只是在摸索。我想在 WPF 应用程序中托管 directshow 图形的 directshow 渲染器窗口,并且目前正在使用 HwndHost 类来尝试实现这一点。我需要的 HwndHost 是渲染视频的窗口的句柄。我找到了一个示例,它显示了通过枚举 IVideoWindow 接口的引脚并查询 IOverlay 来获取句柄,因此可以使用 GetWindowHandle 方法来获取句柄。

问题是 IOverlay 在 DirectShow.Net 中似乎不可用。阅读 DirectShow.Net关于页面,IOverlay 列在表格中,标题为“这些接口在源代码中,但已弃用、未记录、用于 Ole 自动化或无法测试,这意味着它们不是,也不会被测试”

那么我必须做些什么才能访问这个定义呢?它是否从作为库分发的构建中排除,所以我应该自己从源代码构建库吗?

或者有没有更好的方法来做我想做的事情?Anyhelp 将不胜感激,就像我说我对所有这些东西都是新手一样。

提前致谢。

编辑:那里没有多少 DirectShow 开发人员?或者这是一个愚蠢的问题,绝对可以接受窥视者可能有的任何建议......

0 投票
4 回答
12830 浏览

flash - “假”DirectShow 视频采集设备

这与我提出的最后几个问题无关。

我需要从 IP 网络摄像头 (SNC-RZ25N) 获取视频到 Flash Media Server。我宁愿不必使用 Windows,但如果它使事情变得更容易,我会的。(Flash Media Live Encoder 是一个仅限 Windows 的程序。)

我考虑了从 A 点到 B 点的许多不同路线,但似乎最简单的方法可能是使用 Flash Media Live Encoder 发布到 Flash Media Server。然后我必须弥合的唯一差距是获得 Flash Media Live Encoder 可读的视频源。

当然,我的来源在网络上,FMLE 寻找“Microsoft DirectShow 兼容视频捕获设备”。我找到了一个非免费的 SDK ( http://www.e2esoft.cn/vcam/vcamsdk.asp ),它应该允许我欺骗这样的设备,并希望将相机流发送到 FMS。

有谁知道我应该使用不同的程序或 SDK?我是否让事情变得比他们需要的更复杂?

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 投票
1 回答
1058 浏览

video - 自定义 DirectShow 图形源过滤器

我需要做的就是从内存中播放一个 AVI 视频。出于安全原因,我无法将其写入磁盘。据我所知,您通过调用获得的内置AVI播放图RenderFile只会播放文件。

是否有可以从内存播放 AVI 的 DirectShow 图形?如果没有,我该如何修改或创建一个可以这样做的图表?

0 投票
2 回答
651 浏览

c++ - 使用 WMAsfWriter 实时编码带有音频源的相机 - 抖动问题

我构建了一个 DirectShow 图表,其中包含我的视频捕获过滤器(抓取屏幕)、默认音频输入过滤器,它们都通过分离器连接到 WM Asf Writter 输出过滤器和 VMR9 渲染器。这意味着我希望将实时音频/视频编码与预览一起保存到磁盘。问题是无论我选择什么 WM 配置文件(即使是非常低的分辨率配置文件),输出视频文件总是“抖动”——每隔几帧就会有一个延迟。音频没问题 - 音频中没有抖动。CPU 使用率低于 10%,所以我认为这不是 CPU 资源不足的问题。我想我正确地给我的帧加了时间戳。可能是什么原因?

以下是解释问题的录像机视频的链接:

http://www.youtube.com/watch?v=b71iK-wG0zU

谢谢多米尼克·汤姆恰克

0 投票
1 回答
839 浏览

c# - 求源图时的 GMFBridge 问题

我正在尝试使用 GMFBridge 在多个流缓冲区图之间切换,我似乎有两个问题。

这是图表的图表: http: //massivefailure.net/dshowgraphsalt.jpg

  1. 连接到桥渲染图的桥源图上的 VMR 非常不稳定——每 4-5 秒显示一个新帧。

  2. 如果我寻找连接到桥渲染图的桥源图,那么所有输出(连接的桥源和渲染图中的 VMR 以及外部渲染器上的输出)都会停止大约一分钟。一旦它恢复问题#1的波动就消失了。

我尝试在搜索之前断开和停止桥渲染图,然后在搜索后重新连接并运行它,但我仍然遇到问题,要么冻结,要么连接的桥源图上的 VMR 大约每 10 秒显示一帧。

排序不重要的问题:

我确实在无限发球台的位置有智能发球台,VMR 连接到预览引脚,但在寻求它们之后,它们将以正常速率的 1.5-2 倍播放,直到它们赶上直播。有没有一种健全的方法可以修复它,这样我就可以回到智能发球台了?

0 投票
1 回答
192 浏览

visual-c++ - DirectShow: ieee1394id <- 这是否也描述了 USB 设备?

我正在尝试了解 DirectShow 库的实现。

DirectShow 术语中的 IEEE1394-id 是什么?

IEEE1394 是火线。

它通常还描述USB设备的ID吗?

它由 IAMExtDevice::get_ExternalDeviceID() 检索