Come registrare video da una webcam in Java?
Sto sviluppando un'applicazione desktop Java e non riesco a trovare un modo per registrare video webcam. Ho iniziato a utilizzare la libreria Sarxos per rilevare le telecamere collegate e per visualizzare in anteprima qualsiasi scelta. Ma per arrivare alla parte della registrazione video nell'esempio viene utilizzato Xuggler, che è deprecato e nemmeno è possibile scaricare .. Da qualche parte ho letto che usa Humble-video, ma l'unico esempio che abbiamo è quello di registrare lo schermo, senza fotocamera ... Qualsiasi aiuto per trovare la strada sarà apprezzare.
PS: Sto usando JavaFX ma se necessario passo a Swing
1 answers
Questa è un'implementazione JavaCV che forse può aiutarti:
import static com.googlecode.javacv.cpp.opencv_core.cvFlip;
import static com.googlecode.javacv.cpp.opencv_highgui.cvSaveImage;
import com.googlecode.javacv.CanvasFrame;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.VideoInputFrameGrabber;
import com.googlecode.javacv.cpp.opencv_core.IplImage;
public class GrabberShow implements Runnable {
//final int INTERVAL=1000;///you may use interval
IplImage image;
CanvasFrame canvas = new CanvasFrame("Web Cam");
public GrabberShow() {
canvas.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
@Override
public void run() {
FrameGrabber grabber = new VideoInputFrameGrabber(0);
int i=0;
try {
grabber.start();
IplImage img;
while (true) {
img = grabber.grab();
if (img != null) {
cvFlip(img, img, 1);// l-r = 90_degrees_steps_anti_clockwise
cvSaveImage((i++)+"-capture.jpg", img);
// show image on window
canvas.showImage(img);
}
//Thread.sleep(INTERVAL);
}
} catch (Exception e) {
}
}
}
È possibile modificare i codici ed essere in grado di salvare le immagini a intervalli regolari e fare il resto dell'elaborazione che si desidera.
E qui puoi trovare un altro tutorial che potrebbe anche essere un'opzione: Programma Java Swing per l'acquisizione di webcam