496 lines
12 KiB
Markdown
496 lines
12 KiB
Markdown
# FastBee IoT平台 - 视频中心功能说明
|
||
|
||
## 一、视频中心概述
|
||
|
||
**视频中心**是FastBee IoT平台中专门用于视频监控管理的功能模块。它基于GB28181协议,支持SIP视频设备的接入、直播、录像、回放等功能,提供完整的视频监控解决方案。
|
||
|
||
### 核心特性
|
||
- **GB28181协议支持**: 符合国标GB28181视频监控协议
|
||
- **多路视频播放**: 支持1/4/9分屏同时播放
|
||
- **录像管理**: 支持录像查询、回放、下载
|
||
- **流媒体服务器**: 集成ZLM流媒体服务器
|
||
- **设备管理**: 支持SIP设备注册、通道管理
|
||
|
||
## 二、视频中心功能模块
|
||
|
||
### 2.1 分屏显示
|
||
|
||
**功能位置**: 视频中心 → 分屏显示
|
||
**路径**: `/iot/sip/splitview`
|
||
**权限**: 无特殊权限要求
|
||
|
||
#### 作用
|
||
- 多路视频同时播放
|
||
- 实时监控多个摄像头
|
||
- 支持1/4/9分屏切换
|
||
- 设备树快速选择通道
|
||
|
||
#### 主要功能
|
||
|
||
1. **分屏模式**
|
||
- **单屏模式**: 1路视频全屏播放
|
||
- **4分屏模式**: 同时播放4路视频
|
||
- **9分屏模式**: 同时播放9路视频
|
||
|
||
2. **设备树**
|
||
- 左侧显示设备树结构
|
||
- 按产品、设备、通道层级展示
|
||
- 点击通道即可开始播放
|
||
|
||
3. **视频播放**
|
||
- 自动获取流媒体地址
|
||
- 支持FLV/WS-FLV/WSS-FLV协议
|
||
- 自动适配HTTP/HTTPS协议
|
||
- 支持截图功能
|
||
|
||
4. **播放控制**
|
||
- 点击分屏区域选择播放器
|
||
- 自动保存播放状态
|
||
- 支持播放器销毁和重建
|
||
|
||
#### 使用场景
|
||
- 监控中心大屏展示
|
||
- 多路视频实时监控
|
||
- 设备巡检
|
||
- 安防监控
|
||
|
||
#### 操作步骤
|
||
1. 进入分屏显示页面
|
||
2. 在左侧设备树选择要播放的通道
|
||
3. 选择分屏模式(1/4/9)
|
||
4. 点击通道开始播放
|
||
5. 点击分屏区域切换播放器
|
||
|
||
---
|
||
|
||
### 2.2 录像管理
|
||
|
||
**功能位置**: 视频中心 → 录像管理
|
||
**路径**: `/iot/record/record`
|
||
**权限**: `iot:sip:record:query`
|
||
|
||
#### 作用
|
||
- 查看流媒体服务器上的录像文件
|
||
- 录像回放
|
||
- 录像下载
|
||
- 录像上传到OSS
|
||
|
||
#### 主要功能
|
||
|
||
1. **录像列表**
|
||
- 按流媒体服务器查看录像
|
||
- 显示应用名称(app)
|
||
- 显示流ID(stream)
|
||
- 显示录像时间
|
||
|
||
2. **录像详情**
|
||
- 按日期查看录像文件
|
||
- 显示具体录像时间段
|
||
- 支持录像文件列表浏览
|
||
|
||
3. **录像回放**
|
||
- 点击录像文件开始回放
|
||
- 支持时间轴选择
|
||
- 支持播放控制(播放/暂停/快进/快退)
|
||
|
||
4. **录像下载**
|
||
- 下载录像文件到本地
|
||
- 支持MP4格式下载
|
||
- 支持批量下载
|
||
|
||
5. **录像上传**
|
||
- 上传录像到OSS对象存储
|
||
- 支持云存储备份
|
||
|
||
#### 录像类型
|
||
- **实时录像**: 设备推流时自动录制
|
||
- **历史录像**: 从设备拉取的录像文件
|
||
- **云端录像**: 存储在流媒体服务器的录像
|
||
|
||
#### 使用场景
|
||
- 查看历史监控录像
|
||
- 事件回放分析
|
||
- 录像备份归档
|
||
- 证据提取
|
||
|
||
#### 操作步骤
|
||
1. 选择流媒体服务器
|
||
2. 查看录像列表
|
||
3. 点击"查看"进入录像详情
|
||
4. 选择日期查看录像文件
|
||
5. 点击录像文件开始回放
|
||
6. 可下载或上传录像
|
||
|
||
---
|
||
|
||
### 2.3 配置管理(媒体服务器)
|
||
|
||
**功能位置**: 视频中心 → 配置管理
|
||
**路径**: `/iot/sip/mediaServer`
|
||
**权限**: `iot:video:list`
|
||
|
||
#### 作用
|
||
- 管理流媒体服务器配置
|
||
- 添加/编辑/删除媒体服务器
|
||
- 配置服务器参数
|
||
- 管理服务器状态
|
||
|
||
#### 主要功能
|
||
|
||
1. **服务器列表**
|
||
- 显示所有配置的流媒体服务器
|
||
- 显示服务器ID、IP地址、协议类型
|
||
- 显示创建时间
|
||
|
||
2. **服务器配置**
|
||
- **服务器ID**: 唯一标识
|
||
- **IP地址**: 服务器IP
|
||
- **协议**: HTTP/HTTPS
|
||
- **域名**: HTTPS访问域名
|
||
- **端口配置**:
|
||
- HTTP端口
|
||
- HTTPS端口
|
||
- RTSP端口
|
||
- RTP端口
|
||
- 录像端口
|
||
- **密钥**: ZLM服务器密钥
|
||
- **状态**: 启用/禁用
|
||
|
||
3. **服务器管理**
|
||
- 新增服务器
|
||
- 编辑服务器配置
|
||
- 删除服务器
|
||
- 查看服务器详情
|
||
- 服务器管理(高级配置)
|
||
|
||
#### 流媒体服务器类型
|
||
- **ZLM (ZLMediaKit)**: 支持RTSP/RTMP/HTTP-FLV/HLS等协议
|
||
- **SRS**: 流媒体服务器(规划中)
|
||
- **M7S**: 流媒体服务器(规划中)
|
||
|
||
#### 使用场景
|
||
- 部署流媒体服务器
|
||
- 配置多台服务器负载均衡
|
||
- 服务器参数调整
|
||
- 服务器监控管理
|
||
|
||
#### 操作步骤
|
||
1. 进入配置管理页面
|
||
2. 点击"新增"添加服务器
|
||
3. 填写服务器配置信息
|
||
4. 保存配置
|
||
5. 可编辑、删除或管理服务器
|
||
|
||
---
|
||
|
||
### 2.4 通道管理
|
||
|
||
**功能位置**: 视频中心 → 通道管理
|
||
**路径**: `/iot/sip/index`
|
||
**权限**: `iot:video:list`
|
||
|
||
#### 作用
|
||
- 管理SIP设备通道
|
||
- 设备注册和绑定
|
||
- 通道信息查询
|
||
- 设备状态监控
|
||
|
||
#### 主要功能
|
||
|
||
1. **通道列表**
|
||
- 显示设备SIP ID
|
||
- 显示通道SIP ID
|
||
- 显示设备状态(在线/离线)
|
||
- 显示产品名称
|
||
- 显示设备类型
|
||
- 显示通道类型
|
||
- 显示城市编码
|
||
- 显示注册时间
|
||
|
||
2. **通道创建**
|
||
- 选择省市区
|
||
- 选择设备类型(DVR/NVR/摄像机/IPC等)
|
||
- 选择通道类型
|
||
- 选择产品
|
||
- 批量创建通道(最多10个)
|
||
|
||
3. **通道绑定**
|
||
- 绑定到设备
|
||
- 绑定到场景模型
|
||
- 解绑操作
|
||
|
||
4. **设备类型**
|
||
- `0`: DVR(数字视频录像机)
|
||
- `1`: NVR(网络视频录像机)
|
||
- `2`: 报警控制器
|
||
- `4`: 摄像机
|
||
- `5`: IPC(网络摄像机)
|
||
- `6`: 显示器
|
||
- `7`: 报警输入设备
|
||
- `8`: 报警输出设备
|
||
- `9`: 语音输入设备
|
||
- `10`: 语音输出设备
|
||
- `11`: 移动传输设备
|
||
|
||
5. **通道类型**
|
||
- 视频通道
|
||
- 音频通道
|
||
- 告警通道
|
||
- 其他类型
|
||
|
||
#### 使用场景
|
||
- SIP设备注册
|
||
- 通道信息管理
|
||
- 设备绑定配置
|
||
- 设备状态监控
|
||
|
||
#### 操作步骤
|
||
1. 进入通道管理页面
|
||
2. 点击"新增"创建通道
|
||
3. 选择省市区、设备类型、通道类型
|
||
4. 选择产品并设置创建数量
|
||
5. 保存创建通道
|
||
6. 可绑定到设备或场景模型
|
||
|
||
---
|
||
|
||
## 三、视频中心技术架构
|
||
|
||
### 3.1 协议支持
|
||
|
||
#### GB28181协议
|
||
- **SIP信令**: 设备注册、心跳、目录查询
|
||
- **RTP传输**: 视频流传输
|
||
- **RTSP推流**: 流媒体服务器接收
|
||
- **HTTP-FLV播放**: Web端播放
|
||
|
||
#### 流媒体协议
|
||
- **RTSP**: 实时流传输协议
|
||
- **RTMP**: 实时消息传输协议
|
||
- **HTTP-FLV**: HTTP FLV流
|
||
- **HLS**: HTTP Live Streaming
|
||
- **WebRTC**: Web实时通信(规划中)
|
||
|
||
### 3.2 系统架构
|
||
|
||
```
|
||
SIP设备
|
||
↓
|
||
SIP服务器 (fastbee-server/sip-server)
|
||
↓
|
||
流媒体服务器 (ZLM)
|
||
↓
|
||
Web播放器 (Jessibuca/EasyPlayer)
|
||
```
|
||
|
||
### 3.3 核心组件
|
||
|
||
1. **SIP服务器**
|
||
- 处理GB28181协议
|
||
- 设备注册管理
|
||
- 信令转发
|
||
- 流媒体控制
|
||
|
||
2. **流媒体服务器 (ZLM)**
|
||
- 接收RTP流
|
||
- 转码和分发
|
||
- 录像存储
|
||
- 流媒体API
|
||
|
||
3. **Web播放器**
|
||
- **Jessibuca**: 支持FLV/WS-FLV播放
|
||
- **EasyPlayer**: 支持多种格式播放
|
||
- **WebRTC**: 低延迟播放(规划中)
|
||
|
||
## 四、视频中心使用场景
|
||
|
||
### 4.1 实时监控场景
|
||
|
||
1. **单路监控**
|
||
- 进入分屏显示
|
||
- 选择单屏模式
|
||
- 选择通道开始播放
|
||
|
||
2. **多路监控**
|
||
- 进入分屏显示
|
||
- 选择4分屏或9分屏
|
||
- 依次选择多个通道播放
|
||
|
||
3. **监控大屏**
|
||
- 使用9分屏模式
|
||
- 全屏显示
|
||
- 实时监控多个点位
|
||
|
||
### 4.2 录像回放场景
|
||
|
||
1. **查看历史录像**
|
||
- 进入录像管理
|
||
- 选择流媒体服务器
|
||
- 查看录像列表
|
||
- 选择日期查看录像文件
|
||
|
||
2. **事件回放**
|
||
- 根据时间查找录像
|
||
- 播放录像文件
|
||
- 分析事件经过
|
||
|
||
3. **录像下载**
|
||
- 选择录像文件
|
||
- 点击下载
|
||
- 保存到本地
|
||
|
||
### 4.3 设备管理场景
|
||
|
||
1. **设备注册**
|
||
- 在通道管理中创建通道
|
||
- 配置设备信息
|
||
- 设备自动注册
|
||
|
||
2. **设备绑定**
|
||
- 将通道绑定到设备
|
||
- 关联场景模型
|
||
- 配置设备参数
|
||
|
||
3. **设备监控**
|
||
- 查看设备在线状态
|
||
- 监控设备注册情况
|
||
- 处理设备异常
|
||
|
||
## 五、核心代码位置
|
||
|
||
### 5.1 前端代码
|
||
|
||
1. **分屏显示**
|
||
- `vue/src/views/iot/sip/splitview.vue`
|
||
- `vue/src/views/components/player/jessibuca.vue`
|
||
- `vue/src/views/components/player/DeviceTree.vue`
|
||
|
||
2. **录像管理**
|
||
- `vue/src/views/iot/record/record.vue`
|
||
- `vue/src/views/iot/record/record-detail.vue`
|
||
- `vue/src/views/components/player/easyplayer.vue`
|
||
|
||
3. **配置管理**
|
||
- `vue/src/views/iot/sip/mediaServer.vue`
|
||
- `vue/src/views/iot/sip/mediaServer-edit.vue`
|
||
|
||
4. **通道管理**
|
||
- `vue/src/views/iot/sip/index.vue`
|
||
- `vue/src/views/iot/sip/channel.vue`
|
||
|
||
### 5.2 后端代码
|
||
|
||
1. **SIP服务器**
|
||
- `fastbee-server/sip-server/`
|
||
- SIP协议处理
|
||
- 设备管理
|
||
- 流媒体控制
|
||
|
||
2. **录像服务**
|
||
- `fastbee-server/sip-server/src/main/java/com/fastbee/sip/service/IRecordService.java`
|
||
- `fastbee-open-api/src/main/java/com/fastbee/controller/media/RecordController.java`
|
||
|
||
3. **流媒体服务**
|
||
- `fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IMediaServerService.java`
|
||
|
||
4. **通道服务**
|
||
- `fastbee-service/fastbee-iot-service/src/main/java/com/fastbee/iot/service/IChannelService.java`
|
||
|
||
## 六、API接口说明
|
||
|
||
### 6.1 视频播放接口
|
||
|
||
- `POST /iot/channel/startPlay` - 开始播放视频流
|
||
- `POST /iot/channel/stopPlay` - 停止播放视频流
|
||
- `GET /iot/channel/getStream` - 获取流信息
|
||
|
||
### 6.2 录像管理接口
|
||
|
||
- `GET /iot/record/list` - 获取录像列表
|
||
- `GET /iot/record/file/{stream}/{period}` - 获取录像文件列表
|
||
- `GET /iot/record/play/{deviceId}/{channelId}` - 播放录像
|
||
- `GET /iot/record/download/{deviceId}/{channelId}` - 下载录像
|
||
- `POST /iot/record/start/{stream}` - 开始录像
|
||
- `POST /iot/record/stop/{stream}` - 停止录像
|
||
|
||
### 6.3 媒体服务器接口
|
||
|
||
- `GET /iot/mediaServer/list` - 获取媒体服务器列表
|
||
- `POST /iot/mediaServer` - 新增媒体服务器
|
||
- `PUT /iot/mediaServer` - 修改媒体服务器
|
||
- `DELETE /iot/mediaServer/{ids}` - 删除媒体服务器
|
||
|
||
### 6.4 通道管理接口
|
||
|
||
- `GET /iot/channel/list` - 获取通道列表
|
||
- `POST /iot/channel` - 新增通道
|
||
- `PUT /iot/channel` - 修改通道
|
||
- `DELETE /iot/channel/{ids}` - 删除通道
|
||
- `POST /iot/channel/binding` - 绑定通道
|
||
|
||
## 七、注意事项
|
||
|
||
1. **流媒体服务器配置**
|
||
- 需要先配置流媒体服务器才能使用视频功能
|
||
- 确保服务器网络可达
|
||
- 配置正确的端口和密钥
|
||
|
||
2. **设备注册**
|
||
- 设备需要支持GB28181协议
|
||
- 配置正确的SIP服务器地址
|
||
- 确保设备网络连通
|
||
|
||
3. **视频播放**
|
||
- 浏览器需要支持WebSocket
|
||
- HTTPS环境使用WSS协议
|
||
- 建议使用Chrome或Edge浏览器
|
||
|
||
4. **录像管理**
|
||
- 录像文件存储在流媒体服务器
|
||
- 定期清理过期录像
|
||
- 录像文件较大,注意存储空间
|
||
|
||
5. **性能优化**
|
||
- 多路视频播放会占用较多资源
|
||
- 建议根据服务器性能调整分屏数量
|
||
- 使用硬件加速提升播放性能
|
||
|
||
6. **安全配置**
|
||
- 配置HTTPS访问
|
||
- 设置流媒体服务器密钥
|
||
- 控制视频访问权限
|
||
|
||
## 八、未来规划
|
||
|
||
根据README.md中的规划,视频中心将支持:
|
||
|
||
1. **协议扩展**
|
||
- TCP传输信令
|
||
- SRS、M7S流媒体服务器支持
|
||
- 百度EVS、七牛云QVS等云平台对接
|
||
|
||
2. **功能增强**
|
||
- PTZ云台控制
|
||
- 设备自动拉流
|
||
- 云端录像
|
||
- 事件处理机制
|
||
|
||
3. **性能优化**
|
||
- WebRTC低延迟播放
|
||
- 硬件加速
|
||
- 负载均衡
|
||
|
||
---
|
||
|
||
**文档版本**: v1.0
|
||
**最后更新**: 2024-12-20
|
||
**维护者**: FastBee开发团队
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|