| | |
| | | "time" |
| | | |
| | | "track/gohumantrack" |
| | | |
| | | "track/goconv" |
| | | "basic.com/valib/goffmpeg.git" |
| | | ) |
| | | |
| | |
| | | flag.StringVar(&url1, "cam1", "", "url") |
| | | flag.StringVar(&url2, "cam2", "", "url") |
| | | } |
| | | func main() { |
| | | flag.Parse() |
| | | fmt.Println("url1: ", url1, " url2: ", url2) |
| | | if len(url1) == 0 || len(url2) == 0 { |
| | | fmt.Println("url null") |
| | | } |
| | | |
| | | tracker := gohumantrack.NewHumanTracker(0, 2, 0) |
| | | fmt.Println("version: ", tracker.GetVersion()) |
| | | |
| | | goffmpeg.InitFFmpeg("./runtime/libcffmpeg.so") |
| | | |
| | | cam1 := goffmpeg.New(false, false) |
| | | cam1.Run(url1) |
| | | cam1.BuildDecoder() |
| | | cam1.CloseStream() |
| | | |
| | | cam2 := goffmpeg.New(false, false) |
| | | cam2.Run(url2) |
| | | cam2.BuildDecoder() |
| | | cam2.CloseStream() |
| | | |
| | | for { |
| | | func run(cam1, cam2 *goffmpeg.GoFFMPEG, tracker *gohumantrack.HumanTracker) bool { |
| | | data1, ow1, oh1, _ := cam1.GetYUV() |
| | | data2, ow2, oh2, _ := cam2.GetYUV() |
| | | if ow1 > 0 && oh1 > 0 && ow2 > 0 && oh2 > 0 { |
| | | |
| | | bgr1 := goconv.YUV2BGR(data1, ow1, oh1) |
| | | bgr2 := goconv.YUV2BGR(data2, ow2, oh2) |
| | | if bgr1 == nil || bgr2 == nil{ |
| | | return false |
| | | } |
| | | var images []gohumantrack.ImageHumanTracker |
| | | img := gohumantrack.ImageHumanTracker{ |
| | | Data: data1, |
| | | Data: bgr1, |
| | | Width: ow1, |
| | | Height: oh1, |
| | | Channel: 3, |
| | | } |
| | | images = append(images, img) |
| | | img = gohumantrack.ImageHumanTracker{ |
| | | Data: data2, |
| | | Data: bgr2, |
| | | Width: ow2, |
| | | Height: oh2, |
| | | Channel: 3, |
| | |
| | | } else { |
| | | fmt.Println("process error: ", err) |
| | | } |
| | | } else { |
| | | // fmt.Println("cam1 size: ", ow1, "x", oh1, " cam2 size: ", ow2, "x", oh2) |
| | | return true |
| | | } |
| | | return false |
| | | } |
| | | |
| | | func main() { |
| | | flag.Parse() |
| | | fmt.Println("url1: ", url1, " url2: ", url2) |
| | | if len(url1) == 0 || len(url2) == 0 { |
| | | fmt.Println("url null") |
| | | } |
| | | |
| | | tracker := gohumantrack.NewHumanTracker(0, 2, 0) |
| | | fmt.Println("version: ", tracker.GetVersion()) |
| | | |
| | | goffmpeg.InitFFmpeg("./runtime/libcffmpeg.so") |
| | | |
| | | cam1 := goffmpeg.New(false, false) |
| | | cam1.Run(url1) |
| | | cam1.BuildDecoder() |
| | | cam1.CloseStream() |
| | | |
| | | cam2 := goffmpeg.New(false, false) |
| | | cam2.Run(url2) |
| | | cam2.BuildDecoder() |
| | | cam2.CloseStream() |
| | | |
| | | for { |
| | | if !run(cam1, cam2, tracker){ |
| | | time.Sleep(38 * time.Millisecond) |
| | | } |
| | | |