RTSP协议视频平台EasyNVR接入到EasyNVS管理平台后无法显示RTMP及RTSP视频流地址问题
程序员文章站
2022-07-05 22:24:36
...
EasyNVS视频综合管理平台能够对接入的EasyNVR进行统一的管理,获取EasyNVR的所有能力,并进行互联网化输出,同时进行统一化的管理和接口输出。
由于很多场景都有外网访问内网的需求,因此EasyNVS的使用也变得频繁起来,咨询也开始多起来。也有客户通过EasyNVS穿透得到EasyNVR的RTMP和RTSP地址,但是我们在测试过程中偶尔会发现RTMP和RTSP地址丢失的情况。
在EasyNVS通道配置中查看通道,会发现RTMP及RTSP地址栏下面都是空。
对于此问题,我们首先本地启动一个EasyNVR,EasyNVR先开启一个通道,然后连接到EasyNVS上,查看通道列表,列表中rtmp和rtsp地址是有的,然后关闭通道在开启通道,在查看通道发现rtmp和rtsp地址没有了。
分析是由于修改通道才导致rtmp和rtsp地址消失。观察代码发现是前端每次修改通道时都会向后端传递相应的数据。于是就在修改通道接口修改。
if nvc.RemoteRtmp != "" && nvc.Ip != "" {
remoteRtmp := fmt.Sprintf("rtmp://%s:%s/hls/stream_%d", nvc.Ip, nvc.RemoteRtmp, form.ID)
form.RemoteRtmp = remoteRtmp
}
if nvc.RemoteRtsp != "" && nvc.Ip != "" {
remoteRtsp := fmt.Sprintf("rtsp://%s:%s/stream_%d", nvc.Ip, nvc.RemoteRtsp, form.ID)
form.RemoteRtsp = remoteRtsp
}
先开启3个通道都是有地址的。
然后再开启一个通道,查看这个新开的通道是否有地址。下面是开启4个通道的效果