Files
multi_camera/README.md

197 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 多摄像头实时监控系统
## 项目概述
这是一个基于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: 优化界面布局和控制功能