多摄像头实时监控系统

项目概述

这是一个基于Flask的多摄像头实时监控系统支持6个摄像头的网格布局显示具有完整的登录认证、实时状态监控和摄像头控制功能。

功能特性

🎥 摄像头功能

  • 6个摄像头网格布局3×2无缝连接网格
  • 实时视频流:直接嵌入原系统摄像头页面
  • 独立摄像头控制:每个摄像头可单独操作
  • 摄像头编号切换支持0-7号摄像头切换

🎛️ 控制功能

  • 刷新所有摄像头:一键刷新所有视频流
  • 重新连接系统:自动重新登录认证
  • 全屏显示:支持单个摄像头全屏显示
  • 实时状态监控显示内存、CPU使用率和当前时间

🔐 认证功能

  • 自动登录:使用预设账号密码自动认证
  • Session保持:维持登录状态
  • 自动重连:检测连接状态并自动重连

系统要求

依赖包

Flask==2.3.3
requests==2.31.0

Python版本

  • Python 3.6+

安装和运行

方法一:直接运行(推荐开发环境)

1. 安装依赖

pip install Flask requests

2. 运行应用

python3 complete_multi_camera_app.py

3. 使用启动脚本

chmod +x start.sh
./start.sh

4. 访问系统

打开浏览器访问:http://127.0.0.1:5002

方法二Docker部署推荐生产环境

1. 构建Docker镜像

chmod +x docker-build.sh
./docker-build.sh

2. 运行Docker容器

chmod +x docker-run.sh
./docker-run.sh

3. 手动Docker命令

# 构建镜像
docker build -t multi-camera-monitor:latest .

# 运行容器
docker run -d -p 5002:5002 --name multi-camera-app --restart unless-stopped multi-camera-monitor:latest

4. 访问系统

打开浏览器访问:http://localhost:5002

Docker管理命令

# 查看容器状态
docker ps

# 查看容器日志
docker logs -f multi-camera-app

# 停止容器
docker stop multi-camera-app

# 重启容器
docker restart multi-camera-app

# 进入容器
docker exec -it multi-camera-app bash

# 删除容器
docker rm multi-camera-app

# 删除镜像
docker rmi multi-camera-monitor:latest

配置文件

摄像头配置

complete_multi_camera_app.py 中的 cameras 列表配置摄像头信息:

self.cameras = [
    {
        'id': 1,
        'room': 'cnfzhjyg-igv-251',
        'camera': 'camera-0',
        'name': '1号车',
        'url': f"{self.camera_url}?room=cnfzhjyg-igv-251&camera=camera-0"
    },
    # ... 其他摄像头配置
]

登录配置

CompleteCameraManager 类中配置登录信息:

self.username = "hao.wang@westwell-lab.com"
self.password = "wh707297"

使用说明

界面布局

  • 顶部控制栏:刷新、重连按钮和系统状态显示
  • 摄像头网格6个摄像头以3×2网格排列
  • 摄像头控制:每个摄像头下方有独立的控制按钮

操作指南

  1. 刷新摄像头:点击摄像头下方的"刷新"按钮
  2. 切换摄像头编号点击0-7数字按钮切换摄像头视角
  3. 全屏显示:点击"全屏"按钮进入全屏模式
  4. 系统重连:点击"重新连接"按钮重新登录系统

状态监控

  • 内存使用显示应用程序内存消耗MB
  • CPU占用显示CPU使用率%
  • 当前时间:实时显示系统时间

技术架构

前端技术

  • HTML/CSS:响应式网格布局
  • JavaScript:实时状态更新和摄像头控制
  • Flask模板:动态内容渲染

后端技术

  • Flask框架Web应用服务器
  • requests库HTTP请求处理
  • Session管理:登录状态保持

监控功能

  • 内存监控使用Python内置方法获取内存使用
  • CPU监控估算CPU使用率
  • 连接状态:定期检查系统连接状态

故障排除

常见问题

  1. 登录失败:检查网络连接和账号密码
  2. 摄像头无法显示检查摄像头URL配置
  3. 端口占用:修改应用启动端口

日志文件

应用运行日志保存在 complete_multi_camera.log 文件中

开发说明

扩展功能

  • 添加更多摄像头
  • 实现录像功能
  • 添加报警通知
  • 支持移动端适配

安全注意事项

  • 定期更新账号密码
  • 使用HTTPS加密传输
  • 限制访问IP范围

许可证

本项目仅供内部使用

更新日志

  • v1.0: 初始版本支持6个摄像头网格布局和实时监控
  • v1.1: 添加系统状态监控内存、CPU、时间
  • v1.2: 优化界面布局和控制功能
Description
No description provided
Readme 64 KiB
Languages
Python 41.8%
CSS 23.8%
JavaScript 18.1%
HTML 16.3%