问题出现背景

  • 本机ip为192.168.0.94,部署wvp前后端。 两台测试服务器 192.168.0.144 和 192.168.0.252分别部署了一套zlmediakit
  • 摄像头连接wvp服务内的sip,然后wvp请求zlm服务来获取视频流。wvp修改配置文件,将media地址改为252的时候,链接正常,但是,将地址改为144并重新启动的时候会报错,无法正常播放。
  • 清理数据库、redis,依旧无法解决。
  • 修改配置文件,甚至二者一模一样,没有任何变化。

    问题出现原因

  • 摄像头会将连接信息通过wvp服务存入zlm服务。这时通过/index/api/getRtpInfo接口可以查到连接信息

    {
      "code": 0,
      "exist": true,
      "identifier": "34020000001320000001_34020000001320000001",
      "local_ip": "192.168.0.97",
      "local_port": 30002,
      "peer_ip": "192.168.0.220",
      "peer_port": 15060
  • 220是摄像头的ip。可以看到,ZLM和摄像头是绑定的。

  • 这时如果查询另一个ZLMediakit服务,会返回如下消息:

    {
      "code": 0,
      "exist": false
    }
  • 在第一个ZLM服务释放这个rtp流之前,第二个ZLM服务器是无法绑定的,这就是出现上述问题的原因。

    解决办法

  • 摄像头断电,大概30秒后,第一个ZLM服务会断开与摄像头的连接。然后再通电,摄像头会通过配置里的的sip的ip地址,指向的wvp服务,然后链接当前wvp服务对应的media服务,也就是新的ZML服务,就可以正常换绑了
  • 直接关闭第一个ZML服务。后台会自动断开所有的链接
    2023-06-14T08:07:08.png
最后修改:2023 年 06 月 14 日
感恩的心,感谢有你!