Opencv 第一次使用open cv无法播放avi文件
我用open cv尝试的视频的帧速率是29帧/秒,帧宽是720,高度是480。视频的格式是带有avi包装的DX50 显示的空白窗口名为example2,它会消失 问题是cvcapturefromavi确实返回指针,这就是为什么不打印fail的原因Opencv 第一次使用open cv无法播放avi文件,opencv,Opencv,我用open cv尝试的视频的帧速率是29帧/秒,帧宽是720,高度是480。视频的格式是带有avi包装的DX50 显示的空白窗口名为example2,它会消失 问题是cvcapturefromavi确实返回指针,这就是为什么不打印fail的原因 操作系统窗口7我在我的计算机上尝试使用网络摄像头,而不是使用cvCaptureFromCAM-1的文件,并且您的代码运行良好,这是您应该尝试的 文件a.avi不在可执行文件的路径中,也许您应该首先使用绝对路径来尝试类似C:/MyVideos/a.avi
操作系统窗口7我在我的计算机上尝试使用网络摄像头,而不是使用cvCaptureFromCAM-1的文件,并且您的代码运行良好,这是您应该尝试的 文件a.avi不在可执行文件的路径中,也许您应该首先使用绝对路径来尝试类似C:/MyVideos/a.avi的内容 我会尝试使用cvCaptureFromFile函数,而不是cvCaptureFromAVI,因为我在API文档OpenCV C 2.1中搜索,没有找到任何cvCaptureFromAVI函数,可能它存在,但不推荐使用或没有文档记录。 PS:您的代码中有一个小错误,为什么在else{}范围中使用cvDestroyWindow,当您在主范围中创建窗口时,它应该在主范围中 PPS:为了便于阅读,请将代码缩进
朱利安,我也有同样的问题。据说问题的出现是因为缺少必要的视频编解码器。建议使用Mencoder对avi文件进行编码,以便使用OpenCV,但这并没有解决我的问题,我仍然无法使用OpenCV 2.3.1播放avi文件
我通过向路径opencv_ffmpeg.dll添加丢失的内容来解决问题。希望它适用于您和面临此问题的人。如果您将opencv构建到静态库,您会发现bin目录中仍然有一个dll文件opencv\u ffmpegxxxxx.dll。即使您将代码静态链接到opencv,也需要此dll。因此,请确保系统能够找到此dll文件。我按照您所说的做了,使用了cvcapturefromfile并提供了绝对路径,但仍然无法工作。只有空白窗口。您可以将视频上传到某个地方并给我链接吗?我使用了opencv示例文件夹中的tree.avi
int main()
{
cvNamedWindow( "Example2", CV_WINDOW_AUTOSIZE );
CvCapture* capture = cvCaptureFromAVI( "a.avi" );
IplImage* frame;
if(!capture)
{
printf("fail");
}
else
{
while(1)
{
frame = cvQueryFrame( capture );
cvShowImage( "Example2", frame );
char c = cvWaitKey(40);
if( c == 27 ) break;
}
cvReleaseCapture( &capture );
cvDestroyWindow( "Example2" );
}
return 0;
}