如何用Java录制网络摄像头的视频?

时间:2016-10-13 13:17:24

标签: java video camera desktop video-recording

我正在开发Java桌面应用程序,但无法找到记录网络摄像头视频的方法。我开始使用Sarxos库来检测连接的摄像头并预览您选择的任何一个。但是要使用Xuggler示例中的视频录制部分,这已被弃用,甚至不能下载..我读到的某个地方使用的是Humble-video,但我们唯一的例子是录制屏幕,没有摄像头。 ..任何帮助找到方式将不胜感激。

PS:我正在使用JavaFX,但如果有必要,我会切换到Swing

1 个答案:

答案 0 :(得分:0)

这是一个JavaCV实现,可能对您有所帮助:

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


}
}

您可以修改代码,并能够定期保存图像并完成所需的其余处理。

在这里你可以找到另一个教程,它也可以是一个选项: Java Swing Program for capturing webcam