如何以编程方式使用 directshow 过滤器

how to use a directshow filter programmatically

我是使用 Directshow.NET 进行开发的新手。我正在尝试使用网络摄像头捕捉视频。首先,我尝试使用 GraphEdit 来构建图形。

Source cam--->Color Space converter--->Sample Grabber--->ASF writer

我知道如何在 c# 中以编程方式将源摄像头、样本采集器和 ASF 编写器添加到图形中,但我不知道如何添加 Color Space converter。我尝试使用 Type.GetTypeFromCLSID 添加,然后 (IBaseFilter)Activator.CreateInstance(type) 它成功运行,但是通过他们的 CLSID 添加过滤器是否安全,因为在添加样本采集器时我使用了 ISampleGrabber sampGrabber = new SampleGrabber() as ISampleGrabber; 并且在此配置的样本采集器之后然后添加到图表中。

我可以添加 Color space converter 的任何 class 或接口也是如此吗?

Color Space Converter 是 Windows 所有版本中存在的标准过滤器。通过其唯一的 CLSID of {1643E180-90F5-11CE-97D5-00AA0055595A} (AKA CLSID_Colour).

实例化它是安全的