Comment enregistrer une vidéo à partir d'une webcam en Java?


Je développe une application de bureau Java et je ne trouve pas de moyen d'enregistrer une vidéo webcam. J'ai commencé à utiliser la bibliothèque Sarxos pour détecter les caméras connectées et pour prévisualiser celles que vous choisissez. Mais pour accéder à la partie de l'enregistrement vidéo dans l'exemple Xuggler est utilisé, ce qui est obsolète et même vous ne pouvez pas télécharger .. Quelque part, j'ai lu qui utilise Humble-vidéo, mais le seul exemple que nous avons est d'enregistrer l'écran, pas de caméra ... Toute aide pour trouver le chemin sera apprécier.

PS: J'utilise JavaFX mais si nécessaire je passe à Swing

Author: Ian, 2016-10-13

1 answers

Ceci est une implémentation JavaCV qui peut peut-être vous aider:

    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) {
            }


}
}

Vous pouvez modifier les codes et être en mesure d'enregistrer les images à intervalle régulier et faire le reste du traitement que vous voulez.

Et ici vous pouvez trouver un autre tutoriel ce qui pourrait aussi être une option: Programme Java Swing pour capturer la webcam

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