当我在带有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(我只想同时使用多个网络摄像头)吗?
也许存在替代方式?
答案 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
您将拥有所有相机的列表,因此您可以随意使用其中任何一个。