首页 > 其他 > 详细

GB28181/RTSP/Ehome协议视频智能分析平台EasyCVR新增一键生成导出分享链接信息功能

时间:2020-12-25 17:49:03      阅读:37      评论:0      收藏:0      [点我收藏+]

EasyCVR视频融合平台能够兼容RTSP、GB28181、SDK、Ehome等协议前端设备的接入,也正因如此,很多设备数量多且复杂的项目团队会找到我们,希望通过EasyCVR来解决问题。

技术分享图片

很多项目团队由于项目庞大,视频通道高达百路或者千路,急需一款高性能的视频集中管理平台来集中管理。一般此类项目通道数量大,需要更加便捷的操作到导入如此多的通道,在分享时,如果手动复制粘贴分享链接到自己的业务平台也是不现实的。

针对该问题,我们也对EasyCVR的功能做了新增,EasyCVR1.0.40版本内提供了一键导出分享链接到csv表格中的功能,现实如下:

技术分享图片

客户可以根据导出的分享csv表格,编写脚本文件直接将csv中的信息导入数据库中,实现一键添加,极大方便了管理者的运维。

技术分享图片

我们实现的代码如下,大家可以参考:

技术分享图片

func (h *APIHandler)GetShareAddr(c *gin.Context){
	columns := [][]string{{"CameraName", "BranchName", "Iframes", "ShareConnection"}}
	devs,err:=cvrdao.GetDeviceDao().GetAll()
	if err == nil{
		for _,v:=range *devs{
			chns,e:=cvrdao.GetChannelDao().GetAllByDeviceID(v.DeviceID)
			if e == nil{
				for _,value:=range *chns{
					m := []string{value.Name, v.DeviceName,
					    fmt.Sprintf("<iframe src=\"http://127.0.0.1:18000/#/players/%d/%d/1?autoplay=true\" allowfullscreen allow=\"autoplay\" ></iframe>",v.DeviceID,value.ChannelID),
						fmt.Sprintf("http://127.0.0.1:18000/#/players/%d/%d/1?autoplay=true",v.DeviceID,value.ChannelID),}
					columns = append(columns, m)
				}
			}
		}
	}
	ExportCsv("share.csv",columns)
}

func ExportCsv(filePath string, data [][]string) {
	fp, err := os.OpenFile(filePath,os.O_RDWR|os.O_CREATE|os.O_TRUNC,0664)
	if err != nil {
		log.Printf("创建文件["+filePath+"]句柄失败,%v", err)
		return
	}
	defer fp.Close()
	fp.WriteString("\xEF\xBB\xBF") // 写入UTF-8 BOM
	w := csv.NewWriter(fp) //创建一个新的写入文件流
	w.WriteAll(data)
	w.Flush()
}

GB28181/RTSP/Ehome协议视频智能分析平台EasyCVR新增一键生成导出分享链接信息功能

原文:https://www.cnblogs.com/TSINGSEE/p/14189680.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!