WVP-GB28181-PRO常见问题收集及解答
编译教程
依赖无法下载或者下载很慢
依赖包在国外网站,无法下载是因为您的网络问题,可尝试先使用下载工具进行下载,然后通过FTP/SFTP等工具上传至服务器
播放提示收流超时
出现这个错误提示,一般都是由于WVP和ZLM的网络不通,主要检测双方的配置是否对应,是否可以互相访问到
1 | wvp配置文件路径:/home/wvp-GB28181-pro/target/application.yml |
wvp配置图文详解
请确认application.yml中的zlm项中是否有如图几个参数,如果没有,请自行添加
id对应config.ini中的general项的mediaServerId,两者需要完全一致,不能使用中文
如果内网部署,请将ip,stream-ip,sdp-ip,hook-ip均填写为内网ip,内网ip可通过 ifconfig 命令查看
如果公网部署,请将ip和hook-ip填写为内网ip,stream-ip和sdp-ip填写为公网ip,公网ip可通过 curl ip.sb 查看
secret对应id对应config.ini中的api项的secret,两者需要完全一致,不能使用中文
http-port对应id对应config.ini中的http项的port,两者需要完全一致,默认为80
zlm配置图文详解
公网部署时,http项中的allow_ip_range留空,否则会导致流媒体无法访问
检查hook项中的链接是否为内网ip的链接,如为公网请修改(编译安装zlm后,hook默认为空,编译安装wvp后会自动配置,配置后再进行检查)
点播流程详解
以下为WVP-PRO点播流程。点播成功前的任何一个环节出现问题都可能出现点播超时,这也是排查点播超时的依据。
注册流程描述
- 用户从网页或调用接口发起点播请求;
- WVP-PRO向摄像机发送Invite消息,消息头域中携带 Subject字段,表明点播的视频源ID、发送方媒体流序列号、ZLMediaKit接收流使用的IP、端口号、 接收端媒体流序列号等参数,SDP消息体中 s字段为“Play”代表实时点播,y字段描述SSRC值,f字段描述媒体参数。
- 摄像机向WVP-PRO回复200OK,消息体中描述了媒体流发送者发送媒体流的IP、端口、媒体格式、SSRC字段等内容。
- WVP-PRO向设备回复Ack, 会话建立成功。
- 设备向ZLMediaKit发送实时流。
- ZLMediaKit向WVP-PRO发送流改变事件。
- WVP-PRO向WEB用户回复播放地址。
- ZLMediaKit向WVP发送流无人观看事件。
- WVP-PRO向设备回复Bye, 结束会话。
- 设备回复200OK,会话结束成功。
开启点播
开启点播后,可以提取流媒体固定地址,集成到小程序、网页、APP等
1 | vim /home/wvp-GB28181-pro/target/application.yml |
绑定域名并配置https
绑定域名
以阿里云为例,创建A记录,主机记录填写需要绑定的二级域名,记录值填写为服务器公网ip
下载SSL证书
以阿里云为例,创建证书并验证后,等待CA审批后点击下载,选择“其他”
下载后解压,可以得到两个文件,XXX.key和XXX.pem,可通过FTP/SFTP等方式上传至服务器/home目录
zlm配置SSL
- 合并为zlmediakit支持的证书类型
1
cat XXX.key XXX.pem > zlm.pem
- 加载证书默认https端口为443,如需修改,可编辑config.ini中http项的sslport
1
2
3
4cd /home/ZLMediaKit/release/linux/Release
cp /home/zlm.pem ./
#启动进程,
./MediaServer -s zlm.pem
wvp配置SSL
1 | cd /home/wvp-GB28181-pro/target |
重启ZLM和WVP后,即可实现域名https访问,流媒体链接亦可域名https播放
画面显示花屏
监控画面经常花屏,可以把流传输模式改成“TCP被动模式”,同时,在弱网环境下,配置正常,偶现收流超时,可更换为“TCP被动模式”后再次尝试播放
点播端口分配异常
首先请检查wvp和zlm的配置是否一致,具体可查看播放提示收流超时,然后请确保防火墙的8000tcp端口已经打开,包括服务器系统的防火墙和云服务商的安全策略中的入站规则
前后端分离部署
前端编译后的文件在src/main/resources/static
中,将此目录下的文件部署。 前后端分离部署最大的问题是跨域的解决,当前版本使用JWT生成的TOKEN作为认证凭据, 部署前端后需要在wvp中配置前端访问的地址以完成跨域流程。
配置前端服务器
假如你的服务有公网域名为xxx.com,公网IP为11.11.11.11, 那么你可以在wvp中这样配置:
1 | user-settings: |
配置不是必须的,你使用哪个ip/域名访问就配置哪个即可。修改配置后重启wvp以使配置生效。
在src/main/resources/static/static/js/config.js
下配置服务器的地址,也就是wvp服务的地址
1 | window.baseUrl = "http://xxx.com:18080" |
这里的地址是需要客户端电脑能访问到的,因为请求是客户端电脑发起,与代理不同
问题持续收集中,同时欢迎在评论区留言提供相关素材