EasyCVR如何实现对接海康设备添加国标TCP模式的对讲?

2021-06-11 10:07:47 浏览数 (1)

EasyCVR的国标对讲功能是我们很早就开发出来的功能,但是在EasyCVR之前的版本中,只添加了国标udp海康模式的对讲,因此有用户在遇到tcp模式的对讲需求时,就难以满足。前段时间我们在客户现场遇到了一个设备无法对讲的问题,通过抓包排查发现是tcp模式。

借此机会,我们正好优化了国标设备对讲的问题。由于之前的EasyCVR代码中只存在对udp的监听,因此对讲信息发送至平台时,平台会直接通过udp发送音频,而tcp的监听不存在,所以无法启动tcp监听。

因此我们在EasyCVR的原版代码中添加如下代码,对设备对讲的模式进行判断。如果是tcp模式,则启动tcp监听,然后通过tcp的方式向设备发送音频。

代码语言:javascript复制
tcpPortMin, tcpPortMax := 35000, 40000
tcpPortSlice := strings.Split(conf.GetIniConf().RtpTcpPortRange, ",")
if len(tcpPortSlice) >= 2 {
   if _tcpPortMin, err := strconv.Atoi(tcpPortSlice[0]); err == nil && _tcpPortMin > 0 {
      if _tcpPortMax, err := strconv.Atoi(tcpPortSlice[1]); err == nil && _tcpPortMax > 0 {
         if _tcpPortMin <= _tcpPortMax {
            tcpPortMin = _tcpPortMin
            tcpPortMax = _tcpPortMax
         }
      }
   }
}
start := tcpPortMin
lastTCPPort := rtps.GetLastTCPPort()
if lastTCPPort > 0 {
   start = int(lastTCPPort   1)
}
 

添加完成后再次通过EasyCVR平台向设备喊话,能够正常发送音频设备,tcp模式下的对讲功能就这样实现了。

udp

0 人点赞