From 5d78b36e851a5862302f2e40c99a4477020c79bc Mon Sep 17 00:00:00 2001 From: liuxiaolong <736321739@qq.com> Date: 星期五, 20 九月 2019 13:46:52 +0800 Subject: [PATCH] 查找此人时先切图 --- service/CamraUpdatesnashot.go | 78 ++++++++++++++++++++++++++------------- 1 files changed, 52 insertions(+), 26 deletions(-) diff --git a/service/CamraUpdatesnashot.go b/service/CamraUpdatesnashot.go index f99f35e..6e68767 100644 --- a/service/CamraUpdatesnashot.go +++ b/service/CamraUpdatesnashot.go @@ -1,24 +1,15 @@ package service import ( - "fmt" - "time" - "flag" - "os/exec" - - "bytes" - "encoding/json" - "errors" - "io" - "log" - "mime/multipart" - "net/http" - "gocv.io/x/gocv" - "path/filepath" - "basic.com/dbapi.git" + "basic.com/fileServer/WeedFSClient.git" + "basic.com/valib/capture.git" + "basic.com/valib/logger.git" + "errors" + "strconv" + "webserver/cache" ) - +/*浠ヤ笅灞炰簬鏃х増鏈湴鎽勫儚鏈鸿幏鍙栨埅鍥撅紙鍥芥爣鎽勫儚鏈哄簳鍥炬棤娉曞埛鏂帮級 func PostFormBufferData(uri string, filepath string, fileName string) (maps map[string]interface{}, err0 error) { // 瑕佹寚瀹氳浆byte鐨勬牸寮� picMat := gocv.IMRead(filepath, gocv.IMReadColor) @@ -102,31 +93,31 @@ if err != nil { return "", nil } - - piclocal := fmt.Sprintf("%s%s.jpg", *storelocal, time.Now().String()) - cmd := exec.Command("ffmpeg", "-i", caminfo.Rtsp, "-y", "-f", "image2", "-t", "0.001", "-vf", "select='eq(pict_type\\,I)',setpts='N/(25*TB)'", "-s", "1920*1080", piclocal) + //piclocal := fmt.Sprintf("%s%s.jpg", *storelocal, time.Now().String()) + piclocal := fmt.Sprintf("%s.jpg", time.Now().Format("2006-01-02_15_04_05.000000000")) + cmd := exec.Command("ffmpeg", "-i", caminfo.Rtsp, + //"-y", "-f", "image2", "-t", "0.001", + //"-vf", "select='eq(pict_type\\,I)',setpts='N/(25*TB)'", + "-s", "1920*1080", piclocal) err = cmd.Run() if err != nil { - return "", err + //return "", err //ignore error } return piclocal, nil } - -var storelocal = flag.String("storelcoal", "/home/user/workspace/gitblit/", "address of picture produce.") -var fileurl = flag.String("fileurl", "http://192.168.1.182:6333/submit", "url of file server.") func UpdateSnapshotUrl(cid string) (filename string, err error) { var camApi dbapi.CameraApi flag.Parse() - piclocal, err := processphoto(cid) + defer os.Remove(piclocal) if err != nil { return "", err } - - resp, err := PostFormBufferData(*fileurl, piclocal, piclocal) + var weedfsUrl = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit" + resp, err := PostFormBufferData(weedfsUrl, piclocal, piclocal) if err != nil { fmt.Println(err) return "", err @@ -139,4 +130,39 @@ return "", errors.New("update filelocal to camera fail") } 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("libcffmpeg.so",m,camera.Rtsp,capture.JPEGFileExt,1280,720,10) + if err == nil{ + localConf, err2 := cache.GetServerInfo() + if err2 !=nil || localConf.WebPicIp == "" { + logger.Debug("localConfig is wrong!!!") + return "",err2 + } + var weedfsUri = "http://"+localConf.WebPicIp+":"+strconv.Itoa(int(localConf.WebPicPort))+"/submit" + weedFilePath, err := WeedFSClient.UploadFile(weedfsUri, camera.Name+".jpg", b) + if err != nil { + return "",err + } else { + ok := cameraApi.UpdateSnapshotUrl(cid, weedFilePath) + if !ok { + return "", errors.New("update camera's snapshot fail") + } + return weedFilePath, nil + } + }else{ + return "",err + } } -- Gitblit v1.8.0