我遵循Miguel Grinbergs教程,使用OpenCV安装烧录视频流服务器(请参阅此处https://blog.miguelgrinberg.com/post/flask-video-streaming-revisited)。我得到了它并在Docker容器中运行,它工作正常。现在我想在另一个Docker-Container中使用视频源,因为我不想在烧瓶Web容器中安装OpenCV。 现在我遇到了Json-Serialization的问题。 我认为最好的方法是将OpenCV图像编码为字节并对其进行base64编码,然后将其转储到json中并将其发送到烧瓶容器,在那里我加载json和base64-decode图像。 但这并不奏效。在某些帧中,我得到填充错误,有些没有错误,但框架没有在浏览器中显示。
有人有想法吗?
def frames():
camera = cv2.VideoCapture(Camera.video_source)
_, img = camera.read()
img_bytes = cv2.imencode('.jpg', img)[1].tobytes()
img_as_text = base64.b64encode(img_bytes)
data = {"image": str(img_as_text)}
data_json = json.dumps(data)
new_json = json.loads(data_json)
im = new_json['image']
img_original = base64.b64decode(im)
yield img_original