初始提交:当前多摄像头监控系统代码

This commit is contained in:
Hao Wang
2025-12-07 01:51:13 +08:00
commit e991e0e7e6
8 changed files with 1049 additions and 0 deletions

197
README.md Normal file
View File

@@ -0,0 +1,197 @@
# 多摄像头实时监控系统
## 项目概述
这是一个基于Flask的多摄像头实时监控系统支持6个摄像头的网格布局显示具有完整的登录认证、实时状态监控和摄像头控制功能。
## 功能特性
### 🎥 摄像头功能
- **6个摄像头网格布局**3×2无缝连接网格
- **实时视频流**:直接嵌入原系统摄像头页面
- **独立摄像头控制**:每个摄像头可单独操作
- **摄像头编号切换**支持0-7号摄像头切换
### 🎛️ 控制功能
- **刷新所有摄像头**:一键刷新所有视频流
- **重新连接系统**:自动重新登录认证
- **全屏显示**:支持单个摄像头全屏显示
- **实时状态监控**显示内存、CPU使用率和当前时间
### 🔐 认证功能
- **自动登录**:使用预设账号密码自动认证
- **Session保持**:维持登录状态
- **自动重连**:检测连接状态并自动重连
## 系统要求
### 依赖包
```bash
Flask==2.3.3
requests==2.31.0
```
### Python版本
- Python 3.6+
## 安装和运行
### 方法一:直接运行(推荐开发环境)
#### 1. 安装依赖
```bash
pip install Flask requests
```
#### 2. 运行应用
```bash
python3 complete_multi_camera_app.py
```
#### 3. 使用启动脚本
```bash
chmod +x start.sh
./start.sh
```
#### 4. 访问系统
打开浏览器访问:`http://127.0.0.1:5002`
### 方法二Docker部署推荐生产环境
#### 1. 构建Docker镜像
```bash
chmod +x docker-build.sh
./docker-build.sh
```
#### 2. 运行Docker容器
```bash
chmod +x docker-run.sh
./docker-run.sh
```
#### 3. 手动Docker命令
```bash
# 构建镜像
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管理命令
```bash
# 查看容器状态
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` 列表配置摄像头信息:
```python
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` 类中配置登录信息:
```python
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: 优化界面布局和控制功能