opencv VideoWriter录制的视频未以匀速播放
我使用opencv的videowriter来录制视频,但当我播放视频时,图片并非总是以恒定速度播放。有时会更快,但以后会变得正常。例如,如果视频中有人行走,此人有时会走得很快,但稍后会减速,然后再走得更快。但事实上,这个人正以恒定的速度行走。有人能告诉我怎么解决这个问题吗?欢迎提出任何意见。谢谢 这是我的记录代码:opencv VideoWriter录制的视频未以匀速播放,opencv,video,record,Opencv,Video,Record,我使用opencv的videowriter来录制视频,但当我播放视频时,图片并非总是以恒定速度播放。有时会更快,但以后会变得正常。例如,如果视频中有人行走,此人有时会走得很快,但稍后会减速,然后再走得更快。但事实上,这个人正以恒定的速度行走。有人能告诉我怎么解决这个问题吗?欢迎提出任何意见。谢谢 这是我的记录代码: def image_callback(msg): self.image_queue.put(msg) fourcc = cv2.VideoWriter_fourcc(*
def image_callback(msg):
self.image_queue.put(msg)
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter("test.avi",fourcc,30,(1280,720))
while (True):
if(self.image_queue.qsize() > 0):
out.write(self.image_queue.get())#self.image_queue is a queue which keep storing cv::mat data
想象一下,就像VideoWriter在每一帧之间放置一个恒定的延迟(在您的情况下为1000/30ms)。问题是图像回调不能以相等的时间间隔获得输入。解决方案如下所示:
- 测量来自回调的两个图像之间经过的时间(让
以毫秒为单位为该变量)time\u passed
- 将
帧帧插入到VideoWriter中(时间经过/(1000/30.)