【发布时间】:2015-10-04 12:14:51
【问题描述】:
我目前正在开发一个使用 DirectShow 的应用程序。 该应用程序应支持许多不同的网络摄像头,这些摄像头可能具有许多不同的输出引脚 ColorSpace 配置(RGB、YUV、I420 等)。
编码时,我将始终使用相同的编码过滤器和 mux + 文件写入器 - 但是我不知道如何将源过滤器上的输出引脚连接到编码过滤器上的输入引脚,因为它取决于源过滤器的输出 ColorSpace。
例子:
- Source1 (RGB24) -> 色彩空间转换器 -> RGB2YUV -> 编码器 -> 多路复用器 -> 文件编写器。
- Source2 (YUV) -> 编码器 -> Mux -> 文件编写器。
- Source3 (MJPG) -> MJPEG 解压器 -> 色彩空间转换器 -> RGB2YUV -> 编码器 -> Mux -> 文件写入器。
等等......这意味着在编码器之前可能会有很多不同的过滤器配置。
我现在的问题是,使用 Intelligent Connect() 而不是 ConnectDirect() 将 Source 过滤器连接到编码器过滤器是否完全可以?
还是我每次都必须检查源输出引脚的媒体类型,并根据源输出引脚的色彩空间(RGB、YUV..)手动构建图形?
有没有一种我可能不知道的简单方法 - 似乎有无数种可能性可以将源过滤器连接到编码器..
感谢您的帮助。
【问题讨论】:
标签: winapi video directshow directshow.net