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

directshow - 如何在 DirectShow 中使用 SampleGrabber 和 Matroska Muxer?

我制作了一个简单的图表来编写 MKV 文件。但我不想使用文件编写器。我想使用 SampleGabber 并使用简单的程序获取流。问题是我从 Matroska muxer 以外的任何地方获取数据!(我该怎么办?

VirtualCamera - x264 - Matroska Muxer - SampleGraber - Null Renderer
(来源:narod.ru

所以我的问题是如何在 DirectShow 中使用 SampleGrabber 和 Matroska Muxer?

0 投票
4 回答
10061 浏览

directshow - DirectShow 过滤器图形编辑器不显示远程图形

我从 DirectShow 过滤器图形编辑器连接到远程图形时遇到问题。当我运行创建直接显示图的应用程序时,在我的 Windows XP 机器上,远程图列表中显示,但在 Windows 7 (x64) 机器上,远程图列表为空。我已经注册了 proppage.dll 并且还注册了 directshowspy.dll ...但仍然没有结果。有任何想法吗?

0 投票
3 回答
4452 浏览

c++ - 使用自定义 DirectShow 过滤器(DLL,已注册)

我编写了一个小型变换过滤器(派生自 TransInPlaceFilter 基类),并设法使其在 Directshow 图中正常工作,完全用 C++ 编码。我基本上遵循了MSDN上描述的 5 个第一步,以及第 6 步的最后一部分(为了在应用程序中直接使用过滤器)。

由于很多原因(包括能够在 GraphEdit 中使用过滤器),我需要将该过滤器导出到 DLL 中并进行注册。

我一直在尝试遵循这些步骤:设置“CreateInstance”方法、CFactoryTemplate 类、过滤器/引脚描述(AMOVIESETUP_FILTER、AMOVIESETUP_PIN、AMOVIESETUP_MEDIA)、注册/取消注册函数,最后是 DLLmain/入口点。

该代码成功编译并提供了一个 DLL,使用 Regsvr32 似乎可以毫无问题地注册。

但后来我无法使用过滤器:

  • 它出现在 GraphEdit 的列表中,但是当我尝试插入它时失败:0x800401f9(“DLL 中的错误”)。
  • 当我尝试在 C++ 中创建它时(使用pCustomFilter.CoCreateInstance(CLSID_Custom),在定义正确的 GUID 之后),我收到错误 0x80040154 (REGDB_E_CLASSNOTREG)

我在这里很困惑。我是否错过了 DLL/注册代码中的某些内容?如果有任何用处,我将发布我正在使用的大部分代码。

任何帮助将不胜感激。

0 投票
1 回答
2331 浏览

c++ - 自定义 Directshow 过滤器的属性页

我设法创建了一个自定义 DirectShow 转换过滤器,注册它,并将其导出到 DLL 中。它现在可以在 GraphEdit 和 C++ 测试程序中正常工作。我的下一个目标是创建一个自定义界面来控制过滤器的主要参数,从测试应用程序或从 GraphEdit 中的属性页。

按照这些说明,我的自定义界面从 C++ 测试程序中正常工作。但是,我在使用属性页时遇到了困难:我在 GraphEdit 中不断收到错误消息“无法显示请求的属性页”。

在调试时,我发现唯一调用的方法(在我的自定义属性页类中,从 CBasePropertyPage 派生)是OnConnect()OnDisconnect()- 奇怪的是(或不是?)调用了两次。在这两种方法之间,对 CBasePropertyPage 方法(基类中的文件 cprop.cpp)进行了一些调用,一切看起来都很好,直到:

STDMETHODIMP CBasePropertyPage::Activate(HWND hwndParent, LPCRECT pRect, BOOL fModal)

更准确地说

m_hwnd = CreateDialogParam(g_hInst, MAKEINTRESOURCE(m_DialogId), hwndParent, DialogProc, (LPARAM) this);

我总是得到m_hwnd0,导致方法返回错误。我试图GetLastError()在这条指令之后立即添加,但它总是返回 0,没有错误。此外,CreateDialogParam()看起来每个参数都已正确初始化......

任何帮助将不胜感激 !


编辑

现在,为了至少有一个工作示例,我使用了MSDN 教程中描述的相同资源/模板。


---编辑2---

在进行更多调试时,我尝试从 Dialog 资源中删除每个控件(按钮、滚动条)。之后......一切正常。CreateDialogParam()返回一个正确的值,我的类OnActivate()被调用等等。我最终在 GraphEdit 中获得了一个“过滤器属性”页面,但为空(默认对话框窗口除外)。

但只要我有一个控件,例如一个 MF 命令按钮,就会出现以前的问题。

DirectShow 基类和我使用的控件之间是否存在某种不兼容?(如果是这样,为什么提供的示例没有提及任何内容?)有没有更简单的方法可以将控件添加到属性页?

(我绝对不是GUI 和 Win32 控件方面的专家……)

0 投票
1 回答
4384 浏览

objective-c - 适用于 DirectShow、GraphEdit 的 Mac OS X

Mac OS X 新手,熟悉 Windows。Windows 具有 DirectShow、大量内置过滤器、COM 编程和 GraphEdit,可用于非常快速的原型设计和窥探您在代码中构建的图形。

我现在要使用 Mac 来处理相机、网络摄像头、麦克风、色彩空间、文件、拆分、同步、渲染、文件读取、文件保存以及许多我认为 DirecShow 理所当然的事情将应用程序放在一起进行现场表演时。在 Mac 方面,到目前为止,我发现......什么都没有!要么我不知道去哪里找,要么我很难将 Mac 因其易于处理媒体的声誉与连贯的编程能力联系起来,并开始使用媒体操作构建块。

我已经看到了一些使用 gstreamer 或 QT 库的弱建议,但我不能让自己相信这是 Apple 的方式。而且我遇到了一些 QuickTime 文档,但我不想做过渡,精灵,广播,......

大脑接受 DirectShow 训练意味着我什至不知道 Apple 是如何考虑提供类似 DirectShow 的功能的。这意味着我不知道正确的关键字,甚至不知道去哪里找。图书?买了几个。现在我可能可以编写一些代码来编辑你姐姐的婚礼视频(如果我不能在这个主题上取得不错的进展,我接下来可能会问你对你有什么价值),但是为了确定哪些过滤器可用以及如何将它们串在一起......什么都没有。建议?

0 投票
1 回答
1230 浏览

wpf - 为什么我的虚拟摄像头(使用 e2eVcam directshow 过滤器)无法在 Skype 或 Lync 中正确显示?

我正在使用 e2eSoft 的 VcamSDK 创建一个虚拟摄像头,并在 WPF 应用程序上以编程方式将图像叠加在其上。

使用 GraphEdit.exe 查看图形时,一切似乎都按我的意愿工作。但是 Lync 不显示我推送的任何视频或图像,而 Skype 只显示我从 GraphEdit 看到的网络摄像头流的一半。Lync 可以在视频设备设置选项卡上完美显示流,但无法在视频对话中显示,只是空白屏幕。

我只是在代码隐藏上推送一些图像作为覆盖,并且似乎无法在这两者上工作。虚拟网络摄像头的分辨率为 1280x1024,我作为叠加层推送的图像也相同。

这是我在 GraphEdit 上的图表;

在此处输入图像描述

我对这些主题不是很有经验,所以我什至不知道从哪里开始,非常感谢任何帮助。谢谢!

0 投票
1 回答
708 浏览

directshow - 为什么我在 GraphEdit 和 GraphStudio 中看到不同的过滤器

我同时使用 GraphEdit 和 GraphStudio 来处理视频。但是,有些过滤器只能通过 GraphEdit 可见,反之亦然。例如:ffdshow 在 GraphStudio 中可用但在 GraphEdit 中不可用,MainConcept 过滤器在 GrpahEdit 中可见但在 GraphStudio 中不可见。

有没有人遇到过这个问题?

艾丽莎

0 投票
1 回答
507 浏览

directshow - DirectShow DMO 颜色转换器

我在graphedit(graphstudio和代码)中连接颜色转换器DMO对象时遇到问题。它在一台机器上工作并在graphedit中变成绿色,但是在机器上我必须演示它的程序将无法连接!我查看了 sdks,安装,并且机器应该模仿我的机器。

我还注意到我可以使用 regsvr 在我的机器上重新注册过滤器,但是它在另一台机器上失败了。

关于罪魁祸首可能是什么的任何想法?

0 投票
1 回答
283 浏览

directshow - 将渲染器窗口移动到计算机第二个屏幕时 GrapEdt 崩溃 [DirectShow]

我有简单的直接直接显示过滤器:

我使用 microsoft Graph Edt Tool 运行过滤器。它工作正常......

但是当我将渲染器窗口移动到我的计算机第二个屏幕时它崩溃了......

我得到错误:

为什么它只在第一个计算机屏幕上工作并在移动到第二个时崩溃?有任何想法吗...

0 投票
1 回答
1864 浏览

directshow - 如何使用 graphedit 和 ffdshow 将 avi 转换为 mp4?

我正在开发一个基于 directshow 的应用程序,该应用程序必须将 AVI 源文件转换为可以使用 Quicktime 播放的 mp4 文件。

由于 3ivx,根据我的网络研究,完成这项任务的最流行的方式已经商业化(而且我的预算非常有限),我决定使用基于 ffdshow 的解决方案。

我在 graphedit 中创建了一个简单的图形,使用 LAME 进行音频编码,使用 GDCL MPEG 4 Multiplexor 进行复用,但是每次我尝试使用 Quicktime 播放电影时,我都会收到一个错误,指示错误的“示例描述”。使用 Windows Media Player 播放正常,但没有声音。

我的猜测是复用器有问题,因为每次我尝试添加音频编码时,graphedit 都会在编码单元之后自动添加一个解码器(参见图片链接)。

http://imageshack.us/photo/my-images/39/graphjrgr.png/

任何关于如何以更好的方式集成 ffdshow 的想法、替代 mp4 多路复用器的提示或完全不同的方法都值得赞赏!