我似乎无法使用OpenCV播放我的avi文件。我在Mac上,文件适用于Quicktime和VLC播放器。我曾尝试使用mencoder将其转换为i420,但仍然没有成功。没有出现错误消息,似乎程序自动关闭,我不知道如何调试它。
int main(int argc, char* argv[])
{
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCreateFileCapture( argv[1] );
IplImage* frame;
while(1) {
frame = cvQueryFrame( capture );
if( !frame ) break;
cvShowImage( "Example2", frame );
char c = cvWaitKey(33);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );
}
答案 0 :(得分:0)
好吧,既然你的代码缺少错误检查,可能cvCreateFileCapture()可能存在问题,在你检查函数返回之前你永远不会知道。
无论如何,您应该在此处删除或添加此语句的调试:
if( !frame ) break;
如果在检索文件的第一帧时出现问题,您的应用程序就会放弃并静默退出,给您“没事”的感觉。
将其更改为:
if (!frame) { printf("Uow, huge fail!\n"); break;}
但最重要的是:你为什么不使用cvCaptureFromAVI()? 看看这个:http://nashruddin.com/How_to_Play_AVI_Files_with_OpenCV