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
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