Hello again!
I just want to clarify my goal! I want to have the multicast receiver pipelines running on my raspberrys and be able to stream audio whenever I want. So the receiving pipeline should always be ready for an incoming stream (of course only 1 at a time). Unfortunatly the client on the raspberries never gets a EoS Message from the first stream, although I can see the rtcp goodbye message when I peek the traffic with wireshark. So I cannot reset the pipeline. Is it possible to do it with gstreamer only? Here is my test-scenario: I try streaming a test mp3 file 2 times in succession sending pipeline (2 times in succession): gst-launch-1.0.exe -e rtpbin name=rtpbin filesrc location=C:\\test.mp3 ! mpegaudioparse ! rtpmpapay ! application/x-rtp,clock-rate=(int)90000,payload=(int)14 \ ! rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! udpsink host=239.192.55.1 port=4000 rtpbin.send_rtcp_src_1 ! udpsink host=239.192.55.1 port=4001 sync=false async=false multicast receiver python script: #!/usr/bin/python import gi gi.require_version("Gst","1.0") from gi.repository import Gst as gst from gi.repository import Gtk as gtk from gi.repository import GObject class Main: def bus_cb(self,bus, message, user_data): mstruct = message.get_structure() print " message: " + mstruct.to_string() return True def pad_added_cb(self,rtpbin, new_pad, depay): print "pad added!" sinkpad= gst.Element.get_static_pad(depay,'sink') lres = gst.Pad.link(new_pad,sinkpad) def __init__(self): gst.debug_set_active(True) gst.debug_set_default_threshold(3) GObject.threads_init() gst.init(None) self.pipeline = gst.Pipeline() self.udpsrc = gst.ElementFactory.make("udpsrc", "rtpsrc") self.udpsrc.set_property("address","239.192.55.1") self.udpsrc.set_property("auto-multicast", True) self.udpsrc.set_property("port", 4000) audioCaps = gst.Caps.from_string("application/x-rtp,clock-rate=90000,encoding-name=MPA,media=audio,channels=1,payload=14") self.udpsrc.set_property("caps",audioCaps) self.rtcpsrc = gst.ElementFactory.make("udpsrc", "rtcpsrc") self.rtcpsrc.set_property("address","239.192.55.1") self.rtcpsrc.set_property("auto-multicast", True) self.rtcpsrc.set_property("port", 4001) rtcpCaps = gst.Caps.from_string("application/x-rtcp") self.rtcpsrc.set_property("caps",rtcpCaps) self.rtpbin = gst.ElementFactory.make("rtpbin","rtpbin") self.rtpmpadepay = gst.ElementFactory.make("rtpmpadepay","rtpmpadepay") self.mpegaudioparse = gst.ElementFactory.make("mpegaudioparse","mpegaudioparse") self.mad = gst.ElementFactory.make("mad","mad") self.audioconvert = gst.ElementFactory.make("audioconvert","audioconvert") self.autoaudiosink = gst.ElementFactory.make("alsasink","alsasink") self.autoaudiosink.set_property("sync",False) self.autoaudiosink.set_property("async",False) self.bus = self.pipeline.get_bus() self.bus.add_watch(1,self.bus_cb,None) self.pipeline.add(self.udpsrc) self.pipeline.add(self.rtcpsrc) self.pipeline.add(self.rtpbin) self.pipeline.add(self.rtpmpadepay) self.pipeline.add(self.mpegaudioparse) self.pipeline.add(self.mad) self.pipeline.add(self.audioconvert) self.pipeline.add(self.autoaudiosink) srcpad = gst.Element.get_static_pad(self.udpsrc,'src') sinkpad = gst.Element.get_request_pad(self.rtpbin,'recv_rtp_sink_0') lres=gst.Pad.link(srcpad,sinkpad) srcpad = gst.Element.get_static_pad(self.rtcpsrc,'src') sinkpad = gst.Element.get_request_pad(self.rtpbin,'recv_rtcp_sink_0') lres=gst.Pad.link(srcpad,sinkpad) self.rtpbin.connect('pad_added', self.pad_added_cb, self.rtpmpadepay) self.rtpmpadepay.link(self.mpegaudioparse) self.mpegaudioparse.link(self.mad) self.mad.link(self.audioconvert) self.audioconvert.link(self.autoaudiosink) self.pipeline.set_state(gst.State.PLAYING) start=Main() gtk.main() print "End" python script output: message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PLAYING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstUDPSrc\)\ rtpsrc", object=(GstTask)"\(GstTask\)\ rtpsrc:src"; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstUDPSrc\)\ rtpsrc", object=(GstTask)"\(GstTask\)\ rtpsrc:src"; message: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstUDPSrc\)\ rtcpsrc", object=(GstTask)"\(GstTask\)\ rtcpsrc:src"; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstUDPSrc\)\ rtcpsrc", object=(GstTask)"\(GstTask\)\ rtcpsrc:src"; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_PLAYING; message: GstMessageNewClock, clock=(GstClock)"\(GstSystemClock\)\ GstSystemClock"; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PLAYING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_PLAYING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_NULL, new-state=(GstState)GST_STATE_READY, pending-state=(GstState)GST_STATE_PLAYING; message: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_CREATE, owner=(GstElement)"\(GstRtpJitterBuffer\)\ rtpjitterbuffer0", object=(GstTask)"\(GstTask\)\ task2"; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_READY, new-state=(GstState)GST_STATE_PAUSED, pending-state=(GstState)GST_STATE_PLAYING; message: GstMessageStateChanged, old-state=(GstState)GST_STATE_PAUSED, new-state=(GstState)GST_STATE_PLAYING, pending-state=(GstState)GST_STATE_VOID_PENDING; message: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstRtpJitterBuffer\)\ rtpjitterbuffer0", object=(GstTask)"\(GstTask\)\ rtpjitterbuffer0:src"; pad added! message: GstMessageStreamStart, group-id=(uint)0; message: GstMessageStreamStatus, type=(GstStreamStatusType)GST_STREAM_STATUS_TYPE_ENTER, owner=(GstElement)"\(GstAlsaSink\)\ alsasink", object=(GThread)NULL; message: GstMessageTag, taglist=(taglist)"taglist\,\ audio-codec\=\(string\)\"MPEG\\\ 1\\\ Audio\\\,\\\ Layer\\\ 3\\\ \\\(MP3\\\)\"\,\ nominal-bitrate\=\(uint\)128000\,\ has-crc\=\(boolean\)false\,\ channel-mode\=\(string\)joint-stereo\;"; message: GstMessageTag, taglist=(taglist)"taglist\,\ audio-codec\=\(string\)\"MPEG\\\ 1\\\ Audio\\\,\\\ Layer\\\ 3\\\ \\\(MP3\\\)\"\,\ nominal-bitrate\=\(uint\)128000\,\ has-crc\=\(boolean\)false\,\ channel-mode\=\(string\)joint-stereo\,\ minimum-bitrate\=\(uint\)128012\,\ bitrate\=\(uint\)127981\,\ maximum-bitrate\=\(uint\)128012\;"; ---- [hidden email] schrieb ---- > > Hello dear devs! > > First of all I want to thank you for your work. Gstreamer is awesome and > very handy streaming tool. > > I am trying to build a pipeline for a mpa encoded rtp multicast stream. > The goal is to stream from a server to many raspberrys. On the server i > run gst 1.8.1, on the pi 1.2.0. > > I would like to change the sending sources while the receiving stream is > running. > First I stream the mic input, which works fine. > But then i want to stream an mp3 file ant then i get no output. I need > to restart the receiving pipeline in order to get a sound output for the > second stream. > > It does not matter if I stream mic or mp3 first. > > streaming mic pipe: > > gst-launch-1.0.exe rtpbin name=rtpbin autoaudiosrc > ! audioconvert ! lamemp3enc ! rtpmpapay ! application/x-rtp, > clock-rate=(int)9000 > 0,payload=(int)14 ! rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! > udpsink host= > 239.192.55.1 port=4000 > > streaming file pipe: > > gst-launch-1.0.exe rtpbin name=rtpbin filesrc locat > ion=C:\\test.mp3 ! mpegaudioparse ! rtpmpapay ! application/x-rtp, > clock-rate=(in > t)90000,payload=(int)14 ! rtpbin.send_rtp_sink_1 rtpbin.send_rtp_src_1 ! > udpsink > host=239.192.55.1 port=4000 > > receiving pipe: > > gst-launch-1.0.exe rtpbin name=rtpbin udpsrc multic > ast-group=239.192.55.1 auto-multicast=true port=4000 > caps=application/x-rtp,cloc > k-rate=(int)90000,encoding-name=(string)MPA,media=(string)audio, > payload=14 ! rtp > bin.recv_rtp_sink_0 rtpbin. ! rtpmpadepay ! mpegaudioparse ! mad ! > audioconvert > ! autoaudiosink > > here is the output of the receiving pipeline: > > Setting pipeline to PAUSED ... > Pipeline is live and does not need PREROLL ... > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0. > GstProxyPad:proxypad1: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_src: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: > caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > Setting pipeline to PLAYING ... > New clock: GstSystemClock > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0. > GstProxyPad:proxypad1: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_src: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:src_4066390227: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: > caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_4066390227_14: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14 > /GstPipeline:pipeline0/GstRtpMPADepay:rtpmpadepay0.GstPad:src: caps = > audio/mpeg, mpegversion=(int)1 > /GstPipeline:pipeline0/GstMpegAudioParse:mpegaudioparse0.GstPad:sink: > caps = audio/mpeg, mpegversion=(int)1 > /GstPipeline:pipeline0/GstRtpMPADepay:rtpmpadepay0.GstPad:sink: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_4066390227_14.GstProxyPad:proxypad2: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstMpegAudioParse:mpegaudioparse0.GstPad:src: > caps = audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)1, > layer=(int)3, rate=(int)44100, channels=(int)2, parsed=(boolean)true > /GstPipeline:pipeline0/GstMad:mad0.GstPad:sink: caps = audio/mpeg, > mpegversion=(int)1, mpegaudioversion=(int)1, layer=(int)3, > rate=(int)44100, channels=(int)2, parsed=(boolean)true > /GstPipeline:pipeline0/GstMad:mad0.GstPad:src: caps = audio/x-raw, > format=(string)S32LE, layout=(string)interleaved, rate=(int)44100, > channels=(int)2, channel-mask=(bitmask)0x0000000000000003 > /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:src: caps = > audio/x-raw, layout=(string)interleaved, rate=(int)44100, > format=(string)S16LE, channels=(int)2, > channel-mask=(bitmask)0x0000000000000003 > /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink. > GstProxyPad:proxypad0: caps = audio/x-raw, layout=(string)interleaved, > rate=(int)44100, format=(string)S16LE, channels=(int)2, > channel-mask=(bitmask)0x0000000000000003 > /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0/GstAlsaSink: > autoaudiosink0-actual-sink-alsa.GstPad:sink: caps = audio/x-raw, > layout=(string)interleaved, rate=(int)44100, format=(string)S16LE, > channels=(int)2, channel-mask=(bitmask)0x0000000000000003 > /GstPipeline:pipeline0/GstAutoAudioSink:autoaudiosink0.GstGhostPad:sink: > caps = audio/x-raw, layout=(string)interleaved, rate=(int)44100, > format=(string)S16LE, channels=(int)2, > channel-mask=(bitmask)0x0000000000000003 > /GstPipeline:pipeline0/GstAudioConvert:audioconvert0.GstPad:sink: caps = > audio/x-raw, format=(string)S32LE, layout=(string)interleaved, > rate=(int)44100, channels=(int)2, > channel-mask=(bitmask)0x0000000000000003 > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0. > GstProxyPad:proxypad1: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_src: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:src_4066390227: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: > caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > src_14: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_4066390227_14: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14 > /GstPipeline:pipeline0/GstRtpMPADepay:rtpmpadepay0.GstPad:sink: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_4066390227_14.GstProxyPad:proxypad2: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer1.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)3533670621 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux1.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)3533670621 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer1.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)3533670621 > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0. > GstProxyPad:proxypad1: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_src: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:src_4066390227: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: > caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_3533670621_14: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_3533670621_14.GstProxyPad:proxypad3: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0. > GstProxyPad:proxypad1: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_src: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:src_4066390227: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: > caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer2.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4246170506 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux2.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4246170506 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer2.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4246170506 > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0. > GstProxyPad:proxypad1: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_src: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:src_4066390227: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: > caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_4246170506_14: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad: > recv_rtp_src_0_4246170506_14.GstProxyPad:proxypad4: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = > application/x-rtp, clock-rate=(int)90000, encoding-name=(string)MPA, > media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0. > GstProxyPad:proxypad1: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_src: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:src_4066390227: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:src: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpPtDemux:rtpptdemux0.GstPad: > sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14, > ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpJitterBuffer: > rtpjitterbuffer0.GstPad:sink: caps = application/x-rtp, > clock-rate=(int)90000, encoding-name=(string)MPA, media=(string)audio, > payload=(int)14, ssrc=(uint)4066390227 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSsrcDemux:rtpssrcdemux0. > GstPad:sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin/GstRtpSession:rtpsession0.GstPad: > recv_rtp_sink: caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > /GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: > caps = application/x-rtp, clock-rate=(int)90000, > encoding-name=(string)MPA, media=(string)audio, payload=(int)14 > handling interrupt. > Interrupt: Stopping pipeline ... > Execution ended after 0:01:19.274019564 > Setting pipeline to PAUSED ... > Setting pipeline to READY ... > Setting pipeline to NULL ... > Freeing pipeline ... > > > I also tried making the receiving side with py-gst. First stream plays > fine. And the second stream plays very distorted and following message > is displayed: > > GStreamer-CRITICAL **: gst_util_uint64_scale_int: assertion `denom > 0' > failed > > If i stream the first stream again it plays fine as well. I think there > may be a problem with the clock jumping. > > Do you know a way to make this work? > > Kind regards gstreamer-devel mailing list [hidden email] https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |