图书馆摄像头捕获sarxos不在树莓上工作

时间:2015-08-05 23:38:03

标签: java linux raspberry-pi

我的覆盆子上的java网络摄像头捕获库有问题。这是我的代码:

@RequestMapping(value = "/admin/usersAndRoles", method = RequestMethod.GET, produces = "application/json")
@PreAuthorize("hasRole('WRITE_PRIVILEGE')")
public @ResponseBody String usersAndRoles(HttpServletRequest request) throws IOException 

在Windows上,我有以下输出:

    System.out.println("start");
    List<Webcam> list = Webcam.getWebcams();

    System.out.println("checking " + list.size() + " Webcams");
    for(Webcam webcam : list) {
        //do sth
    }

在我的覆盆子上我才得到

start
[main] INFO com.github.sarxos.webcam.Webcam - WebcamDefaultDriver capture    
driver will be used
checking 0 Webcams

我试图找出库中有问题的代码,我发现它退出:

start
[main] INFO com.github.sarxos.webcam.Webcam - WebcamDefaultDriver capture    
driver will be used
WebcamDiscoveryService.getWebcams()

中的

参数为9223372036854775807和 MILLISECONDS

为什么它不起作用(“该项目是可移植的(WinXP,Win7,Win8,Linux,Mac,Raspberry Pi),并且不需要在PC上安装任何其他软件。”)。

可能还有其他任何库吗?

1 个答案:

答案 0 :(得分:1)

仅记录我在Github上的Webcam Capture API项目中创建的ticket中提供的解决方案,以防任何人遇到相同问题并首先尝试stackoverflow。

问题在于默认驱动程序在Raspberry Pi上并不总是运行良好(只有一个BridJ版本支持Raspberry Pi但它尚未发布到Maven Central)。要解决此问题,可以使用不同的驱动程序替换依赖于BridJ的默认驱动程序,例如webcam-capture-driver-v4l4j在Raspberry Pi上最稳定,或者将BridJ 0.6.3-SNAPSHOT添加到类路径而不是0.6.2。

对于webcam-capture-driver-v4l4j,您必须在类路径中包含的JAR是:

对于网络摄像头捕获0.3.10:

或网络摄像头捕获0.3.11:

添加这些内容后,可以从类路径中删除BridJ JAR,因为不再需要。

代码:

static {
  Webcam.setDriver(new V4l4jDriver()); // this is important
}

public static void main(String[] args) {
  JFrame frame = new JFrame("V4L4J Webcam Capture Driver Demo");
  frame.add(new WebcamPanel(Webcam.getDefault()));
  frame.pack();
  frame.setVisible(true);
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

有关详细信息,请重新定位对问题已解决的ticket感兴趣的所有人。