依赖 gocv.io/x/gocv 开源库

开源库基本使用cgo 

gocv安装参考官网

package main

import (
	"fmt"
	"gocv.io/x/gocv"
	"image/jpeg"
	"os"
)


func main() {
	video, err := gocv.OpenVideoCapture("rtsp://root:123456@127.0.0.1")
	if err != nil {
		fmt.Println(err)
		return
	}
	defer video.Close()

	img := gocv.NewMat()
	defer img.Close()

	classifier := gocv.NewCascadeClassifier()
	defer classifier.Close()
	for {
		if ok := video.Read(&img); !ok {
			return
		}
		
		if img.Empty() {
			return
		}

		data, err := img.ToImage()
		if err != nil {
			fmt.Println("to img err:", err)
			return
		}

		file, err := os.Create("./test.jpg")
		if err != nil {
			return
		}
		defer file.Close()

		if err = jpeg.Encode(file, data, nil); err != nil {
			fmt.Println("jpeg err:", err)
		} else {
			fmt.Println("success")
		}

		return

	}
}