go package for playing with the gstreamer (gstlaunch) cli.
- GRAY8
- RGB
- BGR
- RGBA
- BGRA
- you can also produce gocv Mat objects from video sinks
- audiosink support (DataSink)
- better documentation
- support more image formats for DataSinks
- FdSink does not work on windows
example:
package main
import (
"context"
"fmt"
"runtime"
"github.com/tinogoehlert/gostreamer/gocv"
"github.com/tinogoehlert/gostreamer"
"gocv.io/x/gocv"
)
func main() {
runtime.LockOSThread()
gst, _ := gostreamer.NewGstreamer()
fdsink := gostreamer.NewFdSink()
gst.AddStr("avfvideosrc").
AddStr("videoconvert").
AddStr("video/x-raw, framerate=25/1,format=BGR").
AddStr("videoscale").
AddSink(fdsink)
imager := gocvstreamer.NewCvImager(fdsink)
window := gocv.NewWindow("Simple test")
defer window.Close()
imager.ProduceMat(context.Background(), func(mat gocv.Mat) error {
window.IMShow(mat)
if window.WaitKey(1) >= 0 {
return fmt.Errorf("interrupted")
}
return nil
})
}