skgm BIT Basics Linux,Broadcast IT Basics GStreamer Software Audio Video Testsignal Generator

GStreamer Software Audio Video Testsignal Generator

Getested auf Ubuntu 16.04 und 18.04 LTS

apt update && apt upgrade -y && apt autoremove -y
apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gstreamer1.0-libav libgstreamer1.0-0 gstreamer1.0-tools

Dann baut man sich die einzelnen Teile der Pipe (am besten in einem Editor) zusammen.

Nachfolgend beispielhaft für ein Testsignal mit Stereo Ton, H.264 bzw. AAC encodiert zur lokalen Ausgabe als UDP Stream auf Port 5000:

Mux:
mpegtsmux name=mux ! udpsink host=127.0.0.1 port=5000

!Über das Flag „name=“ werden am Ende alle Teile zusammengefügt!

Video:
videotestsrc ! video/x-raw,width=1280,height=720 ! x264enc

Die videotestsrc ist eingebaut / kommt mit GStreamer

Audio:
audiotestsrc ! audioconvert ! audio/x-raw, channels=2 ! avenc_aac compliance=-2

Die audiotestsrc ist eingebaut / kommt mit GStreamer

Das Compliance Flag wird benötigt, da avenc_aac noch nicht als stabil markiert wurde.

Die verschiedenen installieren Plugins, Module, etc. von GStreamer bekommt man mittels gst-inspect-1.0 aufgelistet

Jetzt das Ganze zusammenfügen.

Sinngemäß stellt die Trennung zwischen zwei Ausdrücken mit einem „!“ eine Pipe da, sprich die Ausgabe wird immer zum nächsten Ausdruck weitergeleitet. Eine Trennung nur mit Leerzeichen (also ohne“!“) kann als nächster Parameter verstanden werden.

Also sinngemäß gst-launch-1.0 para1 para2 para3 wobei bspw. para1 == state1 ! state2 ! state ! … enthält.

Ergebnis:

gst-launch-1.0 mpegtsmux name=mux ! udpsink host=127.0.0.1 port=5000 videotestsrc ! video/x-raw,width=1280,height=720 ! x264enc ! mux. audiotestsrc ! audioconvert ! audio/x-raw, channels=2 ! avenc_aac compliance=-2 ! mux.

Den GStreamer nach Möglichkeit in einer Screen starten damit der Streamer nicht mit der SSH Session terminiert wird.

Related Post