我想要做什么
我正在尝试使用 DirectShow 框架和使用 VS2008 的 VC++ 语言创建一个示例 USB 相机流应用程序(或多或少像 amcap 的剥离版本)。以下是我用来构建的过滤器图信息。
过滤器图
网络摄像头(捕获引脚)- 智能 Tee(预览引脚)- 将单色 Y8 转换为 YUY2 的转换过滤器 - 视频混合渲染。
附加信息
- 网络摄像头以 640x480、Y8 @ 30FPS 流式传输。
- 在 Windows 7 Professional、Intel i3 上测试 - 运行良好,能够以 30FPS 的速度传输 VGA。
- 视频捕捉过滤器中没有可用的预览图钉。
问题
使用相同的过滤器图设置,我在 Windows 8 Intel i3 PC 上遇到问题。但是,如果我用 Microsoft SDK 中提供的 Infinte Tee 示例替换 Smart Tee 过滤器,它工作得很好。为什么智能 tee 过滤器在 Windows 8 中不起作用?
编辑:问题是我无法在 Windows 8 上将视频捕获过滤器连接到智能 tee 过滤器,但能够在 Windows 7 上连接。我尝试通过 graphedit 工具。Windows 8 正在尝试为 Y8 媒体子类型形成下图(YUY2 工作正常)。
网络摄像头(捕获引脚)- 将单色 Y8 转换为 YUY2 的转换过滤器 - 智能 Tee(预览引脚)- 视频混合渲染。
当我运行图表时,graphedit 异常关闭。
如果我没有注册转换过滤器,则在将 Capture 过滤器与智能 tee 连接时会收到此错误。 '这些过滤器无法就连接达成一致。验证输入和输出引脚的类型兼容性。找不到中间过滤器的组合来建立连接。(返回码 = 0x80040217)'。
此外,如果我使用 Infinte tee 滤镜,每隔几分钟就会出现帧率下降。Windows 7 和 Windows 8 上的智能三通过滤器有什么区别?什么可以用作智能三通的替代品?
在此先感谢您的帮助。