视频 SDK 网关部署
nexiot-video-sdk-gateway 用于海康、大华设备直连,与 NexIoT 主后端独立运行。只需改一份配置,Maven 自动拉取 SDK,打包后即可安装或升级。
1. 准备环境
| 位置 | 需要安装 |
|---|---|
| 打包电脑 | Git、Maven、JDK 25;使用 Git 克隆的 NexIoT 源码 |
| 部署服务器 | Linux x86_64(如 Ubuntu)、Java 25、Bash、curl;录像功能还需 FFmpeg(含 libx264/AAC) |
服务器不需要 Git、Maven。主后端要能访问网关 5102 端口;网关要能访问摄像头和主后端告警回调地址。
2. 修改一份配置
在源码中打开:
nexiot-video-sdk-gateway/src/main/config/runtime.env找到下面几项,按服务器实际情况修改。示例 IP 192.0.2.10 要换成你的服务器 IP:
# 服务器 Java 安装目录;Java 25 已在 PATH 中时可留空
JAVA_HOME=/opt/jdk-25
NEXIOT_VIDEO_SDK_GATEWAY_PORT=5102
NEXIOT_VIDEO_SDK_GATEWAY_NODE_CODE=video-sdk-01
NEXIOT_SDK_IMAGE_BASE_URL=http://192.0.2.10:5102/sdk/images
# 默认本地存储,先跑通无需配置云存储
NEXIOT_SDK_IMAGE_MODE=local图片地址必须能被浏览器访问;主站使用 HTTPS 时,这里也配置可用的 HTTPS 地址。其他参数先用默认值。
需要从 NexIoT 页面配置存储时,再填写 NEXIOT_SDK_STORAGE_MANAGEMENT_TOKEN,与主后端保持一致。
3. Maven 打包
在 NexIoT 主仓库根目录执行:
mvn -version
mvn -pl nexiot-video-sdk-gateway -am clean package -Dmaven.test.skip=true确认第一条命令显示 Java 25。Maven 会自动从 video-sdks 拉取锁定版本的 SDK,无需手工操作子模块;缺少依赖时会停止打包。
成功后得到:
nexiot-video-sdk-gateway/target/nexiot-video-sdk-gateway-1.6-SNAPSHOT-dist.tar.gz包内已有 config/runtime.env、bin/、lib/ 和 sdk-libs/。后续版本变化时,替换下面命令中的包名。
4. 新服务器安装
① 上传压缩包到服务器 /tmp/。
② 登录服务器,在同一个 Bash 终端依次执行:
RELEASE_STAGE=$(mktemp -d /tmp/video-sdk-release.XXXXXX)
tar -xzf /tmp/nexiot-video-sdk-gateway-1.6-SNAPSHOT-dist.tar.gz \
-C "$RELEASE_STAGE" --strip-components=1③ 安装并启动。 以下目录可自行调整,运行用户必须有写权限:
bash "$RELEASE_STAGE/bin/install.sh" "$HOME/nexiot-video-sdk-gateway"出现 安装完成 即表示 HTTP 启动检查通过。安装前想修改配置,可编辑 $RELEASE_STAGE/config/runtime.env。
④ 检查 SDK:
curl -fsS http://127.0.0.1:5102/sdk/health确认 status 为 UP,所需厂商 hik、dahua 的 available 为 true。然后在 NexIoT 视频直连实例中填写网关地址 http://服务器IP:5102,执行设备连接测试。
5. 旧服务器升级
重新打包、上传到 /tmp/,在服务器同一个 Bash 终端执行:
RELEASE_STAGE=$(mktemp -d /tmp/video-sdk-release.XXXXXX)
tar -xzf /tmp/nexiot-video-sdk-gateway-1.6-SNAPSHOT-dist.tar.gz \
-C "$RELEASE_STAGE" --strip-components=1
# 改成旧网关的实际部署目录;如果原目录带版本号,也保留原路径
bash "$RELEASE_STAGE/bin/install.sh" "$HOME/nexiot-video-sdk-gateway"脚本自动停止旧进程、更新程序和 SDK、重新启动。保留原配置、图片和录像数据;升级启动检查失败时恢复上一版程序。
升级只记住两件事
不要直接解压覆盖旧目录。若要修改旧服务器配置,修改它现有的 config/runtime.env,新包中的配置不会覆盖旧配置。
6. 日常操作
进入实际部署目录,再按需执行对应命令:
cd "$HOME/nexiot-video-sdk-gateway"| 操作 | 命令 |
|---|---|
| 修改配置 | vi config/runtime.env |
| 修改后重启 | bin/restart.sh |
| 停止 / 启动 | bin/stop.sh / bin/start.sh |
| 启动前检查 | bin/start.sh --check |
| 查看当天日志 | tail -f "logs/nexiot-video-sdk-gateway.$(date +%F).log" |
config/image-storage.json 是页面保存存储设置后自动生成的,不用手工维护;它优先于 runtime.env 中的存储设置。改了文件却不生效时,到“图片与录像存储”选择“恢复启动配置”。
默认脚本不会配置开机自启。重启网关会中断正在处理的录像任务,已保存的文件保留。