OpenCV - Play AVI File

核能气质少年 提交于 2019-12-12 02:35:34

问题


I am trying to play in avi file using opencv c++ in ubuntu but i am getting no output. The code im using is a standard code that i found online that is used to play an avi video but im seeing no output. And yes the video is in the same directory as my src code folder. The only thing im seeing is that on the first iteration of the while loop, frame is empty and hence breaks. but i do not know why it is happening as the video is working on vlc. I would really appreciate some help here as i have been stuck on it for the past 4-5 hours. #include "cv.h" // include it to used Main OpenCV functions. #include "highgui.h" //include it to use GUI functions.

int main(int argc, char** argv)
{
cvNamedWindow("Example3", CV_WINDOW_AUTOSIZE);

//CvCapture* capture = cvCreateFileCapture("20051210-w50s.flv");
CvCapture* capture = cvCreateFileCapture("tree.avi");
/* if(!capture)
    {
        std::cout <<"Video Not Opened\n";
        return -1;
    }*/
IplImage* frame = NULL;

while(1) {

    frame = cvQueryFrame(capture);
    //std::cout << "Inside loop\n";
    if (!frame)
        break;
    cvShowImage("Example3", frame);
    char c = cvWaitKey(33);
    if (c == 27) break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Example3");
std::cout << "Hello!";
return 0;
}

回答1:


Are you running in Debug or release mode? In openCV 2.4.4 there is only a opencv_ffmpeg244.dll (the release .dll) but not one for debug. try switching to release mode.




回答2:


Remove the code lines:

char c = cvWaitKey(33);
if (c == 27) break;

and instead of these, just add :

cvWaitKey(33);

May be this could help.Here is the python code, that worked fine for me:

import cv
if __name__ == '__main__':
  capture = cv.CreateFileCapture('Wildlife.avi')
  loop = True
  while(loop):
    frame = cv.QueryFrame(capture)
    if (frame == None):
            break;
    cv.ShowImage('Wild Life', frame)
    char = cv.WaitKey(33)
    if (char != -1):
        if (ord(char) == 27):
            loop = False

Or this could be helpful.



来源:https://stackoverflow.com/questions/19606988/opencv-play-avi-file

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!