使用OpenCV播放视频以纠正速度

时间:2015-10-21 12:06:35

标签: c++ opencv

我的视频文件有问题,为什么它是慢动作? 我怎样才能使它达到正常速度?

#include"opencv2/opencv.hpp" 
using namespace cv; 

int main(int, char**) 
{ 
    VideoCapture cap("eye.mp4"); 
    // open the default camera 
    if (!cap.isOpened()) 
        // check if we succeeded 
        return -1; 

    namedWindow("Video", 1); 
    while (1) 
    { 
        Mat frame; 
        cap >> frame; 
        imshow("Video", frame); 
        if (waitKey(10) == 'c') 
            break; 
    } 
    return 0; 
}

1 个答案:

答案 0 :(得分:1)

VideoCapture不是为播放而构建的,它只是一种从视频文件或相机中抓取帧的方法。其他支持播放的库,如GStreamer或Directshow,它们设置一个控制播放的时钟,以便配置为尽可能快地播放或使用原始帧速率。

在您的代码段中,帧之间的间隔来自读取帧所需的时间和waitKey(10)。尝试使用waitKey(0),它应该至少播放得更快。理想情况下,您可以使用waitKey(1/fps)