我使用Raspberry pi (Arch Linux)与Java(1.8.0_06)的webcam-capture(0.3.9)库获取webcam图像,但我的应用程序失败了以下堆栈跟踪:
11:18:42.578 [main] INFO c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver
11:18:42.585 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.openimaj.OpenImajDriver not found
11:18:42.589 [main] INFO c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver
11:18:42.595 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.civil.LtiCivilDriver not found
11:18:42.598 [main] INFO c.g.sarxos.webcam.WebcamDriverUtils - Searching driver com.github.sarxos.webcam.ds.jmf.JmfDriver
11:18:42.604 [main] DEBUG c.g.sarxos.webcam.WebcamDriverUtils - Driver com.github.sarxos.webcam.ds.jmf.JmfDriver not found
11:18:42.607 [main] INFO com.github.sarxos.webcam.Webcam - Webcam driver has not been found, default one will be used!
11:18:42.659 [webcam-discovery-service] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Searching devices
Java HotSpot(TM) Client VM warning: You have loaded library /tmp/BridJExtractedLibraries8835024590982118533/bridj.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
getLibrarySymbols has 141 symbols
11:18:46.381 [webcam-discovery-service] DEBUG c.g.s.w.d.b.WebcamDefaultDriver - Found device HP Webcam GJ502AA /dev/video0
11:18:46.439 [main] DEBUG com.github.sarxos.webcam.Webcam - Setting new resolution 320x240
11:18:46.533 [atomic-processor] INFO c.g.s.webcam.ds.cgt.WebcamOpenTask - Opening webcam HP Webcam GJ502AA /dev/video0
11:18:46.536 [atomic-processor] DEBUG c.g.s.w.d.b.WebcamDefaultDevice - Opening webcam device HP Webcam GJ502AA /dev/video0
11:18:46.540 [atomic-processor] DEBUG c.g.s.w.d.b.WebcamDefaultDevice - Webcam device /dev/video0 starting session, size java.awt.Dimension[width=320,height=240]
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0xb6e37204, pid=2297, tid=2901406816
#
# JRE version: Java(TM) SE Runtime Environment (8.0_06-b23) (build 1.8.0_06-b23)
# Java VM: Java HotSpot(TM) Client VM (25.6-b23 mixed mode linux-arm )
# Problematic frame:
# C [libc.so.6+0x79204] strcpy+0x14
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /root/Downloads/motion-capture/hs_err_pid2297.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#
Aborted
http://pastebin.com/FB7Z1gvQ 上面堆栈跟踪(/root/Downloads/motion-capture/hs_err_pid2297.log)中引用的JVM堆日志在这里:
http://pastebin.com/pFNYRk81请帮。
看来你用的是惠普的摄像头。你确定为你的凸轮安装了正确的驱动程序吗?您可以通过输入以下命令列出usb设备:
# lsusb -t
你也可以检查这个链接,看看你的pi上安装的设备驱动程序列表,并确保你能看到相机驱动程序是否安装:
http://www.cyberciti.biz/faq/howto-display-list-of-modules-or-device-drivers-in-the-linux-kernel/由于我无法解决webcam-capture(0.3.9)库的问题,我抛弃了它并使用xuggler,使用这里定义的样例代码:
https://github.com/artclarke/xuggle-xuggler/blob/master/src/com/xuggle/xuggler/demos/DisplayWebcamVideo.java为raspberry-pi编译xuggler,执行以下命令:
Xuggler for Raspberry Pi编译指南