zoukankan      html  css  js  c++  java
  • GB28181/RTSP/Ehome协议视频智能分析平台EasyCVR新增一键生成导出分享链接信息功能

    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("xEFxBBxBF") // 写入UTF-8 BOM
    	w := csv.NewWriter(fp) //创建一个新的写入文件流
    	w.WriteAll(data)
    	w.Flush()
    }
  • 相关阅读:
    C语言中标识符的作用域、命名空间、链接属性、生命周期、存储类型
    循环练习
    ArrayList集合

    方法
    表单标签
    HTML基础
    二维数组
    一维数组
    switch选择结构
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14189680.html
Copyright © 2011-2022 走看看