Graph 如何在不停止图形的情况下将预览流添加到图形中?

Graph 如何在不停止图形的情况下将预览流添加到图形中?,graph,directshow,video-capture,Graph,Directshow,Video Capture,问题在于构建一个支持三种状态的捕获图: 仅预览 仅捕获到AVI文件 结合 我构建了如下图表: 该图对应于状态3。现在,如果我想更改状态2,我将删除预览流并获得如下图形: 想象我运行图表并开始捕获。现在我想回到第三州。如何在不停止图形的情况下执行此操作(添加预览流)?(应继续捕获) UPD。也许可以捕获到AVI文件的末尾?如果是这样,我可以在状态2停止图形,向其添加预览流(更改为状态3),并继续捕获现有AVI文件(在上一步生成)的末尾。可能吗 UPD2。我找到了一些黑客。当我想从状态3更改状态

问题在于构建一个支持三种状态的捕获图:

  • 仅预览
  • 仅捕获到AVI文件
  • 结合
  • 我构建了如下图表:

    该图对应于状态3。现在,如果我想更改状态2,我将删除预览流并获得如下图形:

    想象我运行图表并开始捕获。现在我想回到第三州。如何在不停止图形的情况下执行此操作(添加预览流)?(应继续捕获)

    UPD。也许可以捕获到AVI文件的末尾?如果是这样,我可以在状态2停止图形,向其添加预览流(更改为状态3),并继续捕获现有AVI文件(在上一步生成)的末尾。可能吗

    UPD2。我找到了一些黑客。当我想从状态3更改状态2时,我只是隐藏一个预览窗口。当我想回到状态3时,我会显示一个预览窗口。因此,我不再需要状态2,因为状态2只是具有隐藏预览窗口的状态3

    即使存在(另请参见),在大多数情况下,它也没有什么用处:

    在大多数DirectShow筛选器中,当图形正在以流方式传输数据时,无法重新连接管脚。应用程序必须在重新连接管脚之前停止图形。但是,某些过滤器在图形运行时支持管脚重新连接,这一过程称为动态重新连接

    您使用的过滤器很可能与动态重新连接不兼容,或者限制了扩展性。您可能有其他原因不使用此方法,例如,如果您无法承受动态操作过程中的延迟和数据丢失

    典型的解决方案包括两个图形:实时(捕获、预览演示)和录制。您可以在两者之间传递数据以使工作同步。您可能需要了解图形桥接和

    关于这一主题,您可能还想读一些问题:


    请将您的全尺寸图像上载到,并将链接张贴到评论中。我无法从您上载图像的站点获取更大尺寸的图像。图像链接已更改。很可能我的捕获筛选器不支持IPinFlowControl接口,因为QueryInterface将NULL设置为第二个参数。这正是MSDN所说的“无法重新连接”的意思。