sarmad sarmad - 1 year ago 189
C++ Question

Playing a video file in opencv c++

I'm trying to play a video file using the following code.

When run it only shows a black screen with the window name (Video), can anyone help me fix it.

#include <opencv2/highgui/highgui.hpp>
#include <iostream>
#include <opencv2\core\core.hpp>
#include "opencv2/opencv.hpp"
using namespace cv;

int main( int argc, char** argv )
CvCapture* capture = cvCreateFileCapture( "1.avi" );
Mat frame= cvQueryFrame(capture);

imshow("Video", frame);

Answer Source

Actually the code you posted won't even compile.

Just have a look at OpenCV documentation: Reading and Writing images and video

#include "opencv2/opencv.hpp"

using namespace cv;

int main(int, char**)
VideoCapture cap(0); // open the default camera
//Video Capture cap(path_to_video); // open the video file
if(!cap.isOpened())  // check if we succeeded
    return -1;

    Mat frame;
    cap >> frame; // get a new frame from camera        
    imshow("Video", frame);
    if(waitKey(30) >= 0) break;
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download