2016-05-30 10 views
0

spielen Ich brauche eine Pipeline für „Bild im Bild“ -Effekt Medien von zwei Dateien zu kombinieren, zu komponieren:GStreamer Bild im Bild - zwei Dateien parallel

1) Video-Inhalte von der ersten Datei zeigte auf dem vollen Fenster 2) Video aus der zweiten Datei wird in der Größe geändert und wird in der oberen linken Ecke eines Fensters angezeigt, 3) Audio aus beiden Dateien gemischt 4) der Inhalt aus beiden Dateien sollte gleichzeitig

Bisher habe ich folgende Pipeline bekommen:

gst-launch-1.0 -e \ 
    filesrc name="src0" location=$FILE0 \ 
    ! decodebin name="decodebin0" ! queue ! videoscale ! capsfilter caps="video/x-raw,width=120" ! videoconvert ! videomixer.sink_0 decodebin0. ! queue ! audioconvert ! audiomixer.sink_0 \ 
    filesrc name="src1" location=$FILE1 \ 
    ! decodebin name="decodebin1" ! queue ! videoscale ! capsfilter caps="video/x-raw" ! videoconvert ! videomixer.sink_1 decodebin1. ! queue ! audioconvert ! audiomixer.sink_1 \ 
    videomixer name="videomixer" ! autovideosink \ 
    audiomixer name="audiomixer" ! autoaudiosink 

Allerdings spielt es Ströme nacheinander, nicht parallel. Weiß jemand, was hier geändert werden sollte, um Streams gleichzeitig abspielen zu können?

Ps: die Darstellung dieser Pipeline visualisiert Anbringen:

Antwort

0

Überraschenderweise - die Reihenfolge der Quellen in der Pipeline keine Rolle spielt - nach einer leichten Modifikation der Pipeline und Anordnen der Quelle mit „größer“ -Rahmen auf der ersten Platz konnte ich das Ergebnis wie erwartet erhalten:

gst-launch-1.0 -ev \ 
    filesrc name="src1" location=$FILE1 \ 
    ! decodebin name="decodebin1" ! queue ! videoscale ! capsfilter caps="video/x-raw,framerate=15/1" ! videoconvert ! videomixer.sink_1 decodebin1. ! queue ! audioconvert name="ac1" \ 
    filesrc name="src0" location=$FILE0 \ 
    ! decodebin name="decodebin0" ! queue ! videoscale ! capsfilter caps="video/x-raw,width=120,framerate=15/1" ! videoconvert ! videomixer.sink_0 decodebin0. ! queue ! audioconvert name="ac0"\ 
    ac0. ! audiomixer.sink_0 \ 
    ac1. ! audiomixer.sink_1 \ 
    videomixer name="videomixer" ! autovideosink \ 
    audiomixer name="audiomixer" ! autoaudiosink \