OpenCV-播放AVI文件 我试图在Ubuntu中使用OpenCV C++来播放AVI文件,但我没有得到输出。我使用的代码是我在网上找到的标准代码,用于播放avi视频,但我看不到输出。是的,视频和我的src代码文件夹在同一个目录下。我唯一看到的是,在while循环的第一次迭代中,帧为空,因此中断。但我不知道为什么它会发生,因为视频正在vlc上工作。我真的很感谢你的帮助,因为在过去的4-5个小时里,我一直在努力。 #包括“cv.h”//将其包括在使用的主要OpenCV函数中。 #包括“highgui.h”//包括它以使用GUI功能 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; } int main(int argc,char**argv) { cvNamedWindow(“示例3”,CV\u窗口\u自动调整大小); //CvCapture*capture=cvCreateFileCapture(“20051210-w50s.flv”); CvCapture*capture=cvCreateFileCapture(“tree.avi”); /*如果(!捕获) { std::cout

OpenCV-播放AVI文件 我试图在Ubuntu中使用OpenCV C++来播放AVI文件,但我没有得到输出。我使用的代码是我在网上找到的标准代码,用于播放avi视频,但我看不到输出。是的,视频和我的src代码文件夹在同一个目录下。我唯一看到的是,在while循环的第一次迭代中,帧为空,因此中断。但我不知道为什么它会发生,因为视频正在vlc上工作。我真的很感谢你的帮助,因为在过去的4-5个小时里,我一直在努力。 #包括“cv.h”//将其包括在使用的主要OpenCV函数中。 #包括“highgui.h”//包括它以使用GUI功能 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; } int main(int argc,char**argv) { cvNamedWindow(“示例3”,CV\u窗口\u自动调整大小); //CvCapture*capture=cvCreateFileCapture(“20051210-w50s.flv”); CvCapture*capture=cvCreateFileCapture(“tree.avi”); /*如果(!捕获) { std::cout,opencv,avi,Opencv,Avi,您是在调试模式下运行还是在发布模式下运行? 在openCV 2.4.4中,只有一个openCV_ffmpeg244.dll(release.dll),但没有用于调试的。请尝试切换到发布模式。删除代码行: char c = cvWaitKey(33); if (c == 27) break; 除了这些,只需添加: cvWaitKey(33); 这可能会有所帮助。以下是python代码,对我来说效果很好: import cv if __name__ == '__main__': captur

您是在调试模式下运行还是在发布模式下运行? 在openCV 2.4.4中,只有一个openCV_ffmpeg244.dll(release.dll),但没有用于调试的。请尝试切换到发布模式。

删除代码行:

char c = cvWaitKey(33);
if (c == 27) break;
除了这些,只需添加:

cvWaitKey(33);
这可能会有所帮助。以下是python代码,对我来说效果很好:

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

或者可能会有帮助。

您的代码在我的电脑中运行良好。真的吗?与ffmpeg有什么关系吗?您需要ffmpeg。它安装在您的系统上吗?它是在您安装OpenCV时安装的吗?为什么要注释掉
if(!capture){
block?如果它说无法打开视频,则可能是文件名错误,或者您没有安装对ffmpeg的支持。