如何使用opencv播放视频?

时间:2012-09-26 10:15:32

标签: c++ opencv computer-vision

我正在尝试使用opencv播放视频(视频是存储在磁盘上的avi文件)。但是,程序会在cap_ffmppeg.cpp

中的以下行停止执行
if(!ffmpegCapture ||
   !icvRetrieveFrame_FFMPEG_p(ffmpegCapture,&data,&step,&width,&height,&cn))
   return 0;

错误是:Access violation reading location ...因此第一次运行capture >> frame时发生了seg错误。

以下是该计划:

#include<iostream>
#include<fstream>
#include<cv.h>
#include<highgui.h>
#include<opencv2/nonfree/features2d.hpp>
using namespace std;
using namespace cv;


int main(int argc, char *argv[])
{
    if (argc <= 1)
    {
        printf("Usage: %s video\n", argv[0]);
        return -1;
    }

    VideoCapture capture(argv[1]);


    if(!capture.isOpened())
    {
        printf("Failed to open the video\n");
        return -1;
    }

    for(;;)
    {
        Mat frame;
        capture >> frame; // get a new frame from camera
    }

    return 0;
}

知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

如果您使用的是x64。 请使用opencv_ffmpeg245_64.dll这个解决可以解决问题。 或者将opencv_ffmpeg245_64.dll重命名为opencv_ffmpeg245可能会解决问题。

答案 1 :(得分:0)

原来,OpenCV无法播放未压缩的视频。压缩它,一切都很好......不知道为什么原来的问题存在。