liuxiaolong
2019-07-22 c6a9333ccafbfac3bd5c04d7c5b6195dff35d0a3
local and gb28181 camera update snapshot
3个文件已修改
53 ■■■■ 已修改文件
controllers/camera.go 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/initForData.go 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service/CamraUpdatesnashot.go 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
controllers/camera.go
@@ -266,7 +266,8 @@
// @Router /data/api-v/camera/updateSnapshotUrl/{cid} [get]
func(cc CameraController) UpdateSnapshotUrl(c *gin.Context){
    cid := c.Param("cid")
    filename, err := service.UpdateSnapshotUrl(cid)
    //filename, err := service.UpdateSnapshotUrl(cid)
    filename, err := service.UpdateCapture(cid)
    if err != nil {
        util.ResponseFormat(c, code.ComError, "更新失败")
        return 
controllers/initForData.go
@@ -1,6 +1,7 @@
package controllers
import (
    "basic.com/dbapi.git"
    "fmt"
    "github.com/gin-gonic/gin"
    "strings"
service/CamraUpdatesnashot.go
@@ -1,25 +1,26 @@
package service
import (
    "flag"
    "fmt"
    "os"
    "os/exec"
    "strconv"
    "time"
    "webserver/extend/config"
    "bytes"
    "encoding/json"
    "errors"
    "flag"
    "fmt"
    "gocv.io/x/gocv"
    "io"
    "log"
    "mime/multipart"
    "net/http"
    "os"
    "os/exec"
    "path/filepath"
    "strconv"
    "time"
    "webserver/extend/config"
    "webserver/extend/esutil"
    "basic.com/dbapi.git"
    "basic.com/valib/capture.git"
)
func PostFormBufferData(uri string, filepath string, fileName string) (maps map[string]interface{}, err0 error) {
@@ -143,3 +144,35 @@
    }
    return filename, nil
}
//调用统一接口,刷新底图(集成国标底图刷新)
func UpdateCapture(cid string) (fileName string,err error){
    var cameraApi dbapi.CameraApi
    camera, err := cameraApi.GetCameraById(cid)
    if err !=nil{
        return "",errors.New("camera not exist")
    }
    m := capture.Rtsp
    if camera.Type == 1{//国标摄像机
        m = capture.GB28181
    }
    b,err := capture.Capture("./runtime/libcffmpeg.so",m,camera.Rtsp,capture.JPEGFileExt,1280,720,10)
    if err == nil{
        var weedfsUri = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
        resp, err := esutil.PostFormBufferData(weedfsUri, camera.Name+".jpg", "file", b)
        if err != nil {
            return "",err
        } else {
            fileurl := resp["fileUrl"].(string) // 文件路径
            filename := filepath.Base(fileurl)
            ok := cameraApi.UpdateSnapshotUrl(cid, filename)
            if !ok {
                return "", errors.New("update camera's snapshot fail")
            }
            return filename, nil
        }
    }else{
        return "",err
    }
}