【发布时间】:2015-04-19 04:47:49
【问题描述】:
我正在使用 OpenCV 对 AVI 文件进行一些处理。一切正常,除了原始视频中只有一小部分帧被捕获。
这是我的代码的摘录:
capture=cvCaptureFromAVI(PATH_TO_VIDEO);
int fps=(int) cvGetCaptureProperty(capture,CV_CAP_PROP_FPS);
int frames=(int) cvGetCaptureProperty(capture,CV_CAP_PROP_FRAME_COUNT);
qDebug("%d frames at %d fps",frames,fps);
int framesSaved=0;
while(1) {
frame=cvQueryFrame(capture);
if(!frame) break;
framesSaved++;
data = (uchar *)frame->imageData;
//PROCESSING
cvWriteFrame(writer,frame);
}
cvReleaseVideoWriter(&writer);
qDebug("VIDEO SAVED: %d frames",framesSaved);
输出:
1948 frames at 50 fps
VIDEO SAVED: 105 frames
知道可能是什么问题吗?
谢谢
【问题讨论】:
-
解码下一帧时也可能出现不同的错误。来自 cvQueryFrame 的
NULL不一定意味着 EOF。可能文件已损坏/不完整。
标签: opencv