【问题标题】:Mac OS X open cv write a video file. ErrorMac OS X open cv 写入一个视频文件。错误
【发布时间】:2015-07-28 11:54:26
【问题描述】:

我是 opencv 及其开发的新手。我正在拍摄相机供稿,并将该供稿转换为 avi 格式的视频文件。当我尝试使用 VLC 播放器打开该文件时。什么都没有显示给我。请在下面找到我使用的代码。任何帮助表示赞赏。(文件正在写入文件,但我认为文件格式存在问题)

    int main(int argc, char** argv){


       VideoCapture vcap(0);
    if(!vcap.isOpened()){
        cout << "Error opening video stream or file" << endl;
        return -1;
    }

   // VideoWriter video("/Users/venushka/Desktop/pre/ou.avi",vcap.get(CV_CAP_PROP_FOURCC),vcap.get(CV_CAP_PROP_FPS),
                     // cv::Size(vcap.get(CV_CAP_PROP_FRAME_WIDTH), vcap.get(CV_CAP_PROP_FRAME_HEIGHT)));

    const int fps = 30.0;
    vcap.set(CV_CAP_PROP_FPS, fps);


    VideoWriter video("/Users/venushka/Desktop/pre/ou.avi", vcap.get(CV_CAP_PROP_FOURCC), fps,
                      cv::Size(vcap.get(CV_CAP_PROP_FRAME_WIDTH), vcap.get(CV_CAP_PROP_FRAME_HEIGHT)));

    for(;;){

        Mat frame;
        vcap >> frame;
        video.write(frame);
        imshow( "Frame", frame );
        char c = (char)waitKey(33);
        if( c == 27 ) break;
    }
return 0;
    }

【问题讨论】:

    标签: c++ macos opencv


    【解决方案1】:

    CV_CAP_PROP_FPS 据我所知仅适用于视频,从摄像头返回 0。

    如下手动设置您的 FPS:

    const int fps = 30.0;
    vcap.set(CV_CAP_PROP_FPS, fps);
    
    VideoWriter video("<path to avi>", vcap.get(CV_CAP_PROP_FOURCC), fps,
                      cv::Size(vcap.get(CV_CAP_PROP_FRAME_WIDTH), vcap.get(CV_CAP_PROP_FRAME_HEIGHT)));
    

    【讨论】:

    • 对不起,还是不行。我处理的帽子无法通过 VLC 播放器打开。谢谢。
    • 我在 iMac 上试用过,它可以工作。高度和宽度是否 >0?
    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2010-11-13
    相关资源
    最近更新 更多