安防视频云服务平台EasyCVR作为一套较为成熟稳定的视频分发平台,不需要对现有监控架构做调整,支持CDN推流,灵活适应原有架构;且按需灵活扩展、收缩资源,免去了插件安装、浏览器限定等条件,实现了无插件、多平台自由观看回放。
在一些用户现场,出现在EasyCVR中接入的设备存在不同网段的问题,所以我们需要添加一个新功能,即自定义收流地址,区分不同设备的收流地址问题。
功能分析,需要在编辑设备的时候,为前端提供接口,然后将前端传入的收流ip记录到数据库中,当用户播放的时候,查询出来,传递给设备。
添加如下代码,首先数据库增加字段,在初始化的时候将设备收流信息记录下来。然后播放再返回。
q := db.SQLite.Model(models.Device{}).Where("`index`=?", device.DeviceID)
q.Find(&gbsdevs)
if len(gbsdevs) != 1 {
err = fmt.Errorf("device[%d] not found", device.DeviceID)
return
}
//[传输模式]
gbsdevs[0].MediaTransport = device.Transport
//[启用]
gbsdevs[0].Enable = device.Enable
db.SQLite.Model(models.Device{}).Save(gbsdevs[0])
//
sipDev := uas.Server.GetDevice(gbsdevs[0].ID)
if sipDev == nil {
err = fmt.Errorf("device[%s] not found", gbsdevs[0].ID)
return
}
gbschns := make([]*models.Channel, 0)
再次在前端编辑过后,然后后端播放,自定义流地址配置生效。