【问题标题】:How record video using javaCV如何使用javaCV录制视频
【发布时间】:2014-02-28 07:23:51
【问题描述】:

我的代码在这里。我正在使用 Andrew Davison 博士的代码

private IplImage picGrab(FrameGrabber grabber, int ID) {
    IplImage im = null;
    try {

        FrameRecorder rec = FrameRecorder.createDefault("vid.avi", 240, 360);
        rec.setVideoCodec(CV_FOURCC('M', 'J', 'P', 'G'));
        rec.setVideoBitrate(16);
        rec.setFrameRate(25);
        rec.setFormat("avi");
        rec.setPixelFormat(1);
        rec.start();

        im = grabber.grab();

        // take a snap
        //   cvSaveImage("capture"+captureNo+".jpg", im);
        rec.record(im);

    } catch (Exception e) {
        e.printStackTrace();
        System.out.println("Problem grabbing image for camera " + ID);
    }
    return im;
}

并发生跟随异常。

com.googlecode.javacv.FrameRecorder$Exception: cvWriteFrame(): Could not record frame
Problem grabbing image for camera 0
Initializing OpenCV motion detector...
    at com.googlecode.javacv.OpenCVFrameRecorder.record(OpenCVFrameRecorder.java:91)
    at photocapture.MotionPanel.picGrab(MotionPanel.java:181)
    at photocapture.MotionPanel.run(MotionPanel.java:100)
    at java.lang.Thread.run(Thread.java:744)

【问题讨论】:

  • 如何修复此错误。请帮帮我

标签: java opencv javacv


【解决方案1】:

检查您的默认帧大小.. 当默认帧大小小于设置的帧大小时,我通常会收到此错误

【讨论】:

    【解决方案2】:

    您需要确保FrameGrabber 有效。错误消息是设置可能失败的线索。

    错误消息通知您执行了以下操作:

    FrameGrabber grabber = new OpenCVFrameGrabber(0);
    

    但设备 0 不是您的相机。

    在方法的开头你应该添加一个安全检查:

     private IplImage picGrab(FrameGrabber grabber, int ID) {
    
        if (grabber == null) 
        {
            System.out.println("!!! Bad OpenCVFrameGrabber");
            return null;
        }
    
        // ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-25
      • 2016-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多