news 2026/4/28 18:35:12

Windows下WVP+ZLMediaKit服务搭建避坑指南:从环境配置到成功获取GB28181视频流

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows下WVP+ZLMediaKit服务搭建避坑指南:从环境配置到成功获取GB28181视频流

Windows下WVP+ZLMediaKit服务搭建全流程实战指南

最近在帮客户部署GB28181视频监控平台时,发现Windows环境下搭建WVP和ZLMediaKit的完整教程并不多见。作为一套开源的国标视频平台解决方案,WVP-PRO配合ZLMediaKit能够实现设备接入、流媒体转发、录像回放等核心功能。本文将基于最新版本,手把手带你避开我踩过的所有坑。

1. 环境准备与依赖安装

在开始前,请确保你的Windows系统是64位版本,建议使用Windows 10或更高版本。我遇到过不少问题都源于环境配置不当,特别是以下这些关键组件:

  • Java开发环境:推荐JDK 11(LTS版本),注意设置JAVA_HOME环境变量
  • Node.js:前端编译需要,建议安装14.x以上版本
  • Maven:3.6.0+版本,用于后端项目构建
  • MySQL:5.7或8.0版本,记得开启binlog
  • Redis:最新稳定版即可

提示:安装MySQL时建议选择"Developer Default"配置,这样可以自动安装MySQL Workbench,后续数据库管理会更方便

验证环境是否就绪的几个关键命令:

java -version npm -v mvn -version

如果这些命令都能正确输出版本信息,说明基础环境已经准备就绪。我强烈建议在开始前先创建一个专门的工作目录,比如D:\gb28181,所有相关文件都放在这里,避免路径混乱。

2. WVP-PRO服务部署详解

2.1 项目获取与编译

WVP-PRO有两个主要的代码仓库,国内用户建议使用Gitee镜像:

git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git cd wvp-GB28181-pro

前端编译是第一个容易出问题的环节。进入web_src目录前,建议先配置npm淘宝镜像:

npm config set registry https://registry.npmmirror.com cd web_src npm install npm run build

常见问题处理:

  • 如果npm install报错,尝试删除node_modules后重新执行
  • 编译时报错缺少Python环境,需要安装Windows Build Tools
  • 内存不足可以设置临时环境变量:set NODE_OPTIONS=--max_old_space_size=4096

2.2 数据库初始化

MySQL配置建议使用以下参数创建数据库:

CREATE DATABASE wvp CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

初始化脚本位于项目的sql/mysql目录,只需执行最新的init.sql即可。我曾遇到过执行顺序错误导致表结构不完整的问题,所以务必注意:

  1. 只执行init.sql
  2. 不要执行upgrade开头的升级脚本
  3. 确认所有表都创建成功

2.3 关键配置调整

配置文件主要修改两个文件:application.ymlapplication-dev.yml。以下是最容易出错的配置项:

配置项推荐值说明
spring.profiles.activedev开发环境使用dev
datasource.urljdbc:mysql://127.0.0.1:3306/wvp数据库连接地址
sip.ip本机内网IP不能使用127.0.0.1
media.id自定义IDZLM服务器唯一标识
media.ipZLM服务器IP通常与WVP同服务器

特别要注意sipmedia相关配置,这是实现GB28181协议通信的关键。我曾经因为IP配置错误导致设备始终无法注册成功。

3. ZLMediaKit服务部署

3.1 Windows版编译与运行

ZLMediaKit官方提供了Windows预编译版本,下载解压后可直接运行:

# 下载最新release版本 https://github.com/ZLMediaKit/ZLMediaKit/releases # 解压后进入release目录 cd ZLMediaKit\release\windows\Debug start.bat

首次运行需要修改config.ini配置文件,重点关注以下参数:

[api] secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc # 与WVP配置一致 [rtp_proxy] port=30000 # 端口范围起始 [rtp] timeoutSec=15 # 流超时时间

3.2 与WVP的联动配置

WVP和ZLM的配合工作需要确保以下几点:

  1. secret一致:两边api.secret必须相同
  2. IP可达性:确保WVP能访问ZLM的IP和端口
  3. 防火墙设置:开放5060(SIP)、30000-30500(RTP)等端口

验证联动是否成功的方法:

  1. 启动ZLM服务,观察日志无报错
  2. 启动WVP服务,检查启动日志是否有ZLM连接成功提示
  3. 访问WVP的http://localhost:18080,查看服务器状态

4. 常见问题排查手册

4.1 设备注册失败

这是最常见的问题,排查步骤:

  1. 检查SIP配置中的IP是否为设备可达地址
  2. 确认5060端口未被占用且防火墙已放行
  3. 使用Wireshark抓包分析SIP信令交互

4.2 视频流无法播放

流媒体相关问题通常表现为黑屏或加载失败:

  • 检查ZLM日志:确认收到推流请求
  • 验证端口开放:确保RTP端口范围(30000-30500)可用
  • 测试直接播放:尝试用VLC播放rtsp流

4.3 性能优化建议

当设备数量较多时,可以考虑以下优化:

# 在application-dev.yml中调整 spring: datasource: druid: max-active: 100 # 数据库连接池大小 max-wait: 10000 # 最大等待时间 redis: poolMaxTotal: 500 # Redis连接池大小

对于Windows环境,还需要注意:

  • 关闭不必要的后台程序
  • 调整系统TCP/IP参数
  • 定期重启服务释放资源

5. 进阶配置与功能扩展

5.1 级联上级平台

WVP支持向上级平台级联,配置要点:

  1. 在"系统管理-服务器配置"中添加上级平台
  2. 填写正确的SIP账号信息
  3. 配置转发规则和权限

5.2 录像存储与管理

虽然可以关闭自动录像,但关键监控点建议开启:

user-settings: record-sip: true record-push-live: true

存储位置在ZLM配置中指定:

[record] appName=record fileBufSize=65536 filePath=./www/record/

5.3 集群部署方案

对于高可用场景,可以采用:

  • WVP多实例+负载均衡
  • ZLM边缘节点部署
  • Redis哨兵模式
  • MySQL主从复制

这种架构下,关键在于保持状态同步和会话一致性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 18:28:27

C#与发那科机器人通信实战:从SDK配置到机械臂控制

1. 环境准备与SDK配置 第一次用C#控制发那科机器人时,我盯着官方SDK文档发了半小时呆——那些专业术语就像天书一样。后来发现只要搞定三个东西就成功了一半:正确的SDK版本、网络配置和基础项目结构。这里分享我踩坑后总结的保姆级配置方案。 发那科官方…

作者头像 李华
网站建设 2026/4/28 18:33:45

tools video、PDFka

链接:https://pan.quark.cn/s/e4446a9373c6网上在线工具五花八门,不少要么广告弹窗满天飞,要么藏着付费套路,实际体验大打折扣。今天给大家挖到 3 个亲测好用的宝藏工具,免费无套路,功能拉满,用…

作者头像 李华
网站建设 2026/4/20 15:08:54

CANoe诊断自动化避坑指南:从传输层参数到安全解锁DLL的实战配置详解

CANoe诊断自动化避坑指南:从传输层参数到安全解锁DLL的实战配置详解 当测试工程师第一次看到CANoe诊断界面中密密麻麻的参数选项时,往往会产生一种错觉——这些默认配置应该可以直接使用。但真实项目中的ECU就像性格迥异的人,相同的诊断指令在…

作者头像 李华
网站建设 2026/4/24 8:57:15

Python实战:用PyWavelets库实现连续小波变换(CWT)信号分析

Python实战:用PyWavelets库实现连续小波变换(CWT)信号分析 信号处理领域里,时频分析一直是个让人又爱又恨的话题。传统傅里叶变换就像个固执的老学究,非要你把整个乐章听完才肯告诉你用了哪些音符。而连续小波变换&…

作者头像 李华
网站建设 2026/4/16 4:31:48

org.openpnp.vision.pipeline.stages.DetectRectlinearSymmetry

文章目录org.openpnp.vision.pipeline.stages.DetectRectlinearSymmetry功能参数例子产生测试图像cv-pipeline效果ENDorg.openpnp.vision.pipeline.stages.DetectRectlinearSymmetry 功能 检测具有矩形线性对称性的物体(例如矩形芯片、IC、排针、无源元件等&#…

作者头像 李华