Hallo Leute!
Ich versuche mich gerade am JMF und der Initialisierung einer Webcam (Logitech Quickcam) unter Linux. Das JMF hab ich dabei einfach entpackt und in einem Verzeichnis liegen, beim Programmstart werden alle JARs in den Classpath genommen und der java.library.path auf das Verzeichnis mit dem .so gesetzt. Leider bekomme ich folgende Meldung, wenn ich das Geräte initialisieren möchte:
INFO: 1 devices found. Using 'v4l:Logitech QuickCam EC:0 : v4l://0
RGB, 320x240, Length=230400, 24-bit, Masks=3:2:1, PixelStride=3,
LineStride=960
RGB, 160x120, Length=38400, 16-bit, Masks=63488:2016:31, PixelStride=2,
LineStride=320, LittleEndian
RGB, 320x240, Length=153600, 16-bit, Masks=63488:2016:31, PixelStride=2,
LineStride=640, LittleEndian
RGB, 176x144, Length=50688, 16-bit, Masks=63488:2016:31, PixelStride=2,
LineStride=352, LittleEndian
RGB, 352x288, Length=202752, 16-bit, Masks=63488:2016:31, PixelStride=2,
LineStride=704, LittleEndian
RGB, 160x120, Length=57600, 24-bit, Masks=3:2:1, PixelStride=3,
LineStride=480
RGB, 176x144, Length=76032, 24-bit, Masks=3:2:1, PixelStride=3,
LineStride=528
RGB, 352x288, Length=304128, 24-bit, Masks=3:2:1, PixelStride=3,
LineStride=1056
RGB, 160x120, Length=76800, 32-bit, Masks=1:2:3, PixelStride=4,
LineStride=640
RGB, 320x240, Length=307200, 32-bit, Masks=1:2:3, PixelStride=4,
LineStride=1280
RGB, 176x144, Length=101376, 32-bit, Masks=1:2:3, PixelStride=4,
LineStride=704
RGB, 352x288, Length=405504, 32-bit, Masks=1:2:3, PixelStride=4,
LineStride=1408
YUV Video Format: Size = java.awt.Dimension[width=160,height=120]
MaxDataLength = 28800 DataType = class [B yuvType = 2 StrideY = 160
StrideUV = 80 OffsetY = 0 OffsetU = 19200 OffsetV = 24000
YUV Video Format: Size = java.awt.Dimension[width=320,height=240]
MaxDataLength = 115200 DataType = class [B yuvType = 2 StrideY = 320
StrideUV = 160 OffsetY = 0 OffsetU = 76800 OffsetV = 96000
YUV Video Format: Size = java.awt.Dimension[width=176,height=144]
MaxDataLength = 38016 DataType = class [B yuvType = 2 StrideY = 176
StrideUV = 88 OffsetY = 0 OffsetU = 25344 OffsetV = 31680
YUV Video Format: Size = java.awt.Dimension[width=352,height=288]
MaxDataLength = 152064 DataType = class [B yuvType = 2 StrideY = 352
StrideUV = 176 OffsetY = 0 OffsetU = 101376 OffsetV = 126720
'.
java.io.IOException: java.lang.Error: Couldn't initialize capture device
javax.media.NoDataSourceException: Error instantiating class:
com.sun.media.protocol.v4l.DataSource : java.io.IOException:
java.lang.Error: Couldn't initialize capture device
at javax.media.Manager.createDataSource(Manager.java:1012)
at jwebcam.simpleclient.FrameGrabber.(FrameGrabber.java:45)
at jwebcam.simpleclient.SimpleClient.init(SimpleClient.java:236)
at jwebcam.simpleclient.SimpleClient.(SimpleClient.java:83)
at jwebcam.simpleclient.SimpleClient.main(SimpleClient.java:423)
02.07.2007 00:03:47 jwebcam.simpleclient.SimpleClient init
WARNUNG: DataSource not a CaptureDevice
jwebcam.simpleclient.FrameGrabberException: DataSource not a CaptureDevice
at jwebcam.simpleclient.FrameGrabber.(FrameGrabber.java:61)
at jwebcam.simpleclient.SimpleClient.init(SimpleClient.java:236)
at jwebcam.simpleclient.SimpleClient.(SimpleClient.java:83)
at jwebcam.simpleclient.SimpleClient.main(SimpleClient.java:423)
Initialisiert wird es mit folgenden Code:
try {
source = Manager.createDataSource(cameraLocator);
} catch (NoDataSourceException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if (!(source instanceof CaptureDevice))
throw new FrameGrabberException("DataSource not a CaptureDevice");
Ich dachte ja erst an falsche Zugriffsrechte, allerdings kann ich mit dem JMFStudio die Webcam ansprechen und Bilder aufzeichnen… kann mir dabei vielleicht jemand helfen?