OpenCV只捕获视频文件中的一小部分帧

Osi*_*ris 2 opencv

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

输出:

1948 frames at 50 fps
VIDEO SAVED: 105 frames
Run Code Online (Sandbox Code Playgroud)

知道问题可能是什么?

谢谢

Sam*_*Sam 8

众所周知,OpenCV VideoCapture在报告正确的帧数方面存在严重问题 CV_CAP_PROP_FRAME_COUNT

好消息是,OpenCV的人正在努力为下一个版本修复它.

  • 这是固定的吗? (4认同)