Video mit Webcam in Java aufnehmen

8

Ich versuche, Video Screenshot von einer Java-Anwendung zu erfassen. Ich habe die sarxos / webcam-capture -Bibliothek heruntergeladen. Ich habe zu meinem Projekt das ausführbare jar hinzugefügt. Es ist ein bisschen Unordnung. Ich möchte Video von einer einfachen Javafx-Schnittstelle, die ich erstellt habe, aufnehmen. Das Problem ist, dass nach der Installation von lib und slf4 auch die Installation von xuggle erforderlich war. Ich füge xuggle in den Pfad ein und mein Code ist folgender:

%Vor%

Ich erhalte jedoch Folgendes:

%Vor%

EDIT2 Ich habe auch die jxcapture-Bibliothek ausprobiert. Ich füge in meinem Projekt alle notwendigen Bibliotheken hinzu. Ich führe folgenden Code aus: Link Beschreibung hier eingeben , der Code funktionierte gut Ich schaffe es, das Video zu speichern, aber am Ende bekomme ich den folgenden Fehler:

  

8614 [JNIWrapper.ShutdownHook] FEHLER com.jniwrapper.NativeResourceCollector -   com.jniwrapper.FunctionExecutionException: Callback-Parametertypen oder deren Anzahl sind nicht korrekt       bei com.jniwrapper.Function.invokeVirtualFunc (Native Methode)

Irgendeine Idee, worum es bei diesem Fehler geht ?? Was ist JNIWrapper.ShutdownHook? Ich habe den Code in 3 verschiedenen Geräten ausprobiert und das ist nur einem von ihnen passiert? Wie kann ich mit dieser Ausnahme umgehen?

EDIT3: Ich habe @whitesite-Vorschlag EDIT3 versucht. Die GUI gestartet und ich habe zwei Tasten starten und stoppen den Startknopf öffnete die Kamera und als ich versuchte zu stoppen, erhielt ich folgendes:

  

java.lang.NullPointerException: Die Zeigeradresse des Arguments 0 ist NULL.       at org.bytedeco.javacpp.opencv_videoio $ VideoWriter.write (Native Methode)       bei org.bytedeco.javacv.OpenCVFrameRecorder.record (OpenCVFrameRecorder.java:105)       bei Test1.lambda $ 0 (Test1.java:52)       bei java.lang.Thread.run (unbekannte Quelle)

    
Jose Ramon 05.07.2016, 12:05
quelle

2 Antworten

4

In Ihrem Klassenpfad fehlt die Datei slf4-api-ver.jar. Es reicht jedoch nicht, nur die API hinzuzufügen, sondern auch einen Anbieter wie slf4j-simple-ver.jar. Die neuesten verfügbaren sind Version 1.7.21 und können von hier Ссылка

heruntergeladen werden     
Marcin Krasowski 05.07.2016 12:14
quelle
4

Ok, das habe ich mit dieser JavaCV-Bibliothek und ihren Beispielen gemacht:

%Vor%

Es fängt Videos von der Webcam ein und übersetzt es live und schreibt gleichzeitig in die Datei. Sie müssen ihre Bibliothek in Klassenpfad mit Maven oder manuelle Installation und auch alle Gläser aus binären Zip-Archiv einschließen. Vielleicht brauchst du nicht alle, aber ich habe nicht tief gegraben Sie können mit Einstellungen spielen und Beispiele und Quellen untersuchen. Von dem, was ich gesehen habe, ist es ziemlich mächtig Bibliothek.
Bearbeiten
Nur Videoverarbeitungsteil:

%Vor%

Sie müssen den Prozess videoProcessor.start() irgendwo starten und ihn dann unterbrechen, um die Aufzeichnung von videoProcessor.interrupt() zu stoppen. Möglicherweise müssen Sie auch die richtige Framerate für den Recorder einstellen, um sie an die FPS Ihrer Kamera anzupassen.
Bearbeiten 2
Code zur Ausgabe verfügbarer Geräte:

%Vor%

Bearbeiten 3
Wenn webcam-capture funktioniert, können Sie damit Bilder aufnehmen und mit javaCV diese Bilder in Videofiles aufnehmen (so ähnlich wie in Ihrer Frage, nur javaCV anstelle von xuggler). Dies ist eine kleine javafx-App, die zwei Schaltflächen hat: 'Start' startet den videoProcessing-Thread, um Video aufzunehmen und 'Stop' unterbricht diesen Thread:

%Vor%     
whitesite 09.07.2016 14:40
quelle

Tags und Links