WVP-PRO + ZLMediaKit 视频流媒体平台实战部署(附腾讯云避坑指南)

张开发
2026/5/8 16:55:37 15 分钟阅读

分享文章

WVP-PRO + ZLMediaKit 视频流媒体平台实战部署(附腾讯云避坑指南)
最近帮客户部署了一套基于 WVP-PRO 的 GB28181 视频流媒体平台过程中踩了不少坑特别是腾讯云服务器端口封禁的问题折腾了好几天才解决。记录一下完整过程供有需要的同学参考。一、环境说明项目版本/配置服务器腾讯云 4核8G Ubuntu 22.04WVP-PRO2.7.4-07091454ZLMediaKit最新稳定版数据库MySQL 8.0Redis6.0WVP端口18080SSH端口886非22二、问题描述部署完成后发现 WVP 生成的流地址带了端口号FLV(https): https://wvp.xxwlh.net:443/rtp/xxx.live.flv FMP4: http://wvp.xxwlh.net:8091/rtp/xxx.live.mp4直接带上:443、:8091端口播放器没问题但腾讯云把这些端口封了导致视频无法播放。三、根因分析查看 WVP JAR 包中的StreamURL.class字节码bash复制javap -c StreamURL.class | grep ldc发现格式字符串是String %s://%s:%s/%s // 4个参数带端口正常应该是String %s://%s/%s // 3个参数不带端口四、修复过程1. 备份原JARbash复制cd /root/wvp/wvp-GB28181-pro/release cp wvp-pro-2.7.4-07091454.jar wvp-pro-2.7.4-07091454.jar.bak_$(date %Y%m%d)2. 解压JARbash复制mkdir -p tmp_fix cd tmp_fix jar -xf ../wvp-pro-2.7.4-07091454.jar3. 找到并修改源码StreamURL.java 位于BOOT-INF/classes/com/genersoft/iot/vmp/common/StreamURL.class修改toString()方法java复制// 修改前 String.format(%s://%s:%s/%s, protocol, host, port, file) // 修改后 String.format(%s://%s/%s, protocol, host, file)4. 重新编译打包bash复制# 编译 javac -cp ../BOOT-INF/lib/*:../BOOT-INF/classes \ -d ../BOOT-INF/classes \ BOOT-INF/classes/com/genersoft/iot/vmp/common/StreamURL.java # 打包 jar -cf ../wvp-pro-2.7.4-07091454.jar . mv wvp-pro-2.7.4-07091454.jar ../wvp-pro-2.7.4-07091454.jar5. 重启WVPbash复制pkill -f wvp nohup java -jar wvp-pro-2.7.4-07091454.jar 五、验证结果修改后生成的流地址FLV(https): https://wvp.xxwlh.net/rtp/xxx.live.flv FMP4: http://wvp.xxwlh.net/rtp/xxx.live.mp4端口号已移除腾讯云环境下播放正常。六、关键配置检查如果你的 WVP 也生成不了 HTTPS 流地址检查以下几点配置项说明http-ssl-port设为 443不能是 0ZLMsslport设为 0SSL 统一走 NginxNginx 代理顺序流媒体配置要优先加载命名0_*.conf防火墙443、18080、8091 端口都要开七、常见坑汇总问题原因解法流地址带端口StreamURL.format 带端口参数修改源码重新编译无 HTTPS 流地址http-ssl-port0改为 443播放器显示 URL 空Mixed Content 被浏览器拦截确认 WVP 生成 HTTPS 地址点播成功但 20 秒后关闭前端没有实际消费流检查播放器 URL 是否为 HTTPS八、总结WVP ZLMediaKit 这套组合拳很强但版本兼容和端口配置有不少坑。这次修复的 port 问题本身不复杂但排查定位花了比较长时间。如果部署过程中遇到其他问题欢迎交流。有类似部署需求闲鱼搜「流媒体技术站」提供 WVP-PRO / ZLMediaKit 部署、调试、排障服务远程帮你搞定。有问题也可以直接私信我。

更多文章