RTP and retransmission: way too many rtx requests

Arjen Veenhuizen arjen.veenhuizen at tno.nl
Sat Nov 21 12:04:07 PST 2015


Platform: Ubuntu 14.04, x64, GStreamer GIT Master

So with the help of [1] and [2] I have created my own GStreamer RTP server
and client with retransmission in Python using rtprtxsend and rtprtxreceive
elements in a bin within rtpbin. I am streaming an MPEG2TS in RTP over UDP
on localhost.

Server pipeline: http://imgur.com/lYprc7v
Client pipeline: http://imgur.com/f5xwMrn

Source: a named pipe which is being fed via an ffmpeg process which is
generating a proper MPEG2TS file with video in H264 format (~5000kbps) at
real-time speed (-re). 
Latency on rtpbin (RX and TX for that matter) are set to 500 msec, and
"do-retransmission" is set to TRUE on the RX rtpbin.

Streaming works quite well, but I see A LOT of retransmission requests and
responses on the receiver and sender side respectively.

rtprtxreceive reports the following stats just shortly after starting the
stream:

And this increases rapidly.

Also, rtpjitterbuffer is complaining a lot about duplicate packets and a
high send-nack-count:

All tests are performed on localhost, so it cannot be a network issue. For
that matter, I have already increased my linux send and receive network
buffers. 

My ultimate goal is to stream 300+ Mbps RTP on a local network. It should be
doable, but right now my pipelines already drown in retransmissions even at
5 Mbps. Any udeas?

Another question on the side: when I use an MPEG2TS file as source on the
filesrc element, no clock sync is achieved (even when using tsparse) and the
pipeline is running as fast as possible. Whatever I try, I cannot get it to
sync on the clock. Of course I can demux and mux the stream, but that will
screw up my timing information. Any thoughts?

And just one note to self and for anyone else coming across this post. If
you want to set the payload-type-map property of rtprtxsend and
rtprtxreceive in Python, use: 



[1]
https://github.com/gstreamer-mirror/gst-plugins-good/blob/master/tests/examples/rtp/server-rtpaux.c
[2]
https://github.com/gstreamer-mirror/gst-plugins-good/blob/master/tests/examples/rtp/client-rtpaux.c




--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/RTP-and-retransmission-way-too-many-rtx-requests-tp4674589.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.


More information about the gstreamer-devel mailing list