[英]c# directshow.net tee filter render fails
我正在尝试将Alax.Info IP摄像机源过滤器连接到捕获和预览渲染器。
我将源过滤器添加到图形,然后渲染图钉。 这将产生与VMR的直接连接,并且可以正常工作。 GraphEdit
显示相机滤镜的输出引脚类型为RGB32
。
当我将摄像机源滤镜的输出连接到三通( Smart Tee
滤镜或Infinite Tee
滤镜)时,渲染三通的输出会导致在三通和VMR之间插入一个AVI Decompressor
滤镜。 在MS GraphEdit
应用程序中,我得到一帧视频,仅此而已。 在GraphEditPlus
,我只得到一个黑色的渲染窗口。
我尝试将Null Renderer
连接到Smart Tee
的预览针,再连接到Infinite Tee
的第二针,这没有什么区别。
将相机滤镜连接到T型接头时, GraphEdit
报告其输出引脚类型已更改为YUY2, 16 bits
。 我强烈怀疑这是问题的根源。
我是否可以查看日志以了解发生了什么情况?
在这些“工具”应用程序中,是否有一种方法可以控制相机的输出引脚类型,从而控制下游滤波器?
我应该使用期望RGB32
视频的其他类型的T型滤波器吗?
可能的问题是,尝试连接视频渲染器涉及重新协商适合视频渲染器的媒体类型。 由于Tee过滤器无法安排此类媒体类型,因此它尝试重新协商上游连接和/或提供转换过滤器,这最终导致建立了管线,看起来如此,但是一旦真正的视频开始通过,某些格式或分辨率不匹配,实际的视频帧就会丢失。
该问题可能是特定于此IP源过滤器的,因为从设计上讲,它仅限于特定的解码器,并且在不知道实际M-JPEG提要而期望在流传输时解析格式的情况下进行初始化。
以交互方式构建过滤器图形时,请确保检查介质类型并检查分辨率和像素格式是否有意义。 以编程方式构建图形时,还请确保依次知道连接媒体类型来构建管道(在GraphStudioNext中,您可以Ctrl + Shift + M以便每个连接提示您输入要使用的特定媒体类型),并且还希望添加适配器过滤器明确地在必要时显示(tee输出将不会连接到视频渲染器,因此您自己插入Color Space Converter或类似产品,而不会期望Intelligent Connect为您完成此操作)。
当引脚连接属性匹配时,视频将通过,例如:
要么
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.