我正在尝试处理大型AVI文件(大约61000帧,505MB)
OpenCV,使用cvCaptureFromAVI()
和cvQueryFrame()
。
但是,cvQueryFrame()
在到达最后一帧之前返回NULL
指针
avi。
long int numframe = 6000;
while (numframe < 67000)
{
frame = cvQueryFrame( capture );
if (! frame)
{
fprintf(stderr, "could not query the frame %ld.\n", numframe);
break;
}
char namefile[250];
sprintf( namefile, "/media/6E86F8CB03A4DFA4/image-sequence/%ld.jpg", numframe );
cvSaveImage( namefile, frame ); // save frame as a image
numframe++;
}
是否有其他人遇到过同样的问题并找到解决办法? 有什么我可以做的吗?
答案 0 :(得分:1)
很可能您遇到过FFMPEG集成错误之一。 This bugreport看起来与您的问题非常相似。
您使用的是哪个版本的OpenCV?
我推荐你的任何方式:
尝试其他版本的OpenCV
尝试在没有FFMPEG的情况下构建OpenCV。可能OpenCV将能够使用VfW或GStreamer读取您的文件。