GMFBridge源滤波器没有接收到帧

本文关键字:滤波器 GMFBridge | 更新日期: 2023-09-27 18:13:24

我有一个网络摄像头,我想开始/停止视频录制而不停止渲染器。这就是我想使用GMFBridge的原因。我的图表是:

Webcam -> FFDShow -> SampleGrabber -> Infinite Tee -> Color Converter -> Renderer
                                                   |---> GMFBridge Sink Filter
GMFBridge Source Filter -> Color Space Converter -> Encoder -> File Writer

我做的一切都像文档(InsertSinkFilter, InsertSourceFilter, BridgeGraphs等),但GMFBridge源过滤器不接收任何帧。

DirectShow中的GMFPreview示例。NET示例工作,但它使用RenderStream函数来准备图形。我的代码和GMFPreview之间的唯一区别是我手动添加过滤器并连接它们的引脚并启动图形(我不使用RenderStream函数)。

我应该怎么做才能在GMFBridge源过滤器中接收帧?

GMFBridge源滤波器没有接收到帧

调试的第一步是在JoinFilterGraph方法中启用图形注册,并确保(使用Graphedt连接到远程图形)引脚以您期望的方式连接。

然后,创建一个日志文件-在My Documents中创建一个空文件gmfbridge.txt,运行应用程序,并查看日志以查看交付进度。

我真不敢相信我犯了这么愚蠢的错误。我曾经用ICaptureGraphBuilder实例做桥图:

Bridge.BridgeGraphs(Graph_builder, Graph_builder2);

,但实际上我应该用吸收过滤器和源过滤器参数桥接图形:

Bridge.BridgeGraphs(Graph_BridgeSinkFilter, BridgeSourceFilter);