6.5 KiB
6.5 KiB
快速开始(使用 Java 17)
📋 前置要求
✅ 已安装:
- Java 17(已确认)
- Node.js(已确认)
- Docker(已确认)
⚠️ 需要安装:
- Maven 3.3+
🔧 安装 Maven
方法一:手动安装(推荐)
-
下载 Maven
- 访问:https://maven.apache.org/download.cgi
- 下载:
apache-maven-3.9.9-bin.zip - 国内镜像:https://mirrors.aliyun.com/apache/maven/maven-3/3.9.9/binaries/apache-maven-3.9.9-bin.zip
-
解压到指定目录
解压到:C:\Program Files\apache-maven-3.9.9 -
配置环境变量
- 打开"系统属性" → "高级" → "环境变量"
- 在"系统变量"中找到
Path - 点击"编辑" → "新建"
- 添加:
C:\Program Files\apache-maven-3.9.9\bin - 点击"确定"保存
-
验证安装
打开新的 CMD 或 PowerShell:
mvn -version应该显示:
Apache Maven 3.9.9 Maven home: C:\Program Files\apache-maven-3.9.9 Java version: 17.0.x
方法二:使用 Chocolatey(如果已安装)
# 以管理员身份运行 PowerShell
choco install maven
方法三:使用 Scoop
scoop install maven
🚀 启动步骤
第一次使用
-
确保基础服务运行
cd docker docker compose up -d polaris-redis polaris-mysql polaris-media cd .. -
编译项目
双击运行:
编译.bat或在 CMD 中:
编译.bat脚本会自动:
- ✅ 检查 Java 和 Maven
- ✅ 编译前端(Vue)
- ✅ 编译后端(Spring Boot)
- ✅ 检查基础服务状态
-
启动应用
双击运行:
启动.bat或在 CMD 中:
启动.bat -
访问应用
- 管理后台:http://localhost:18080
- API 文档:http://localhost:18080/doc.html
- 默认账号:
admin/admin
后续使用
修改代码后,只需:
编译.bat
启动.bat
📂 功能模块位置
1. 主码流/子码流切换
src/main/java/com/genersoft/iot/vmp/gb28181/
├── service/impl/PlayServiceImpl.java # 播放服务(包含码流切换逻辑)
├── controller/DeviceQuery.java # 设备查询控制器
└── bean/DeviceChannel.java # 通道实体(streamType字段)
API 端点:
- 主码流:
GET /api/play/{deviceId}/{channelId}/start?streamType=0 - 子码流:
GET /api/play/{deviceId}/{channelId}/start?streamType=1
2. 云台控制(转向、拉近、拉远)
src/main/java/com/genersoft/iot/vmp/gb28181/
├── controller/PtzController.java # 云台控制主接口
├── service/
│ ├── IPTZService.java # PTZ 服务接口
│ └── impl/PTZServiceImpl.java # PTZ 服务实现
├── transmit/cmd/impl/SIPCommander.java # 发送 SIP 命令
└── bean/
├── FrontEndControlCodeForPTZ.java # PTZ 控制码
└── FrontEndCode.java # 前端控制码
API 端点:
- 左转:
GET /api/front-end/{deviceId}/{channelId}/left - 右转:
GET /api/front-end/{deviceId}/{channelId}/right - 上转:
GET /api/front-end/{deviceId}/{channelId}/up - 下转:
GET /api/front-end/{deviceId}/{channelId}/down - 拉近:
GET /api/front-end/{deviceId}/{channelId}/zoom_in - 拉远:
GET /api/front-end/{deviceId}/{channelId}/zoom_out
3. 无限制设备接入
src/main/java/com/genersoft/iot/vmp/gb28181/
├── service/impl/DeviceServiceImpl.java # 设备管理服务
├── transmit/event/request/impl/
│ ├── RegisterRequestProcessor.java # 设备注册处理
│ └── MessageRequestProcessor.java # 心跳和消息处理
├── SipLayer.java # SIP 协议层
└── dao/
├── DeviceMapper.java # 设备数据访问
└── DeviceChannelMapper.java # 通道数据访问
性能配置:
# src/main/resources/application.yml
spring:
datasource:
hikari:
maximum-pool-size: 200 # 连接池大小
minimum-idle: 10
sip:
pool-size: 100 # SIP 线程池
🔍 常见问题
1. 编译失败:Maven 命令未找到
原因:Maven 未安装或环境变量未配置
解决:按照上面的"安装 Maven"步骤操作
2. 端口被占用
错误:Address already in use: bind
解决:修改端口
# src/main/resources/application-dev.yml
server:
port: 28080 # 改为其他端口
3. 数据库连接失败
检查 MySQL 状态:
docker ps | findstr mysql
docker logs docker-polaris-mysql-1
测试连接:
docker exec -it docker-polaris-mysql-1 mysql -u wvp_user -pwvp_password -e "show databases;"
4. Redis 连接失败
检查 Redis:
docker exec -it docker-polaris-redis-1 redis-cli ping
应该返回 PONG
📝 配置文件说明
开发环境配置
文件:src/main/resources/application-dev.yml
spring:
data:
redis:
host: 127.0.0.1
port: 6379
datasource:
url: jdbc:mysql://127.0.0.1:3306/wvp?...
username: wvp_user
password: wvp_password
server:
port: 18080
media:
ip: 127.0.0.1
http-port: 8080
Docker 配置
文件:docker/.env
# 流媒体端口
MediaRtmp=10001
MediaRtsp=10002
MediaRtp=10003
# Web 端口
WebHttp=8080
# IP 配置(公网部署时需修改)
Stream_IP=127.0.0.1
SDP_IP=127.0.0.1
# SIP 配置
SIP_Port=8160
SIP_Domain=3502000000
🛠️ 服务管理
查看服务状态
docker ps --filter "name=polaris-"
启动基础服务
cd docker
docker compose up -d polaris-redis polaris-mysql polaris-media
停止所有服务
cd docker
docker compose down
查看日志
# WVP 日志(运行时控制台输出)
# Docker 服务日志
docker compose logs -f polaris-redis
docker compose logs -f polaris-mysql
docker compose logs -f polaris-media
📚 相关文档
⚡ 快捷命令
# 一键编译
编译.bat
# 一键启动
启动.bat
# 查看服务状态
docker ps --filter "name=polaris-"
# 重新编译并启动
编译.bat && 启动.bat
最后更新:2026-02-02