docker - 如何使用 OpenCV、Kafka 和 Docker 扩展来自多个摄像头的视频处理
问题描述
我们正在尝试扩展我们的实时视频处理系统以支持一百多个摄像机。该系统主要是用 Python 构建的。
我们正在使用 OpenCV 轮询 RTSP 摄像机流,并计划使用 Kafka Producer 交付它们。系统的这一部分称为Poller或 Stream Producer。
摄像机将使用 Web 界面进行配置,轮询器应接收任何摄像机的启动/停止消息以及其他详细信息,例如 RTSP 流 URL。这应使用 Celery 完成。对于每个启动请求,轮询器将为该相机创建一个新进程并使用cv2.VideoCapture().read()
. 捕获的帧将被发送到带有相机 ID 和时间戳的 Kafka。
我们在 Docker 容器中运行所有组件,并打算水平扩展。
我们如何为大量(超过一百甚至更多)摄像头扩展 Poller,并有效地平衡多个 Poller 实例之间的摄像头流。有没有办法使用 CPU/内存指标来实现它,或者我们可以为 Docker 遵循的更标准的方法。
解决方案
推荐阅读
- javascript - 如何设置变量以满足 for 循环循环之外的条件?
- python - 如何在 python-weka-wrapper 中为关联规则准备数据?
- android - 如何在不编写 php 代码的情况下将用户从 android 应用程序登录到 wordpress 网站
- python - 在 RDD 上使用 python 类方法
- python - 如何减去具有不同填充值的数据帧
- javascript - 选项 net::ERR_EMPTY_RESPONSE Angular - CORS 设置是什么?
- ios - 在播放视频ios swift中显示广告
- html - 在无序列表中将带有图像的文本垂直居中
- rebus - 如何为 Rebus 编写中间件?
- javascript - 如何测试是否在 window.onerror 上调用了函数