我想在ubuntu中使用opencv C++播放avi文件,但我没有输出。我使用的代码是一个标准的代码,我在网上发现,用于播放avi视频,但我看不到任何输出。是的,视频和我的src代码文件夹在同一个目录下。我看到的唯一的事情是,在while循环的第一次迭代中,帧是空的,因此中断。但我不知道为什么它发生在视频正在使用vlc。我非常感谢这里的一些帮助,因为我在过去的4-5个小时里一直坚持下去。 #include“cv.h”//将其包含到使用的Main OpenCV函数中。 #include“highgui.h”//包含它以使用GUI功能。OpenCV - 播放AVI文件
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;
}
您的代码在我的电脑中运行良好。 – Haris
真的吗?可以用ffmpeg做什么? – ueg1990
你需要有ffmpeg。它是否安装在您的系统上?安装OpenCV时是否安装?你为什么要评论'if(!capture){}'块?如果它表示无法打开视频,则可能是文件名错误,或者您不支持安装ffmpeg。 – JonesV