使用分离方式,修改视频流返回方式
This commit is contained in:
parent
48d509eea7
commit
529d6b9282
4
main.go
4
main.go
|
|
@ -77,7 +77,7 @@ func init() {
|
|||
//service.DeviceIsGettingFrame[device.ID] = false
|
||||
service.DeviceRWMap.Store(device.ID, &sync.RWMutex{})
|
||||
service.DeviceCurrentFrameMap.Store(device.ID, gocv.NewMat())
|
||||
service.DeviceFrameCount.Store(device.ID, 0)
|
||||
service.DeviceFrameCount[device.ID] = 0
|
||||
service.DeviceIsGettingFrame.Store(device.ID, false)
|
||||
}
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ func ReadConfigAndSetSystem() {
|
|||
//说明没有这个设备,需初始化添加
|
||||
service.DeviceRWMap.Store(device.ID, &sync.RWMutex{})
|
||||
service.DeviceCurrentFrameMap.Store(device.ID, gocv.NewMat())
|
||||
service.DeviceFrameCount.Store(device.ID, 0)
|
||||
service.DeviceFrameCount[device.ID] = 0
|
||||
service.DeviceIsGettingFrame.Store(device.ID, false)
|
||||
}
|
||||
if is_get == false && device.NextStop == false { //如果设备流已经停止且不暂停,则开启
|
||||
|
|
|
|||
|
|
@ -180,6 +180,7 @@ func getVideoFrame(device proto.DeviceInfo) {
|
|||
fontColor := color.RGBA{G: 255}
|
||||
lineType := 2
|
||||
z := 0
|
||||
var frame gocv.Mat
|
||||
for {
|
||||
if device.LogFrame > 0 && z%device.LogFrame == 0 {
|
||||
log.Printf("设备:%d 当前帧: %d\n", device.ID, z)
|
||||
|
|
@ -187,7 +188,7 @@ func getVideoFrame(device proto.DeviceInfo) {
|
|||
if device.NextStop {
|
||||
break
|
||||
}
|
||||
frame := gocv.NewMat()
|
||||
frame = gocv.NewMat()
|
||||
ok := webcam.Read(&frame)
|
||||
if !ok {
|
||||
log.Printf("设备:%v 错误: 无法从视频流中读取帧\n", device)
|
||||
|
|
@ -214,6 +215,10 @@ func getVideoFrame(device proto.DeviceInfo) {
|
|||
}
|
||||
z++
|
||||
}
|
||||
err2 := frame.Close()
|
||||
if err2 != nil {
|
||||
log.Printf("设备:%d 错误: 无法释放帧资源,err:%s \n", device.ID, err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
// 发起get请求,返回响应状态码
|
||||
|
|
|
|||
Loading…
Reference in New Issue