local and gb28181 camera update snapshot
| | |
| | | // @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 |
| | |
| | | package controllers |
| | | |
| | | import ( |
| | | "basic.com/dbapi.git" |
| | | "fmt" |
| | | "github.com/gin-gonic/gin" |
| | | "strings" |
| | |
| | | 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) { |
| | |
| | | } |
| | | 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 |
| | | } |
| | | } |