Skip to content

tinogoehlert/gostreamer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gostreamer

go package for playing with the gstreamer (gstlaunch) cli.

supported image formats (DataSinks):

  • GRAY8
  • RGB
  • BGR
  • RGBA
  • BGRA

opencv support:

  • you can also produce gocv Mat objects from video sinks

TODO:

  • audiosink support (DataSink)
  • better documentation
  • support more image formats for DataSinks

NOTES:

  • 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
	})
}

About

go package for playing with the gstreamer cli

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages