2016-10-13 1 views
1

Je suis en train de développer une application de bureau Java et je n'arrive pas à trouver un moyen d'enregistrer de la vidéo webcam. J'ai commencé à utiliser la bibliothèque Sarxos pour détecter les caméras connectées et prévisualiser celles que vous choisissez. Mais pour arriver à la partie de l'enregistrement vidéo dans l'exemple, Xuggler est utilisé, ce qui est obsolète et que vous ne pouvez même pas télécharger .. Quelque part je lis qui utilise Humble-video, mais le seul exemple est l'enregistrement d'écran. Toute aide pour trouver le chemin sera appréciée.Comment enregistrer une vidéo à partir d'une webcam en Java?

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

+0

double possible de (http://stackoverflow.com/questions/276292/capturing- image-from-webcam-in-java) –

+0

Question intéressante. – GOXR3PLUS

+0

Je dois capturer la vidéo, pas une seule image ... –

Répondre

0

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'économiser les images à intervalles réguliers et faire le reste du traitement que vous voulez.

Et là, vous pouvez trouver un autre tutoriel ce qui pourrait aussi être une option: [? Capture d'image de webcam en java] Java Swing Program for capturing webcam

+0

Bien que cela puisse théoriquement répondre à la question, [il serait préférable] (// meta.stackoverflow.com/q/8259) d'inclure les parties essentielles de la réponse ici, et fournir le lien pour référence. – Ivar

+0

Vous avez raison, mais je ne comprends pas comment j'aurais dû lui donner alors que les liens sur la bonne voie. Je veux dire en raison de mon anglais, je ne peux pas comprendre votre commentaire complètement. Merci pour votre conseil –

+0

Sur le dépassement de pile, les réponses qui contiennent uniquement des liens sont généralement supprimées, car si le lien meurt, la réponse est inutile. Aussi les gens aiment voir la réponse directement et ne pas avoir à cliquer sur les liens d'abord. Dans votre cas, si tous les liens cessent de fonctionner, votre réponse n'aura aucune valeur. Par conséquent, il est préférable d'ajouter les parties importantes du lien à la réponse, il est donc toujours utile si les liens seraient supprimés. – Ivar