2016-03-21 10 views
0

Ich baue eine Pipeline, wo ich mehrere Videos (2 in diesem Fall) in einen Muxer multistreamscimux muxen muss. Beim Erstellen der Pipeline wird eine fehlerhafte Pipeline ausgelöst: unerwartete Referenz.gstreamer mux verursacht fehlerhafte Pipeline

Das folgende PNG wird aus der Pipeline generiert, die ein einzelnes Video muxen. Ich versuche, ein Rohr zu beginnen, das von rtpbin beginnt, das in multistreamrtpscimux.rtpsrc_2 geht. Aber ich denke, dass ich einen Fehler in der Art mache, wie ich die Mux-Quelle und die Sink-Pads spezifiziere. Ich habe die in here erwähnten versucht, aber konnte es nicht auflösen. Jede Hilfe wird geschätzt.

enter image description here

Hier ist die eigentliche Pipeline, die ich zu bauen versuche.

gst-launch-1.0 -v rtpbin name=rtpbin_0 videotestsrc pattern=ball is-live=true 
name=vidsource_0 ! video/x-raw, framerate=30/1, width=180, height=90 ! textoverlay 
text="" valignment=4 ! x264enc aud=false name=videoenc_0 ! video/x-h264, 
profile=baseline, stream-format=byte-stream,alignment=au ! rtph264pay mtu=1256 
pt=109 ! multistreamrtpmux name=multirtpmux_0 csis-string="22446601" 
vid-headerext-id=1 vid-header-extension-string="04" frame-marking-headerext-id=2 
frame-marking-header-extension-string="48" ! msrtpscimux.rtpsink_0 
multistreamrtpscimux name=msrtpscimux ! rtpbin name=rtpbin_1 videotestsrc pattern=ball 
is-live=true name=vidsource_1 ! video/x-raw, framerate=30/1, width=180, height=90 
! textoverlay text="" valignment=4 ! x264enc aud=false name=videoenc_1 ! 
video/x-h264, profile=baseline, stream-format=byte-stream,alignment=au ! 
rtph264pay mtu=1256 pt=109 ! multistreamrtpmux name=multirtpmux_1 
csis-string="22446601" vid-headerext-id=1 vid-header-extension-string="04" 
frame-marking-headerext-id=2 frame-marking-header-extension-string="48" ! 
multirtpmux_1.rtpsrc msrtpscimux.rtpsink_1 msrtpscimux. msrtpscimux.rtpsrc ! 
netsim drop-probability=0.0 delay-probability=0.0 ! 
application/x-rtp ! rtpbin_0.send_rtp_sink_0 rtpbin_0.send_rtp_src_0 ! 
multisocketudpsink name=videosink rtpbin_0.send_rtcp_src_0 ! 
multisocketudpsink name=rtcpsink sync=false async=false 

Antwort

0

konnte ich dieses Problem beheben, indem die sinkpads des Mux Element Angabe ich in jedem der Teil verbinden möchten und dann schließlich das Mux-Element mit seinen Parametern angeben. wie unten ein kurzes Beispiel .. für

[videotestsrc]->[multirtpmux]--[sinkpad_0    ] 
           |  msrtpscimux  | 
[videotestsrc]->[multirtpmux]--[sinkpad_1    ] 

Für die oben Anschluss verwendet I

videotestsrc pattern=ball ! multistreamrtpmux name=multirtpmux_0 ! \ 
msrtpscimux.rtpsink_0 videotestsrc pattern=red ! \ 
multistreamrtpmux name=multirtpmux_1 ! msrtpscimux.rtpsink_3 \ 
multistreamrtpscimux name=msrtpscimux 

Hinweis: I Rohr zwischen msrtpscimux.rtpsink_3 multistreamrtpscimux name = msrtpscimux, um anzuzeigen, verwenden nicht, dass ich verwende ein anderer Teilstrom