【问题标题】:How to record video from a webcam in Java?如何用Java从网络摄像头录制视频?
【发布时间】:2016-10-13 13:17:23
【问题描述】:

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

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

【问题讨论】:

标签: java video camera desktop video-recording


【解决方案1】:

这是一个 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

【讨论】:

  • 虽然这在理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
  • 你有理由,但我不明白我应该如何以正确的方式给他那个链接。我的意思是由于我的英语,我不能完全理解你的评论。感谢您的提示
  • 在 Stack Overflow 上,通常会删除仅包含链接的答案,因为如果链接死了,答案将毫无用处。人们也喜欢直接看到答案,而不必先点击链接。就您而言,如果所有链接都将停止工作,那么您的答案将毫无价值。因此,最好将链接的重要部分添加到答案中,这样如果删除链接仍然很有价值。
  • 我明白,这是有道理的。也许您可以像评论一样添加此链接(由于我的代表,我不能这样做。):tricksmode.com/2013/03/… 也许这对他有帮助。然后我将删除我的答案。感谢您的帮助:)
  • 我在 SO 中仍然很新,我经常看到另一个答案中的链接也被接受,所以我仍然不太确定在哪些情况下我可以做到。感谢cmets,我正在学习它。
猜你喜欢
  • 1970-01-01
  • 2014-09-10
  • 1970-01-01
  • 1970-01-01
  • 2017-09-16
  • 2013-12-22
  • 1970-01-01
  • 2020-11-24
  • 1970-01-01
相关资源
最近更新 更多