当前位置:  开发笔记 > 编程语言 > 正文

在OpenCV中编写AVI文件

如何解决《在OpenCV中编写AVI文件》经验,为你挑选了1个好方法。

在网上有例子和学习OpenCv,Orielly中给出的代码.

经过多次尝试后,out.avi文件写入0字节.我想知道我哪里出错了.

以下是我用过的代码......

int main(int argc, char* argv[]) {
    CvCapture* input = cvCaptureFromFile(argv[1]);
    IplImage* image = cvRetrieveFrame(input);

    if (!image) {
        printf("Unable to read input");
        return 0;
    }


    CvSize imgSize;
    imgSize.width = image->width;
    imgSize.height = image->height;



    double fps = cvGetCaptureProperty(
            input,
            CV_CAP_PROP_FPS
            );

    CvVideoWriter *writer = cvCreateVideoWriter(
            "out.avi",
            CV_FOURCC('M', 'J', 'P', 'G'),
            fps,
            imgSize
            );


    IplImage* colourImage;
    //Keep processing frames...
    for (;;) {

        //Get a frame from the input video.
        colourImage = cvQueryFrame(input);
        cvWriteFrame(writer, colourImage);

    }

    cvReleaseVideoWriter(&writer);
    cvReleaseCapture(&input);

}

Eric.. 13

我敢打赌,cvCreateVideoWriter返回NULL.只需单步执行即可查看是否属实.在这种情况下,问题可能是CV_FOURCC(..),它没有找到编解码器并强制返回0;

您可以尝试使用-1而不是CV_FOURCC.在运行时期间会有一个提示,您可以选择适当的编解码器



1> Eric..:

我敢打赌,cvCreateVideoWriter返回NULL.只需单步执行即可查看是否属实.在这种情况下,问题可能是CV_FOURCC(..),它没有找到编解码器并强制返回0;

您可以尝试使用-1而不是CV_FOURCC.在运行时期间会有一个提示,您可以选择适当的编解码器

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有