Opencv 两个网络摄像头同步

使用cv2.VideoCapture打开两个摄像头时,第二个设备会有约1.3-1.5秒的延迟。为了解决这个问题,可以通过测量初始化时间并乘以fps来确定第一个摄像头额外捕获的帧数,通过循环读取这些帧以实现两个摄像头的同步。经过这种方法调整后,可以成功同步摄像头的视频流。
摘要由CSDN通过智能技术生成

cv2.VideoCapture打开两个摄像头时后面打开的那个会有1.3-1.5s的延迟,

cap = cv2.VideoCapture()

cap2 = cv2.VideoCapture()

这是由于cap = cv2.VideoCapture()这行代码执行需要1.3-1.5的时间

所以我们先计算它执行的时间,然后乘以fps(每秒的帧数)就得到了第一个摄像头多录的帧数,用一个循环先把这些帧读完,然后再显示两个相机的帧就能达到时间同步了

#coding:utf8
import cv2
import datetime

oldtime=datetime.datetime.now()  #开始时间


cap = cv2.VideoCapture('rtsp://密码@ip地址/')
newtime=datetime.datetime.now()   #结束时间
print u'相差:%s'%(newtime-oldtime)
print u'相差:%s微秒'%(newtime-oldtime).microseconds
print u'相差:%s秒'%(newtime-oldtime).seconds
t = int((newtime-oldtime).seconds)*25
t+=int(float((newtime-oldtime).microseconds)/1000000*25)

cap2 = cv2.VideoCapture('rtsp://密码@ip地址/')#这里用第二个相机的密码和ip地址替代


print(t)
frameNum = 1
for i in range(t):
	ret,frame = cap.read()

#判断是否正常开启
frameNum = 1
n=
  • 7
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值