更新:根据来自该站点和其他站点的反馈,OpenCV似乎不是一个用于微妙的视频录制(例如帧频问题)的绝佳平台。
我在C ++ OpenCV3.4应用程序中运行两个线程。一个线程使用VideoCapture
循环读取帧并将其写入boost::circular_buffer
。另一个线程将帧从缓冲区中拉出并将其写入VideoWriter
。
这是问题所在:摄像机的速度为29.97fps,但由于CPU速度较慢,因此循环读取的速度并不快。平均速度为10-15fps。这个帧率波动,所以我不能仅仅将VideoWriter
设置为10fps并继续下去,因为我会由于系统中发生的其他情况而遇到缓冲区上溢/下溢的情况。
我是否必须手动跟踪两个帧速率,然后将帧丢弃/重发到VideoWriter
才能维持预期的FPS速率,还是已经有一种方法可以在OpenCV中管理我丢失的速率?
谢谢, PT