智能连接 - GraphBuilder 连接与渲染

Intelligent connect - GraphBuilder connect vs render

我有一部电影在图表中表示为媒体类型 MEDIATYPE_Stream/MEDIASUBTYPE_MPEG1Video 的源过滤器。此外,我将 VMR 或 EVR 插入图中。

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

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

所以,一方面我对为什么 "connect" 和 "render" 表现不同很感兴趣。另一方面,我正在寻求如何处理这个问题的建议。

默认情况下可能可以预先插入 MPEG-2 分离器,但我不喜欢这样。可能有一个更合适的过滤器,具有更高的价值,将被忽略。 MSDN 表示 MPEG-2 分离器已弃用。

编辑:很遗憾,LAVSplitter 也不是解决方案。在文件中定位相当慢。有时它似乎以降低的速率播放(烧毁的时间码从报告的位置回落 - 很奇怪,但那是另一回事)。

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