liuxiaolong
2019-10-11 b0500fee9c01e17c81b9293b244c8ed88dc9ca29
service/CamraUpdatesnashot.go
@@ -1,27 +1,15 @@
package service
import (
   "flag"
   "fmt"
   "os"
   "os/exec"
   "strconv"
   "time"
   "webserver/extend/config"
   "bytes"
   "encoding/json"
   "errors"
   "gocv.io/x/gocv"
   "io"
   "log"
   "mime/multipart"
   "net/http"
   "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)
@@ -119,8 +107,6 @@
   return piclocal, nil
}
var fileurl = "http://"+config.WeedFs.Ip+":"+strconv.Itoa(config.WeedFs.UploadPort)+"/submit"
func UpdateSnapshotUrl(cid string) (filename string, err error) {
   var camApi dbapi.CameraApi
@@ -130,8 +116,8 @@
   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
@@ -144,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
   }
}