小编Aak*_*tel的帖子

OpenCV VideoWriter帧率问题

我正在尝试将1080p网络摄像头中的视频录制到文件中.我在视频中设置了一个计时器,在每次试验中,视频播放器报告的时间戳(我使用的VLC)与视频中的时间不同步.它总是关闭几秒钟(通常视频内定时器比播放器报告的时间更快).

如下所示,我设置了C++程序以在一个线程中捕获视频,并在另一个线程中记录.这工作正常,因为我的CPU使用率是~200%(可能最大?).我使用的是带有OS X 10.8 @ 1.8 GHz Intel Core i7的Macbook Air.

我已经尝试将帧速率更改为15fps,这会导致非常不稳定/慢速的视频.我也试着设置CV_CAP_PROP_FRAME_WIDTHCV_CAP_PROP_FRAME_HEIGHT较低的分辨率和它导致缓慢的视频.似乎1080p @ 30fps会产生良好的稳定视频,但它的播放速度仍然比预期的要快.我也试图把在waitKey(10);record << frame;,但它并没有造成任何影响.

有关如何使视频及时匹配的任何建议?

谢谢!Aakash

#include "opencv/cv.h"
#include "opencv/highgui.h"
#include <boost/thread.hpp>

using namespace cv;

void captureFunc(Mat *frame, VideoCapture *capture){
    for(;;){
        // get a new frame from camera
        (*capture) >> (*frame);
    }
}

int main(int, char**)
{
    VideoCapture capture(0); // open the default camera
    if( !capture.isOpened() )  {
        printf("Camera failed to open!\n");
        return -1;
    }

    capture.set(CV_CAP_PROP_FPS,30); //set capture rate to …
Run Code Online (Sandbox Code Playgroud)

c++ opencv video-capture

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

c++ ×1

opencv ×1

video-capture ×1