From 4f7ab713e2ccc9a1525bd72dc45df7f98a9e85a6 Mon Sep 17 00:00:00 2001
From: chenshijun <csj_sky@126.com>
Date: 星期三, 04 十二月 2019 17:48:25 +0800
Subject: [PATCH] add new capture method: i-frame to jpg

---
 capture.go |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/capture.go b/capture.go
index 7d28756..a0bcf09 100644
--- a/capture.go
+++ b/capture.go
@@ -39,6 +39,31 @@
 )
 
 // Capture pic
+func CaptureGB28181(soFile string, url string, maxTry int) ([]byte, error) {
+
+	var ret []byte
+	var err error
+
+	err = goffmpeg.InitFFmpeg(soFile)
+	if err != nil {
+		return nil, err
+	}
+
+	reterr := errors.New(fmt.Sprintf("try %d times to capture image, is url correct?", maxTry))
+	for i := 0; i < maxTry; i++ {
+		ret = goffmpeg.GetGBJpg(url)
+		if len(ret) > 0 {
+			reterr = nil
+			break
+		}
+	}
+
+	goffmpeg.FreeFFmpeg()
+
+	return ret, reterr
+}
+
+// Capture pic
 func Capture(soFile string, m StreamMode, url string, ext PicExt, w, h, maxTry int) ([]byte, error) {
 	if m != GB28181 && m != Rtsp {
 		return nil, errors.New("there is no this mode, try capture.Rtsp/capture.GB28181")

--
Gitblit v1.8.0