在Windows上的Xuggler库中获取网络摄像头名称

时间:2012-10-16 03:45:19

标签: java video webcam xuggler

当我在带有Windows的多个网络摄像头的计算机上使用Xuggler库时,我需要使用此网络摄像头的“名称”来选择设备。我的意思是命令“vfwcap 0”只选择第一个网络摄像头,命令“vfwcap 1”或“vfwcap 2”不允许访问其他网络摄像头。如果我使用:

$ ffmpeg -list_devices true -f dshow -i dummy

我可以看到这个网络摄像头的“名字”列表。例如:“Logitech HD Webcam C270”,“Logitech Webcam C210”。如果我在Xuggler库中使用此名称,则会出错。

因此,我只能使用Xuggler访问Windows机器上的第一个网络摄像头。

我可以从Xuggler获取Windows中所有设备的列表,我可以将这些名称用于Xuggler(我只想同时使用多个网络摄像头)吗?

也许存在替代方式?

1 个答案:

答案 0 :(得分:2)

使用这个简单的java程序,您可以获得系统上所有可用网络摄像头的列表。

import com.github.sarxos.webcam.Webcam;

public class CameraTest {
    public static void main(String[] args) {
        List<Webcam> list = Webcam.getWebcams();

        for (int i = 0; i < list.size(); i++) {
                try {
                    Webcam cam = list.get(i);
                    System.out.println("Found this Camera : "+cam.getName());
                    BufferedImage image = cam.getImage();
                } catch (Exception e) {
                    System.out.println("Exception in cam : " + i);
                }
        }
    }
}

示例输出:

Found this Camera : TV CARD WDM VIDEO CAPTURE 0
Found this Camera : ManyCam Video Source 1
Found this Camera : DroidCam 2

您将拥有所有相机的列表,因此您可以随意使用其中任何一个。