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

Author: Ian, 2016-10-13

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

 0
Author: Mario J.G., 2016-10-13 14:28:21