别再折腾虚拟机了!Windows 10/11本地手把手搭建GB28181视频监控平台(ZLMediaKit + wvp-pro保姆级教程)
Windows本地零基础搭建GB28181监控平台从环境配置到摄像头拉流全指南在安防监控和流媒体开发领域GB28181标准已经成为国内视频联网监控的通用协议。但对于个人开发者或初学者而言搭建一套完整的测试环境往往意味着繁琐的虚拟机配置、云服务器租用或复杂的Linux操作。本文将彻底改变这一现状——通过ZLMediaKit和wvp-GB28181-pro的组合直接在Windows 10/11系统上构建全功能GB28181平台无需虚拟机无需双系统更无需额外硬件投入。1. 环境准备与工具链配置1.1 基础软件安装清单在开始前请确保准备以下组件所有版本均经过实测验证软件名称推荐版本下载方式验证命令Java JDK1.8.0_301Oracle官网java -versionNode.js14.19.0官方二进制包node -vRedis3.2.100GitHub releasesredis-cli pingMaven3.6.3Apache镜像mvn -vOpenSSL1.1.1mSlproweb维护版本openssl version提示避免使用过新版本某些组件可能存在兼容性问题。例如Node.js 16可能导致前端编译失败。1.2 环境变量配置要点配置PATH时需特别注意以下路径以默认安装路径为例# 系统环境变量示例 JAVA_HOMEC:\Program Files\Java\jdk1.8.0_301 MAVEN_HOMEC:\apache-maven-3.6.3 NODE_PATHC:\Program Files\nodejs验证环境是否就绪# 在PowerShell中逐条执行检查 { java -version; node -v; mvn -v; redis-cli --version }若遇到权限问题需以管理员身份运行终端。常见问题包括Node.js全局安装报错 → 执行npm config set prefix C:\nodejsMaven依赖下载失败 → 配置阿里云镜像源2. ZLMediaKit编译与调优2.1 源码获取与依赖处理使用国内镜像加速克隆过程git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit cd ZLMediaKit git submodule update --init --recursive关键依赖libsrtp的编译技巧使用CMake-GUI时勾选ENABLE_OPENSSL设置安装路径避免中文目录如D:\libsrtp编译完成后需添加环境变量包含目录D:\libsrtp\include库目录D:\libsrtp\lib2.2 定制化编译选项在CMake配置阶段建议启用以下选项ENABLE_WEBRTCON # 支持WebRTC协议 ENABLE_HTTPON # 启用HTTP API ENABLE_RTPPROXYON # 支持RTP代理编译完成后关键生成文件位于ZLMediaKit/release/windows64/Debug/MediaServer.exeZLMediaKit/release/windows64/Debug/config.ini2.3 服务配置与端口优化修改config.ini关键参数[general] mediaServerId您的唯一标识 # 需与wvp配置一致 [http] port8080 # 建议改为非常用端口 sslport8443 [rtp] port_range30000-30500 # 确保端口段未被占用启动时若遇到端口冲突快速排查命令# 查找占用端口的进程 netstat -ano | findstr :554 tasklist | findstr PID3. wvp-GB28181-pro深度配置3.1 数据库与Redis配置虽然wvp支持MySQL但本地测试推荐使用内置SQLite。Redis需做以下调整# application-dev.yml关键配置 spring: redis: host: 127.0.0.1 port: 6379 database: 6 # 避免与其它服务冲突 password: # 本地可不设密码启动Redis服务建议使用redis-server --service-install redis.windows.conf redis-server --service-start3.2 国标参数精解SIP协议配置是GB28181的核心sip: ip: 192.168.1.100 # 必须是本机真实IP port: 5060 # SIP标准端口 domain: 4401020049 # 行政区划行业编码 id: 44010200492000000001 # 设备编号规则注意domain字段前8位需参照GB/T 2260-2007标准后两位为行业代码3.3 媒体服务器对接确保ZLMediaKit与wvp的媒体ID一致media: id: j6i8Pv5SnnLyuoib # 需与ZLMediaKit的mediaServerId相同 ip: 192.168.1.100 # ZLM服务器内网IP http-port: 8080 # ZLM的HTTP API端口 secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc # Hook密钥4. 摄像头接入与实战调试4.1 海康摄像头配置模板登录摄像头Web界面在GB28181配置页填写SIP服务器IDwvp配置的domain值SIP服务器地址运行wvp的PC IPSIP服务器端口5060认证ID摄像头编号需符合20位规则传输协议TCP/UDP建议优先TCP4.2 常见故障排查指南设备注册失败检查SIP协议抓包使用Wireshark过滤5060端口确认摄像头与wvp服务器时间差不超过30分钟验证密码是否匹配wvp默认密码admin123视频流无法播放# 在ZLMediaKit目录下测试流地址 ffplay http://127.0.0.1:8080/live/34020000001320000001.flvWebRTC黑屏问题检查ZLMediaKit是否编译WebRTC支持确认config.ini中[webrtc]项配置正确浏览器访问https://localhost:8443测试需启用HTTPS4.3 性能优化参数在config.ini中调整[hook] admin_paramssecret:035c73f7-bb6b-4889-a715-d9eb2d1925cc timeout_sec10 [rtsp] handshakeSecond3 keepAliveSecond60对于低配PC可限制ZLMediaKit资源占用[general] maxStreamWaitMS500 # 推流超时时间 streamNoneReaderDelayMS20000 # 无观众自动断流