【发布时间】:2019-05-10 03:39:30
【问题描述】:
我购买了 avermedia Gamer 便携式 C875 采集设备,并希望使用 directshow 集成到它。
我已经尝试过 OBS Studio,并且捕获效果很好,但是当我在 c++ builder 中尝试我自己的任何 directshow 代码时,我可以看到设备,但我无法获取视频格式或任何视频源。
我尝试过datastead ffmpeg 组件、mitov basic video、winsoft wcamera 和FFVCL 组件,所有这些组件都与directshow 兼容,并且都可以检测到设备但无法预览或捕获任何视频。
我什至使用了来自@Spektre 的直接directshow 代码,它只是windows DirectShow API 的基本包装器。
这会在调用时检测到但冻结
hr = graph->AddSourceFilterForMoniker(moniker, 0, dev->filtername, &dev->filter);
和 dev->filtename = "LGP 流引擎"
如果我将此设备从列表中删除,则 Directshow 驱动程序在选择“Avermedia C875 捕获设备”时会失败
我联系了 avermedia,他们说该设备与 directshow 10 兼容,并且没有新的驱动程序工作,因为它已停产。
关于如何使用 directshow 连接到该设备并从该设备捕获任何建议? EZCapture 工作正常,C875 不行。
【问题讨论】:
-
我有 AVerMedia Live Gamer Ultra GC553,它以预期的方式与 DirectShow 配合使用。具体可以设置GraphStudioNext,将视频采集过滤器连接到VMR,视频流式传输良好。
-
另外,通过 DirectShow 证明设备/驱动程序是否工作的可靠软件有:SDK GraphEdit、GraphStudioNext(上面的链接,附带源代码)、SDK 示例 AMCap。
-
@Roman 谢谢你,这两个设备都显示在这个应用程序中,但 C875 似乎没有相同的引脚,我会尝试附上一些图片,这样你就可以向我解释我会做什么需要做的
-
第一张图片,灰色框过多,可以删除。右键单击橙色的虚拟视频输出并选择渲染以添加视频渲染器过滤器并连接它。如果成功,请按播放按钮(或菜单命令)开始流式传输。当一切正常时,视频会显示在弹出窗口中。这些是在开始编写代码之前确认设备首先工作的步骤。如果这个橙色过滤器不能正常工作,你的代码只会复制这种行为。
-
您正在描述意外行为。很难说为什么会这样:安装损坏、驱动程序过时或其他任何原因。如果 OBS 正在工作,那么最好的办法是获取他们的源代码并在相关行上放置断点以查看他们在做什么。也许这是该硬件特有的东西,因为它应该专门针对类似 OBS 的流媒体。
标签: directshow capture