我这里有这段代码来播放视频。当我编译它时,它确实很好但是当我运行时,它什么也没做。可能是什么问题呢?这是代码吗?或者我的视频依赖项未正确安装?
#include <highgui.h>
int main(int argc, char** argv) {
/* Create a window */
cvNamedWindow("Example2", CV_WINDOW_AUTOSIZE);
/* capture frame from video file */
CvCapture* capture = cvCreateFileCapture( argv[1]);
/* Create IplImage to point to each frame */
IplImage* frame;
/* Loop until frame ended or ESC is pressed */
while(1)
{
/* grab frame image, and retrieve */
frame = cvQueryFrame(capture);
/* exit loop if fram is null / movie end */
if(!frame) break;
/* display frame into window */
cvShowImage("Example2", frame);
/* if ESC is pressed then exit loop */
char c = cvWaitKey(33);
if(c==27) break;
}
/* destroy pointer to video */
cvReleaseCapture(&capture);
/* delete window */
cvDestroyWindow("Example2");
return EXIT_SUCCESS;
}
答案 0 :(得分:0)
不是通过命令行直接给出文件名,而是尝试在参数中传递文件名并查看视频是否显示,在参数中提供文件的完整路径。如果没有,那么我们将尝试确定操作系统或视频依赖项是否有问题。
目前在我看来好像你没有为文件提供正确的路径。
您正在使用的视频格式是什么?
同时检查视频文件是否已加载。
if(!capture)
{
//Just to check if the video gets loaded or not
printf("Video Can't be loaded");
getch();
System.exit(0);
}
希望有所帮助。