使用directShow从usb设备中选择其他来源

时间:2017-10-26 18:52:53

标签: c# video directshow aforge directshow.net

我正在尝试使用Aforge(directShow)从USB设备获取图像。该设备(USB3HDCAP)具有3个不同的输入(HDMI,DVI和S-Video)。使用上面的代码,我可以访问并获取默认输入图像(仅限HDMI)。但是,当我更改设备上的物理输入时(从HDMI到DIV,例如),图像为黑色。如何从其他输入(DVI或S-Video)获取视频。

    LocalWebCamsCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice); 
    LocalWebCam = new VideoCaptureDevice(LocalWebCamsCollection[0].MonikerString);
    LocalWebCam.NewFrame += new NewFrameEventHandler(Cam_NewFrame);
    LocalWebCam.Start();

1 个答案:

答案 0 :(得分:1)

您的代码段就是捕获视频的内容。要切换视频捕获硬件上的输入,您需要使用crossbar重新配置设备。

在简单的DirectShow中,它就像他的:

使用AForge.NET,您应该寻找类似的方法,例如见:

  

... VideoCaptureDivece.AvailableCrossbarVideoInputs提供可用视频输入数组。 VideoCaptureDivece.CrossbarVideoInput接受什么? - 是视频输入。所以将这两者结合起来:

VideoKaynagi.CrossbarVideoInput  = CrossbarVideoInput.AvailableCrossbarVideoInputs[0];
     

当然,您需要使用S-Video输入的索引更改0。