news 2026/4/17 11:58:44

保姆级教程:在Windows上从零部署WVP+ZLMediakit国标视频平台(含公网RTP端口避坑指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
保姆级教程:在Windows上从零部署WVP+ZLMediakit国标视频平台(含公网RTP端口避坑指南)

从零构建Windows国标视频平台:WVP+ZLMediakit全流程实战指南

第一次接触国标视频平台部署时,我盯着满屏的配置文件参数和陌生的术语列表,感觉像在破解某种神秘代码。直到成功在公网看到监控画面那一刻,才发现原来Windows环境下的WVP+ZLMediakit部署可以如此清晰——只要避开那些教科书不会告诉你的"坑"。

1. 环境准备:搭建稳固地基

在Windows上部署视频平台,就像组装一台精密仪器,每个零件都需要精准就位。我建议先创建一个专用文件夹(例如C:\GB28181),所有组件都将在这里安家。

必备组件清单

  • Java 8+运行环境(推荐JDK11)
  • 绿色版Redis 5.0+(无需安装,解压即用)
  • Visual Studio 2017(社区版即可)
  • Git for Windows(用于获取源码)

重要提示:VS2017安装时务必勾选"使用C++的桌面开发"工作负载,这是编译ZLMediakit的关键依赖。

下载Redis绿色版后,通过命令行启动服务:

redis-server.exe redis.windows.conf

验证Redis是否正常运行:

redis-cli.exe ping # 应返回 PONG

2. 源码编译:打造核心引擎

2.1 WVP-GB28181编译

虽然官方文档主要面向Linux,但Windows同样可以完成编译:

git clone https://github.com/648540858/wvp-GB28181-pro.git cd wvp-GB28181-pro mvn clean package -DskipTests

编译完成后,在target目录会生成wvp-pro-*.jar文件,这就是我们的核心服务。

2.2 ZLMediakit编译实战

这个媒体服务器是视频流转发的核心,Windows编译需要特别注意:

  1. 用VS2017打开ZLMediaKit\windows\ZLMediaKit.sln
  2. 选择Release配置
  3. 右键ZLMediaKit项目→"生成"

编译成功后,在ZLMediaKit\Release目录会生成:

  • MediaServer.exe(主程序)
  • config.ini(配置文件模板)

3. 关键配置:通向公网的桥梁

配置文件是部署中最容易出错的环节,特别是公网环境。下面这个表格对比了局域网与公网配置的核心差异:

配置项局域网环境公网环境作用说明
media.ip内网IP(192.168.x.x)内网IPZLM服务器内网通信地址
stream-ip可空公网IP或域名视频流对外访问地址
sdp-ip可空公网IP或域名SDP协议中的媒体地址
rtp.enablefalsetrue启用多端口RTP传输
port-range可空30000-30500RTP端口范围

必须修改的WVP配置示例

media: ip: 192.168.1.100 # ZLM服务器内网IP stream-ip: your-public-ip.com # 替换为你的公网IP或域名 sdp-ip: your-public-ip.com # 同上 http-port: 80 # 与ZLM配置一致 rtp: enable: true # 公网必须开启 port-range: 30000-30500 # RTP端口范围

4. 网络配置:打通最后一道关卡

公网部署时,防火墙和端口转发是最大的"拦路虎"。我曾花了三小时才发现云服务商的安全组没配置完整。

必须开放的端口清单

  • TCP 5060(SIP信令)
  • TCP 80/443(HTTP/HTTPS)
  • UDP 30000-30500(RTP媒体流)
  • TCP 18080(WVP管理界面)

在阿里云/腾讯云等平台,还需要配置安全组规则:

# 示例:阿里云安全组添加入站规则 协议类型: 自定义TCP 端口范围: 5060,80,18080 授权对象: 0.0.0.0/0 协议类型: 自定义UDP 端口范围: 30000-30500 授权对象: 0.0.0.0/0

5. 服务启动与验证

正确的启动顺序能避免许多诡异问题:

  1. 启动Redis服务
  2. 运行ZLMediakit:
    MediaServer.exe -c config.ini -s zlm.conf
  3. 启动WVP:
    java -jar wvp-pro-*.jar

验证服务是否正常:

  • 访问http://localhost:18080应看到WVP登录页
  • ZLM控制台http://localhost:80显示服务器状态
  • 在路由器或云平台查看端口连通性

6. 常见故障排查指南

遇到问题时,这几个检查点能快速定位原因:

现象:设备注册失败

  • 检查WVP的sip.ip是否配置正确
  • 确认5060端口未被占用(netstat -ano | findstr 5060
  • 查看WVP日志中的SIP消息交换

现象:能注册但无视频流

  • 确认stream-ipsdp-ip是公网可达地址
  • 检查RTP端口范围是否开放UDP协议
  • 在ZLM控制台查看是否有流生成

现象:公网访问延迟高

  • 考虑开启ZLM的TCP传输模式(修改config.ini)
  • 检查服务器带宽是否充足
  • 尝试调整rtp.port-range为更小范围

7. 高级调优与生产建议

当系统需要支持更多设备时,这些参数调整很关键:

ZLM性能优化

[thread] # 根据CPU核心数调整 thread_num=4 [rtp] # 增大RTP缓存 rtp_max_size=10MB

WVP数据库优化

spring: datasource: max-active: 20 # 默认1太小 min-idle: 5 max-wait: 30000

对于生产环境,建议:

  • 使用Nginx反向代理HTTPS
  • 配置日志轮转和监控
  • 定期备份SQLite数据库
  • 考虑使用MySQL替代SQLite

整个部署过程中最让我意外的是——原来最难的不是技术实现,而是那些看似简单的网络配置细节。记得第一次成功通过手机4G网络查看监控画面时,那种成就感比写完十万行代码还要强烈。

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

终极图片去重清理指南:AntiDupl.NET免费开源工具完整教程

终极图片去重清理指南:AntiDupl.NET免费开源工具完整教程 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾被电脑中堆积如山的重复图片所困扰&#…

作者头像 李华
网站建设 2026/4/17 11:56:57

Java的java.lang.ModuleLayer动态模块加载与卸载在插件系统中的应用

Java模块化系统与动态插件架构的完美融合 在当今软件生态中,插件系统已成为扩展应用功能的核心方案。Java 9引入的模块化系统(JPMS)与java.lang.ModuleLayer的结合,为动态插件管理提供了全新可能。ModuleLayer允许开发者运行时动…

作者头像 李华
网站建设 2026/4/17 11:56:36

告别SD卡!用闲置的香橙派Zero给树莓派4B当网络启动服务器(保姆级教程)

用香橙派Zero搭建树莓派4B网络启动服务器的完整指南 手里闲置的香橙派Zero开发板终于有了用武之地——让它成为树莓派4B的网络启动服务器。这不仅能让树莓派彻底摆脱SD卡的性能瓶颈和寿命限制,还能充分利用闲置硬件资源。下面我将分享从硬件准备到系统配置的完整流程…

作者头像 李华