我正在尝试使用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();
答案 0 :(得分:1)
您的代码段就是捕获视频的内容。要切换视频捕获硬件上的输入,您需要使用crossbar重新配置设备。
在简单的DirectShow中,它就像他的:
使用AForge.NET,您应该寻找类似的方法,例如见:
... VideoCaptureDivece.AvailableCrossbarVideoInputs提供可用视频输入数组。 VideoCaptureDivece.CrossbarVideoInput接受什么? - 是视频输入。所以将这两者结合起来:
VideoKaynagi.CrossbarVideoInput = CrossbarVideoInput.AvailableCrossbarVideoInputs[0];
当然,您需要使用S-Video输入的索引更改0。