【问题标题】:Choose another source from usb device using directShow使用 directShow 从 USB 设备中选择另一个来源
【发布时间】:2017-10-26 18:52:53
【问题描述】:

我正在尝试使用 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();

【问题讨论】:

    标签: c# video directshow aforge directshow.net


    【解决方案1】:

    您的代码 sn-p 只是捕获视频。要在视频捕获硬件上切换输入,您需要使用交叉开关重新配置设备。

    在普通的 DirectShow 中就像他的:

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

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

    VideoKaynagi.CrossbarVideoInput  = CrossbarVideoInput.AvailableCrossbarVideoInputs[0];
    

    当然你需要用 S-Video 输入的索引来改变 0。

    【讨论】:

    • 我将尝试第一个(DirectShow),因为第二个,我已经尝试过了,但我不会从 - AvailableCrossbarVideoInputs - 数组为空得到任何结果。
    猜你喜欢
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    相关资源
    最近更新 更多