From 49bea897a567d059e159509340ce8c68fad56a1c Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期一, 22 七月 2019 16:28:09 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- runtime/librtspclient.so | 0 controllers/camera.go | 3 ++- service/CamraUpdatesnashot.go | 49 +++++++++++++++++++++++++++++++++++++++++-------- controllers/initForData.go | 1 + runtime/libStreamParse.so | 0 runtime/libcffmpeg.so | 0 6 files changed, 44 insertions(+), 9 deletions(-) diff --git a/controllers/camera.go b/controllers/camera.go index 9956bc1..c0272b9 100644 --- a/controllers/camera.go +++ b/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 diff --git a/controllers/initForData.go b/controllers/initForData.go index 81e542a..78dd39e 100644 --- a/controllers/initForData.go +++ b/controllers/initForData.go @@ -1,6 +1,7 @@ package controllers import ( + "basic.com/dbapi.git" "fmt" "github.com/gin-gonic/gin" "strings" diff --git a/runtime/libStreamParse.so b/runtime/libStreamParse.so new file mode 100644 index 0000000..76b92b9 --- /dev/null +++ b/runtime/libStreamParse.so Binary files differ diff --git a/runtime/libcffmpeg.so b/runtime/libcffmpeg.so new file mode 100644 index 0000000..321990a --- /dev/null +++ b/runtime/libcffmpeg.so Binary files differ diff --git a/runtime/librtspclient.so b/runtime/librtspclient.so new file mode 100644 index 0000000..6757f0f --- /dev/null +++ b/runtime/librtspclient.so Binary files differ diff --git a/service/CamraUpdatesnashot.go b/service/CamraUpdatesnashot.go index 233447d..4027daf 100644 --- a/service/CamraUpdatesnashot.go +++ b/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 + } +} -- Gitblit v1.8.0