问题标签 [graphedit]

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

c++ - c++ directshow过滤器私有接口

我正在使用直接显示示例 ezrgb24 并尝试公开其私有接口。在iez.h 文件中有以下代码

构建 dll 后,我使用 cmd 窗口注册了它。我应该如何从我们的项目中公开或使用 get_IPEffect() 或 put_IPEffect() ?

我编码如下,但它没有工作

在 IIPEffect 我收到错误“'IIPEffect':未声明的标识符”我应该如何声明它?

0 投票
1 回答
1190 浏览

visual-c++ - 重新连接 Directshow 过滤器引脚

如何重新连接过滤器引脚?

我创建了一个调整大小过滤器 (c++) 并添加了一个带有选项 Pal(720X576) 和 Ntsc(720X480) 的属性页。(默认为 Pal)。

在图形编辑中,我选择了一个视频文件并向其中添加了我的调整大小过滤器,当我播放图形时,它工作正常并在 Pal 中显示视频。当我尝试将其更改为 Ntsc 时,它无法正常工作。为了使其正常工作,我需要先断开 Resizer 过滤器引脚,然后更改输出设置,然后重新连接。(我手动执行此操作,视频正在 Ntsc 模式下播放。)

是否可以在 Transform() 或任何其他更好的建议中重新连接过滤器。请建议/指出我的仪式方向。

0 投票
1 回答
1218 浏览

c++ - DirectShow Filter error "Class is not registered"

Using the following code under my cpp/win32 project I get error "class is not registered"

This is not true,since my filter works just fine under GraphEdit and I can also find it using IFilterMapper2 enumerating monikers. I can also bind to object from the direct show filters successfully.

So, what's wrong with the CoCreateInstance ?

PS:This is a 32bit filter that registered under a 64Bit Windows 7 system. In the registry I can also find the filter under sysWOW3264 (a mirror registry for 32-bit windows apps running on 64bit windows).

You can also refer and find the source code to my codeproject post at http://www.codeproject.com/Messages/4603967/Class-not-registered-error.aspx

0 投票
1 回答
2653 浏览

webcam - DirectShow - Microsoft LifeCam Studio - RBG24 格式丢失

我在 C# 中使用 DirectShowNet。我一直在开发一个应用程序来使用网络摄像头来显示视频、更改分辨率和拍照(无论是静止图钉还是来自捕获流)。我一直在 2 台不同的机器(Win 7 64 位和 Win 8 64 位)以及这些机器上的内部网络摄像头(它们是笔记本电脑)和其他 2 台网络摄像头 Logitech C920 和 Microsoft LifeCam Studio 上对其进行测试。

有一天,LifeCam Studio 在我的 Win 8 机器上停止工作。使用 GraphEditPlus,检查 Capture 引脚的 VideoFormats,我注意到神秘地不再列出 RGB24 格式。我编写的应用程序只使用 24 位颜色格式。仅列出 YUY2 16 位格式。如果我在我的 Win 7 机器上检查相同的网络摄像头,我会看到列出了 YUY2 和 RGB24 格式。以前,我的 Win 8 机器确实列出了这两种格式。

问题是,什么可能导致 DirectShow 更改 Capture 引脚的 VideoFormats 列表?到目前为止,我注意到更改驱动程序版本会对网络摄像头支持的引脚产生巨大影响,但我还没有看到它们像这样更改视频格式。据我所知,我还没有更新任何一台机器上网络摄像头的驱动程序。

这是两台机器的驱动程序版本。


LifeCam Studio - Windows 7 - 64 位

LifeCam Studio - Windows 7 - 64 位

LifeCam Studio - Windows 8 - 64 位

LifeCam Studio - Windows 8 - 64 位

0 投票
1 回答
822 浏览

visual-c++ - Directshow - 使用自定义 Source、InfTee 和 AVI Mux 时 IMediaControl::Run 挂起

我正在使用自定义源过滤器从 Internet 获取实时视频流,但不知道它是如何工作的。此源滤波器提供两个分别为音频/视频的输出引脚。当我只是使用它来将直播捕获到 avi 文件中时,如下所示: 简单的连接

它运作良好。但是,当我尝试在仍然捕获的同时进行预览时,我首先在自定义过滤器和 AVI Mux 之间添加了一个 Infinite Pin Tee 过滤器,如下所示: 与 InfTee 的连接

然后 GraphEdit 中的图形无法启动(当我单击“启动图形”按钮时,它什么也不做,也没有任何反应)。

(ps:我认为在这里使用 Infinite Tee 而不是 Smart Tee 更好,因为该自定义过滤器看起来不像捕获过滤器。)

我尝试编写一个 Visual-C++ 代码做同样的事情,只是使用 CoCreateInstance、IGraphBuilder::AddFilter 和 IGraphBuilder::Connect。查看发生了什么错误以及 HRESULT 是什么。然后我发现调用 IMediaControl::Run 时程序挂起。(IMediaControl 的实例是从 IGraphBuilder 的实例中查询到的)。

我不知道它为什么会这样,我也不知道如何调试它。那么有人给我任何帮助或提示吗?

谢谢你。:)

0 投票
0 回答
1319 浏览

c# - DirectShow - 过滤器在 GraphEdit 中连接,但不在我的应用程序中

我有一个 C# 应用程序,它应该构建一个 DirectShow 图来呈现 H.264 编码的视频流。我使用 DirectShowLib 作为托管包装器。我已经让它与 RTSP 源和 H.264(视频处理项目、DivX、Datastead 等)的不同过滤器一起使用,但最近,我遇到了这里提到的 MontiVision 过滤器。我在 GraphStudio 中试用了它们,并且对它们的性能非常满意,因此我想在我的应用程序中使用它们。

奇怪的是,虽然“MV 流源”和“MV 视频解码器”过滤器在 GraphStudio 中无缝连接(在设置 RTSP URL 之后),但当我在 C# 中尝试相同的事情时,我在尝试连接时得到 VFW_E_NO_ACCEPTABLE_TYPES 的 HRESULT相同的过滤器。“MV Stream Source”输出一个AVC1 Mediatype,我不知道“MV Video Decoder”接受什么媒体类型,但是当我在GraphStudio中连接过滤器时,它似乎接受了AVC1。

我确信引脚名称和 GUID 是正确的(与 GraphStudio 中的相同)。我还尝试在过滤器创建和连接之间等待(Thread.Sleep)长达 10 秒,但无济于事。

有人知道我可能做错了什么吗?谢谢!

连接过滤器的代码如下所示:

创建过滤器:

帮手:

0 投票
0 回答
433 浏览

opencv - 使用 OpenCV 通过单个多头(立体)相机进行拍摄

我有一个可以检测到的单个多头(立体声)usb 摄像头,并且可以使用 GraphEdit 中的“视频捕获源”过滤器流式传输立体声视频在此处输入图像描述

我正在尝试使用 OpenCV2.4.8(在具有 VS2010、Win7 X64 的 PC 上)访问两个通道以进行进一步的立体图像处理。但是,我只能检测/流式传输相机的单个头(通道),而不是它的两个立体声头。我的代码是根据VideoCapture::grab/VideoCapture::retrieve的相关文档说明设置的,如下所示:

问题是无论传递哪个通道索引,渲染的通道(Lframe,Rframe)都是相同的。因此,只能访问某些头部并且我无法获得立体声流。

有没有办法直接在 OpenCV 中使用“视频捕获源”过滤器?

等待您的帮助并提前感谢您,

0 投票
1 回答
1486 浏览

c++ - ISampleGrabber 未声明的标识符

我正在尝试执行由 graphEditPlus 生成的代码(使用 VS2010),但遇到以下行的问题:

其中的错误是:错误 C2065:“ISampleGrabber”:未声明的标识符错误 C2065:“IID_ISampleGrabber”:未声明的标识符错误 C2514:“ATL::CComQIPtr”:类没有构造函数

我尝试下载不同版本的 Windows SDK(V7.1、V6.0A、V5)并设置包含/库路径,但仍然遇到同样的问题!

SampleGrabber 是否仍受支持?主要是,SampleGrabber 在我的代码中用于从视频捕获源中抓取帧......

感谢你的协助...

0 投票
1 回答
152 浏览

winapi - Graphedit 智能连接 - 奇怪的行为

我正在我的 directshow 代码中使用ICaptureGraphBuilder2构建图形。

我正在将我的相机实例和VMR9 渲染器添加到图表中,并尝试使用RenderStream API 使用捕获引脚和实现的 MEDIATYPE_video 格式对其进行智能连接。

如果我使用ROT导出构建的结果图,我可以在源过滤器和渲染过滤器之间看到一个smarttee过滤器、解压缩器过滤器和一个色彩空间转换器过滤器。

但是在 Graphedit 中,我使用相同的源和渲染过滤器构建了自己的图形,并尝试在我的捕获引脚中使用rightclick->renderpin智能连接它,没有添加中间体。

为什么会出现这种奇怪的行为?

0 投票
1 回答
711 浏览

ffmpeg - 如何将 directshow 的 graphedit 输出发送到 FFMPEG?

我需要从 directshow 过滤器获取输出并将其用作 ffmpeg 的输入。基本上我会捕获一个视频并压缩它(x264 dshow过滤器,它需要硬件加速),然后使用ffmpeg对其进行复用(TS)。我找不到用于 ffmpeg 的 TS muxer 过滤器,所以我认为这将是解决方案。

那么,我如何将graphedit的输出发送到ffmpeg?