Windows 10/11 下保姆级搭建:用 WVP-Pro 和 ZLMediaKit 快速部署国标视频监控平台
在安防行业快速发展的今天,GB28181标准已经成为视频监控领域的重要协议。对于需要在Windows环境下快速搭建演示或测试平台的工程师来说,WVP-Pro和ZLMediaKit的组合提供了一个轻量级但功能完善的解决方案。本文将手把手带你完成从零开始的全套部署过程,特别针对Windows平台下的常见问题进行详细解答。
1. 环境准备与工具安装
1.1 基础软件准备
在开始部署前,需要确保系统已安装以下必备组件:
- Visual Studio 2019/2022:社区版即可满足需求,安装时务必勾选"C++桌面开发"工作负载
- MySQL 5.7+:建议使用5.7.37版本,兼容性最佳
- Node.js 14.x+:用于前端项目构建
- Git for Windows:代码版本管理工具
提示:安装Visual Studio时,建议选择"自定义安装",仅勾选必要的C++组件,避免安装过多无用组件占用磁盘空间。
1.2 项目源码获取
使用Git克隆两个核心项目的仓库:
# ZLMediaKit流媒体服务 git clone --depth 1 https://github.com/ZLMediaKit/ZLMediaKit.git cd ZLMediaKit git submodule update --init --recursive # WVP-Pro视频平台 git clone https://github.com/648540858/wvp-GB28181-pro.git对于国内用户,可以使用Gitee镜像加速下载:
# ZLMediaKit国内镜像 git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit.git # WVP-Pro国内镜像 git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git2. ZLMediaKit流媒体服务部署
2.1 编译与构建
- 使用Visual Studio打开ZLMediaKit文件夹
- 在CMake设置编辑器中,配置生成目标为"Release"模式
- 点击"全部生成"开始编译
常见问题处理:
- 第三方库缺失:确保执行了
git submodule update命令 - 内存不足:关闭其他大型程序,或使用64位VS工具链
- 编译错误:检查Windows SDK版本是否为10.0.19041.0+
编译成功后,可执行文件位于ZLMediaKit\release\windows64\Release目录下。
2.2 配置与运行
首次运行MediaServer.exe会自动生成config.ini配置文件,关键配置项如下:
[http] port=9980 # HTTP服务端口 rootPath=./www # 静态文件根目录 [rtmp] port=1935 # RTMP服务端口 [rtsp] port=554 # RTSP服务端口 [hook] enable=1 # 启用hook事件 admin_params=secret=035c73f7-bb6b-4889-a715-d9eb2d1925cc配置完成后,可通过以下命令测试服务是否正常运行:
# 测试HTTP服务 curl http://localhost:9980/api/serverConfig # 测试RTMP推流 ffmpeg -re -i test.mp4 -c copy -f flv rtmp://localhost/live/stream3. WVP-Pro视频平台部署
3.1 数据库初始化
- 创建MySQL数据库
wvp - 执行
wvp-GB28181-pro/sql/mysql.sql初始化表结构 - 修改
application.yml中的数据库连接配置:
spring: datasource: url: jdbc:mysql://localhost:3306/wvp?useUnicode=true&characterEncoding=UTF-8 username: root password: your_password3.2 服务配置调整
关键配置项说明:
| 配置项 | 说明 | 示例值 |
|---|---|---|
sip.ip | SIP服务监听IP | 127.0.0.1 |
sip.port | SIP服务端口 | 9960 |
media.ip | ZLMediaKit服务IP | 127.0.0.1 |
media.http-port | ZLMediaKit HTTP端口 | 9980 |
media.secret | Hook鉴权密钥 | 需与ZLMediaKit一致 |
3.3 前端构建与运行
进入web_src目录执行:
npm install --registry=https://registry.npm.taobao.org npm run build:prod构建完成后,将dist目录下的文件复制到ZLMediaKit的www目录中,即可通过http://localhost:9980访问平台。
4. 平台联调与设备接入
4.1 服务启动顺序
- 先启动ZLMediaKit的MediaServer.exe
- 再启动WVP-Pro的jar包
- 最后通过浏览器访问前端界面
4.2 国标设备接入配置
在设备端需要配置以下参数:
- SIP服务器地址:WVP-Pro所在IP
- SIP服务器端口:9960
- SIP域:默认3714810000
- 设备ID:需符合国标编码规则
- 传输协议:TCP/UDP
4.3 常见问题排查
问题1:视频流无法播放
检查步骤:
- 确认ZLMediaKit服务正常运行
- 检查WVP-Pro与ZLMediaKit的网络连通性
- 验证config.ini和application.yml中的端口配置一致
问题2:设备注册失败
可能原因:
- SIP域配置不匹配
- 设备ID不符合规范
- 网络防火墙阻止了SIP通信
问题3:前端页面空白
解决方案:
- 检查前端资源是否正确部署到ZLMediaKit的www目录
- 查看浏览器控制台是否有404错误
- 确认Nginx代理配置正确(如使用)
5. 高级配置与优化
5.1 多端口模式配置
在ZLMediaKit中启用多端口模式可提高兼容性:
[rtp] enable=true port-range=30000,305005.2 录像存储设置
配置录像存储路径和策略:
[record] filePath=./record fileSecond=36005.3 性能调优建议
- 调整ZLMediaKit的线程池大小
- 优化MySQL数据库配置
- 启用ZLMediaKit的TCP_NODELAY选项降低延迟
在实际项目中,我们发现将ZLMediaKit的[general]节中flowThreshold参数调整为2048可以有效提升高并发下的稳定性。