video analysis2.0拆分,ffmpeg封装go接口库
zhangmeng
2020-07-24 f93ee1a42e8c47e472332287b7350b66a6b0fa11
goffmpeg.go
@@ -39,6 +39,12 @@
   ScaleSpline = 0x400
)
// SrcFormat format NV
const SrcFormat = 23
// DstFormat format
const DstFormat = 3
var libcffmpeg C.libcffmpeg
// InitFFmpeg init ffmepg
@@ -122,6 +128,14 @@
   C.wrap_fn_run(unsafe.Pointer(libcffmpeg), h.ffmpeg, in)
}
// Run2 ffmpeg
func (h *GoFFMPEG) Run2(input string, minDuration int) {
   in := C.CString(input)
   defer C.free(unsafe.Pointer(in))
   C.wrap_fn_run(unsafe.Pointer(libcffmpeg), h.ffmpeg, in)
}
// FPS fps
func (h *GoFFMPEG) FPS() int {
   return int(C.wrap_fn_fps(unsafe.Pointer(libcffmpeg), h.ffmpeg))
@@ -134,3 +148,16 @@
   }
   C.free(unsafe.Pointer(p))
}
// GetGBJpg Get GB28181 Jpg
func GetGBJpg(rtspUrl string) []byte {
   rtsp := C.CString(rtspUrl)
   defer C.free(unsafe.Pointer(rtsp))
   var jpgLen C.int
   pic := C.wrap_fn_get_gb28181_pic(unsafe.Pointer(libcffmpeg), rtsp, &jpgLen)
   defer C.free(unsafe.Pointer(pic))
   retJpg := C.GoBytes(unsafe.Pointer(pic), jpgLen)
   return retJpg
}