2016-07-14 6 views
1

Ich versuche, drei Streams mit dem Videomixer-Plugin von Gstreamer zu kombinieren. Ich habe diesen Thread gefunden und ich kann es geschafft, zwei meiner Streams Seite an Seite zu setzen, aber ich habe keine Ahnung, wie man eine dritte hinzufügen. Kann jemand helfen ?Gstreamer Compositing Bild mit drei Streams

Der ursprüngliche Befehl, den ich verwenden und arbeitet:

gst-launch-1.0 uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! videomixer name=m sink_1::xpos=320 ! autovideosink uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. 

Meine Version mit zwei udp-Streams, auch funktioniert:

gst-launch-1.0 -v udpsrc port=9000 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! video/x-h264,width=640,height=480,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert ! videomixer name=m sink_1::xpos=640 ! autovideosink -v udpsrc port=9001 caps='application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264' ! rtph264depay ! video/x-h264,width=640,height=480,framerate=30/1 ! h264parse ! avdec_h264 ! videoconvert! m. 

Aber wie kann ich einen dritten Strom hinzufügen?

Antwort

0

Warum bei nur 3 stoppen, läßt 4 tun :)

gst-launch-1.0 uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! videomixer name=m sink_1::xpos=320 sink_2::ypos=240 sink_3::xpos=320 sink_3::ypos=240 ! autovideosink uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. 

Format Ermöglicht es wenig schöner:

gst-launch-1.0 \ 
videomixer name=m sink_1::xpos=320 sink_2::ypos=240 sink_3::xpos=320 sink_3::ypos=240 ! autovideosink \ 
uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. \ 
uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. \ 
uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. \ 
uridecodebin uri=http://old.koniclab.info/fileadmin/images/koniclab_logo_negro.png ! videoscale ! video/x-raw, width=320, height=240 ! imagefreeze ! m. 

Es gibt kein Problem mit dem Starten der Erstellung von Elementen, die am Ende sind der Verarbeitung .. mit gst-launch definieren Sie einfach, welche elelemts mit welchen anderen Elementen verbunden sind .. der Rest gst-launch kann outs selbst herausfinden ..

Sie kopieren einfach einfügen den Teil, der cre atet die Eingabe, was auch immer es ist, und verlinke schließlich mit m. .. dann müssen Sie ein weiteres sink_XX :: some-pos = ZZZ hinzufügen.

Ich denke, dass Sie den Rest herausfinden können.

HTH

+0

Danke, das funktioniert und sieht tatsächlich gut formatiert aus. Aus irgendeinem Grund bekomme ich eine Fehlermeldung, dass es kein glvideomixer-Element gibt, aber die Verwendung von Videomixer funktioniert. –

+0

@alainbaumann zu videomixer gewechselt ... wenn es dein Problem löst, kannst du die Frage mit dem Häkchen unterhalb der Stimmenzahl annehmen, wenn du es wirklich magst, kannst du auch upvoten – nayana