我有一部电影,它在图中表示为具有mediatype MEDIATYPE_Stream/MEDIASUBTYPE_MPEG1Video的源过滤器。此外,我将VMR或EVR插入到图中。
尝试将源过滤器的输出引脚(GraphBuilder ->连接)连接到视频渲染器的输入引脚失败(0x80040217 - VFW_E_CANNOT_CONNECT)。但是,渲染源过滤器的输出引脚(GraphBuilder -> Render)成功。它插入MPEG-2分离器(而不是MPEG-2分离器)。当然还有解码器。但它必须与拆分器相关,因为当我手动插入它,然后尝试将源过滤器输出引脚连接到视频渲染器时,它通过使用拆分器的GraphBuilder ->连接工作。
我想使用Connect而不是Render的原因是,视频渲染器需要一个特殊的配置(自定义presenter)。
因此,一方面我感兴趣的是为什么“连接”和“渲染”的行为是不同的。另一方面,我正在寻求如何处理这个问题的建议。
在默认情况下,可能可以预先插入MPEG-2拆分器,但我不喜欢这样。可能会有一个更适合的滤波器,具有更高的优点,但会被忽略。MSDN表示MPEG-2拆分器已被弃用。
编辑:不幸的是,LAVSplitter也不是解决方案。它在文件内部的定位速度相当慢。有时,它似乎是在降低速率(在时间码中烧录的时间从报告的位置回落-相当奇怪,但这是另一回事)。
发布于 2016-09-22 05:15:18
MPEG2拆分器的筛选器优点设置为"normal - 1",但由于它已被弃用,因此在智能连接期间可能不会枚举它。另一方面,当您手动添加它时,filter graph在智能连接期间使用它,因为它首先尝试利用已经添加到图中的过滤器。恐怕在这种情况下,您唯一的解决方案是手动添加MPEG2拆分器。
https://stackoverflow.com/questions/39224121
复制相似问题