Python 在网络摄像头播放流媒体时定期拍照
我希望在将视频流传输到浏览器时,定期(即每5秒)使用网络摄像头拍照。在Python中如何使用Flask和OpenCV实现这一点?在Windows上,使用网络摄像头非常容易 例如 在Linux上,它是,但仍然是相同的原则 但是,如果您希望毫不拖延地执行此操作,这可能会更好:Python 在网络摄像头播放流媒体时定期拍照,python,opencv,flask,video-streaming,webcam,Python,Opencv,Flask,Video Streaming,Webcam,我希望在将视频流传输到浏览器时,定期(即每5秒)使用网络摄像头拍照。在Python中如何使用Flask和OpenCV实现这一点?在Windows上,使用网络摄像头非常容易 例如 在Linux上,它是,但仍然是相同的原则 但是,如果您希望毫不拖延地执行此操作,这可能会更好: import time from VideoCapture import Device webCam = Device() name = 1 while(True): #Take pictures forever we
import time
from VideoCapture import Device
webCam = Device()
name = 1
while(True): #Take pictures forever
webCam.saveSnapshot(name + '.jpg') #Take picture
start = time.time()
while not (time.time() - start > 50):
pass
name = name+1 #We don't want to write over the same image every time
不要自己写,使用像
motion
这样的工具使用time.sleep的问题在于它会停止流媒体。我想要流媒体和快照。我查看了threading.Timer,但我不明白您可以这样做:start=time.time(),而不是(time.time()-start>5):通过
参见上文,我编辑了我的答案如果这回答了您的问题,请将我的答案标记为正确。但是,如果您仍然需要澄清,请在评论中说明。我以不同的方式解决了这个问题,通过计算帧而不是计算时间,并使用if语句,如下所示:
import time
from VideoCapture import Device
webCam = Device()
name = 1
while(True): #Take pictures forever
webCam.saveSnapshot(name + '.jpg') #Take picture
start = time.time()
while not (time.time() - start > 50):
pass
name = name+1 #We don't want to write over the same image every time