智能连接 - GraphBuilder连接vs渲染

时间:2016-08-30 09:46:57

标签: directshow

我有一部电影,它在图表中表示为源媒体内容为MEDIATYPE_Stream / MEDIASUBTYPE_MPEG1Video。此外,我将VMR或EVR插入图表中。

尝试将源滤波器的输出引脚(GraphBuilder - > Connect)连接到视频渲染器的输入引脚失败(0x80040217 - VFW_E_CANNOT_CONNECT)。但是,渲染源滤波器的输出引脚(GraphBuilder - > Render)会成功。它插入MPEG-2分离器(不是MPEG-2分离器)。当然还有一个解码器。但它必须与分离器有关,因为当我手动插入它然后尝试将源滤波器输出引脚连接到视频渲染器时,它通过GraphBuilder工作 - >通过使用分离器进行连接。

我想使用Connect而不是Render的原因是视频渲染器需要特殊配置(自定义演示者)。

所以,一方面我对为什么“连接”和“渲染”表现不同感兴趣。另一方面,我正在寻求如何处理这个问题的建议。

默认情况下,可能会事先插入MPEG-2分离器,但我不喜欢这样。可能有更好的滤波器具有更高的优点,可以忽略。 MSDN表示不推荐使用MPEG-2分配器。

编辑:不幸的是LAVSplitter也没有解决方案。在文件内部定位相当慢。有时它似乎以降低的速度发挥(时间码中的烧毁从报告的位置回落 - 相当奇怪,但这是另一个故事)。

1 个答案:

答案 0 :(得分:1)

MPEG2 Splitter的过滤器优点设置为" normal - 1",但由于它已被弃用,因此在智能连接期间可能无法枚举。 另一方面,当您手动添加它时,过滤器图形在智能连接期间使用它,因为它首先尝试使用已添加到图形中的过滤器。我担心这种情况下唯一的解决方案是手动添加MPEG2 Splitter。