【问题标题】:Directshow multiple renderers on one stream在一个流上直接显示多个渲染器
【发布时间】:2019-06-03 05:30:50
【问题描述】:

我在一个 c++ builder VCL 应用程序中有 directshow 播放器。它运行良好,但我将它作为多表单应用程序的一部分,并希望将视频显示到第二个监视器上。这样我就可以有额外的按钮以及监视器 1 上的视频和监视器 2 上的视频。

由于 directshow 在更新显示时没有给出事件,有什么方法可以确定何时显示新的视频图像并将其复制到第二个显示?

或者,是否可以将两个视频渲染器放在一个源上,如果可以,如何?

【问题讨论】:

    标签: directshow


    【解决方案1】:

    我想出了如何做到这一点。我添加了一个“Infinite Tee”过滤器,然后向 Tee 添加了两个渲染器。然后,这允许每个渲染器从单个流中分离出单独的窗口。

        // Add an infinite TEE
        hr = AddFilterByCLSID(m_pGraph, CLSID_InfTee, &m_pTee, L"InfTee");
        if (FAILED(hr))
        {
            goto done;
        }
    
        teeInput  = FindPin(m_pTee, PINDIR_INPUT, 0);
        vidOutput = FindPin(pSource, PINDIR_OUTPUT, 0);
        m_pGraph->Connect(vidOutput, teeInput);
    

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2016-08-07
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多