别再折腾虚拟机了!Ubuntu 22.04上WVP+ZLMediaKit国标平台一键部署脚本分享

张开发
2026/4/8 16:55:49 15 分钟阅读

分享文章

别再折腾虚拟机了!Ubuntu 22.04上WVP+ZLMediaKit国标平台一键部署脚本分享
一键部署WVPZLMediaKit国标平台Ubuntu 22.04极速搭建指南当视频监控系统需要接入多品牌设备时GB28181协议就像一位精通多国语言的翻译官。但传统部署方式往往需要经历十余个组件的编译安装、数十项参数的手动配置让不少开发者望而却步。本文将分享一个经过实战检验的一键部署方案用自动化脚本替代繁琐操作30分钟内即可搭建完整的国标视频平台测试环境。1. 环境准备与脚本设计原理在自动化部署方案中我们采用Shell脚本作为核心工具主要解决三个关键问题依赖项自动检测、配置模板动态替换和服务进程管理。整个部署流程被封装在deploy_gb28181.sh脚本中其工作流程如下#!/bin/bash # 环境检测函数 check_environment() { [ $(id -u) -eq 0 ] || { echo 请使用root权限执行; exit 1; } ubuntu_version$(lsb_release -rs) [ $ubuntu_version 22.04 ] || echo ⚠️ 非官方推荐版本可能遇到兼容性问题 } # 依赖安装函数 install_dependencies() { apt update apt install -y \ openjdk-11-jdk \ maven \ mysql-server \ redis-server \ build-essential \ cmake \ libssl-dev \ ffmpeg }脚本设计时特别注意了以下技术细节智能回滚机制每个安装步骤都设置检查点失败时自动清理临时文件配置模板引擎使用sed命令动态替换IP、端口等变量服务隔离为MySQL、Redis等服务创建独立系统用户常见环境问题解决方案GLIBC版本冲突自动检测系统库版本必要时下载预编译二进制端口占用脚本会检测5060/5061等端口占用情况并提供解决方案权限管理自动配置sudo权限避免频繁切换用户2. 核心组件自动化部署2.1 ZLMediaKit编译优化媒体服务器采用最新稳定版的ZLMediaKit通过编译参数调优提升性能git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init --recursive # 启用硬件加速编译选项 cmake -B build -DCMAKE_BUILD_TYPERelease \ -DENABLE_HARDWARE_ENCODEON \ -DENABLE_FFMPEGON \ -DENABLE_X264OFF make -C build -j$(nproc)关键配置参数对照表配置项默认值推荐值作用rtp_proxy.port_range30000-3050030000-35000RTP流媒体端口范围http.port8080HTTP-API服务端口api.secret随机字符串自定义密钥API调用鉴权密钥2.2 WVP-Pro智能部署视频管理平台采用wvp-GB28181-pro的2.7.3版本脚本自动完成前后端联编# 前端构建使用国内镜像加速 cd wvp-GB28181-pro/web_src/ npm --registryhttps://registry.npmmirror.com install npm run build # 后端打包跳过测试加速编译 mvn package -Dmaven.test.skiptrue数据库初始化采用自动化方案避免手动执行SQLmysql -uroot -p${DB_PASSWORD} EOF CREATE DATABASE IF NOT EXISTS wvp2 CHARACTER SET utf8mb4; USE wvp2; SOURCE $(pwd)/数据库/2.7.3/初始化-mysql-2.7.3.sql; EOF3. 配置调优实战技巧3.1 网络环境适配根据服务器网络位置不同需要调整的配置参数内网测试环境配置# wvp_gb28181.yml media: ip: 192.168.1.100 # 内网IP hook-ip: 192.168.1.100 sip: ip: 192.168.1.100 port: 5061公网部署配置media: ip: 203.0.113.45 # 公网IP hook-ip: 10.0.0.2 # 内网IP sip: ip: 203.0.113.45 show-ip: 203.0.113.45提示NAT环境下需要额外配置端口映射建议TCP/UDP 30000-35000范围全开3.2 性能调优参数通过以下配置提升高并发场景下的稳定性; ZLMediaKit.ini [rtp] timeout_sec3600 ; 流超时时间 [rtmp] handshake_sec10 ; 握手超时 [general] thread_num8 ; 工作线程数WVP内存优化配置# application.yml spring: datasource: hikari: maximum-pool-size: 50 # 根据数据库性能调整 server: tomcat: max-threads: 200 # 并发处理线程数4. 常见问题排查指南部署过程中可能遇到的典型问题及解决方案问题1ZLMediaKit启动后无法接收流检查防火墙规则sudo ufw allow 30000:35000/udp验证端口监听ss -ulnp | grep MediaServer问题2WVP无法连接数据库确认MySQL远程访问权限CREATE USER wvp% IDENTIFIED BY securepassword; GRANT ALL ON wvp2.* TO wvp%;检查JDBC连接串中的时区设置serverTimezoneAsia/Shanghai问题3国标设备注册失败抓包分析SIP信令tcpdump -i any port 5061 -w sip.pcap检查设备ID、密码与配置匹配验证NAT穿越设置sip: nat-ip: ${公网IP} nat-port: ${映射端口}实际部署中发现一个有趣现象当使用某些国产化CPU架构时需要额外指定CMake编译参数-DCMAKE_CXX_FLAGS-marcharmv8-a才能正确启用NEON指令集加速。

更多文章