我正在尝试使用flask应用程序中的rtsp链接从多个网络摄像头捕获流,并希望通过浏览器显示。为了达到这个目的,我创建了两个独立的制作人,topic和两个consumer。在启动kafka服务器并同时运行消费者.py以及producer.py,两个流式处理仅运行两秒。在
我想从多个网络摄像头捕获流
producer.pyimport time
import sys
import cv2
from kafka import KafkaProducer
from kafka.errors import KafkaError
producer = KafkaProducer(bootstrap_servers='localhost:9092')
producer2 = KafkaProducer(bootstrap_servers='localhost:9092')
topic = 'my-topic'
topic2 = 'my-topic2'
def emit_video():
print('start emitting')
camera = cv2.VideoCapture('rtsp://webcam1')
camera2 = cv2.VideoCapture('rtsp://webcam2')
while True:
success, frame = camera.read()
success2, frame2 = camera2.read()
if not success2:
print("camera issue")
# png might be too large to emit
else:
data = cv2.imencode('.jpeg', frame)[1].tobytes()
data2 = cv2.imencode('.jpeg', frame2)[1].tobytes()
future = producer.send(topic, data)
future2 = producer2.send(topic2, data2)
try:
future.get(timeout=60)
future2.get(timeout=60)
except KafkaError as e:
print(e)
break
print('.', end='', flush=True)
# to reduce CPU usage
# time.sleep(0.2)
# print()
# video.release()
print('done')
emit_video()
这是我的消费者.py
^{pr2}$