rtpfunnel does not handle rtcp alone or muxed

Matthew Waters ystreet00 at gmail.com
Tue Oct 27 13:18:15 UTC 2020


The rtpfunnel element is not really designed for funnelling RTCP 
packets.  The rtpfunnel element is explicitly for funnelling rtp data 
and is generally placed before rtpbin on the sending side for sending 
over a single RTP session.

Something like:

rtpfunnel name=f ! rtpbin.send_rtp_sink_0
rtpxxxpay ! f.
rtpxxxpay ! f.

Cheers
-Matt

On 27/10/20 4:08 am, breakthrough wrote:
> We've been wrestling trying to multiplex RTP and RTCP together, or preferably
> multicast and multiplex RTP streams with different SSRC files on one port,
> and the related RTCP streams on another..
>
> In all cases, if we send the RTCP out directly to the udpsink, it works
> (although we can't multiplex RTCP on the same port, as using the same
> host:port with udpsink on each, creates a conflict).
>
> We've narrowed down the problem to rtpfunnel, which apparently does not
> handle rtcp properly (we don't know why, we think it's a timing thing
> related to when the rtpbin.send_rtcp_sink_x is available...and so the pad
> doesn't exist when the rtpfunnel wants it..but not sure..
>
> Here is a simple test case scenario..
>
> We're declaring two funnels, f and g, f we use for rtp traffic, g we use for
> rtcp traffic
> If we send rtcp out directly to udpsink, this works, doesn't stall, and we
> see RTCP over wireshark..
> However, if we send rtcp out through a funnel, it does not work, the rtcp
> never sends onto the network.
>
>
> This works..
>
> gst-launch-1.0 rtpbin name=rtpbin rtpfunnel name=g rtpfunnel name=f
> videotestsrc ! videoconvert ! x264enc ! rtph264pay ! rtpbin.send_rtp_sink_0
> rtpbin.send_rtp_src_0 ! f. rtpbin.send_rtcp_src_0 ! udpsink host=127.0.0.1
> port=5002 sync=false async=false  g. ! udpsink host=127.0.0.1 port=5001
> sync=false async=false f. ! udpsink host=127.0.0.1 port=5000 sync=true
>
> This does not..
>
> GST_DEBUG=5 gst-launch-1.0 rtpbin name=rtpbin rtpfunnel name=g rtpfunnel
> name=f videotestsrc ! videoconvert ! x264enc ! rtph264pay !
> rtpbin.send_rtp_sink_0 rtpbin.send_rtp_src_0 ! f. rtpbin.send_rtcp_src_0 !
> g.  g. ! udpsink host=127.0.0.1 port=5001 sync=false async=false f. !
> udpsink host=127.0.0.1 port=5000 sync=true
>
> The only difference is us piping RTCP out through rtpfunnel.
>
> This was noted as an issue with another user recently, but received no
> response.
>
> I believe the issue lies within rtpfunnel, however, we're open to coming up
> with another approach if viable..
>
> We ultimately want to mux multiple RTP streams on one port and mux the
> related RTCP streams onto another port... all from the same clock.
>
> Using rtpfunnel hangs us up when we push rtcp through the funnel.
>
>
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20201028/4ec6d41a/attachment.sig>


More information about the gstreamer-devel mailing list