【问题标题】:Is the speed of opencv writing video slower than the actual setting speed?opencv写视频的速度是不是比实际设置速度慢?
【发布时间】:2021-04-25 09:48:55
【问题描述】:

我想用opencv写一个视频文件。我把帧率设置为20的时候,每帧写的时间应该是50ms,但是当我拿到每帧写的时间的时候,每3到4帧就有一帧,花了很多时间,大概63ms .这导致我用 opencv 编写的视频时长比实际录制时长短。 我的代码如下

Mat frame;
VideoCapture cap(0, CAP_DSHOW);

cap.set(3, 640);
cap.set(4, 480);
cap.set(CV_CAP_PROP_FPS, 20);
VideoWriter video("test.avi", CV_FOURCC('X', 'V', 'I', 'D'), 20, Size(640, 480));

clock_t start, ends;
while (cap.isOpened()) {

    start = clock();

    cap >> frame;
    if (frame.empty()) break;
    video << frame;
    imshow("Frame1", frame);
    waitKey(1);
    if (_kbhit()) {
        int ch = _getch();
        if (ch == 27) break;
    }

    ends = clock();
    cout << ends - start << endl;

}
cap.release();
video.release();
destroyAllWindows();

每帧写入时间的例子是48 47 46 63 46 47 49 46 63 49 47 48 62 47 48 46 47 62 48 44 47 49 63 47 46 47 64,当我录制5分钟的视频时,实际视频只有大约 4 分 45 秒。 谢谢你的帮助。

【问题讨论】:

  • 视频编码很昂贵。通过告诉写入 20 fps,您只是告诉了必须如何解释视频,它并没有说明您的系统可以多快编码/写入帧。获得更快的 PC 并使用缓冲 + 线程和/或如果您已经有硬件编码器(例如许多英特尔 CPU),请使用允许硬件加速编码/写入的 VideoWriter 后端(您必须谷歌搜索)..
  • 我试试,谢谢你的回复

标签: opencv video-capture


【解决方案1】:

您正在从相机获取帧。

你确实要求它 20 fps,但它可能无法精确地做到这一点。

它也可能决定给你更少的帧,因为由于低光补偿(如果启用了),它必须让它们曝光更长时间。

您的某些假设完全无效。我希望我设法将它们指出给你。

如果您“录制 5 分钟的视频”,则说明您一直保密,因此我们不能依赖您的声明。

如果还有问题,您需要提供更多信息,例如在什么时间段内的精确帧数,以及是否可以证明 在读取时也不会写入文件来自相机。

【讨论】:

  • 其实我在每一帧图片上都写上了我的当地时间。我刚刚重新录了一个606s的视频,但是得到的视频只有11758帧,也就是588s。
  • 我用这段代码获取时间timeb t; ftime(&amp;t); tm* ltm = localtime(&amp;t.time); time_str = to_string(1900 + ltm-&gt;tm_year) + " " + to_string(1 + ltm-&gt;tm_mon)\ + " " + to_string(ltm-&gt;tm_mday) + " " + to_string(ltm-&gt;tm_hour) + ":" + \ to_string(ltm-&gt;tm_min) + ":" + to_string(ltm-&gt;tm_sec) + "." + \ to_string(t.millitm);并用这段代码写每一帧的时间,putText(frame, time_str, Point(100, 80), FONT_HERSHEY_SIMPLEX, 1, Scalar(255, 0, 0), 2, 14, false)谢谢你的回复
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 2011-06-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多