Delay at the beginning of UDP/RTP streaming

Miloš Selečéni milos.seleceni at comprimato.com
Wed Jun 22 08:08:56 UTC 2016


Hi I've basic (server/client) pipeline for video streaming based on UDP/RTP
protocols. Things are working but at the beginning I've got huge stall at
the client side.

There are two options how you can start your connection.

1) start the server first, then start your client   [works OK]

2) start the client first then start server [big stall at the beginning]

In first option there is no stall when client connect to the server at the
time when the server is already streaming.

In second option there is few seconds stall at client side. Even though
(according to tcpdump and Wireshark) UDP packets are received at client
side from the very beginning. I found out that this happens when the
jitterbuffer starts reseting

-- jitterbuffer 3009 pending timers > 3000 - resetting

after few jitterbuffer resets It either recover and continue normaly
or freeze and reseting only

Do you have any idea why this is happening ?


My pipelines:

SERVER:

DEST=172.22.10.57

VSOURCE_3="filesrc location=... ! qtdemux ! h264parse ! avdec_h264"

VENC_ts="cmptoj2kenc ! mpegtsmux ! rtpmp2tpay"

VRTPSINK="udpsink port=5000 host=$DEST ts-offset=$VOFFSET name=vrtpsink"

VRTCPSINK="udpsink port=5001 host=$DEST sync=false async=false
name=vrtcpsink"
VRTCPSRC="udpsrc port=5005 name=vrtpsrc"VENC_ts="cmptoj2kenc ! mpegtsmux !
rtpmp2tpay"

./gst-launch-1.0 --gst-debug=2,cmptoj2kenc:5 rtpbin name=rtpbin \

$VSOURCE_3 ! $VENC_ts ! rtprtxqueue ! rtpbin.send_rtp_sink_0 \

rtpbin.send_rtp_src_0 ! $VRTPSINK \

rtpbin.send_rtcp_src_0 ! $VRTCPSINK \
$VRTCPSRC ! rtpbin.recv_rtcp_sink_0


CLIENT:

DEST=172.22.10.85

VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)MP2T-ES,payload=(int)33"

VIDEO_DEC_ts="rtpmp2tdepay ! tsdemux ! cmptoj2kdec colorspace=yuv"
VIDEO_SINK="videoconvert ! autovideosink sync=false"
LATENCY=200

./gst-launch-1.0 --gst-debug=2,cmptoj2kdec:5 rtpbin name=rtpbin
buffer-mode=buffer latency=$LATENCY    \
    udpsrc caps=$VIDEO_CAPS port=5000 buffer-size=2000000 !
rtpbin.recv_rtp_sink_0                     \
      rtpbin. ! $VIDEO_DEC_ts ! $VIDEO_SINK
                           \
    udpsrc port=5001 ! rtpbin.recv_rtcp_sink_0
                            \
      rtpbin.send_rtcp_src_0 ! udpsink port=5005 host=$DEST sync=false
async=false

*Miloš Selečéni*

*GPU Developer | Comprimato Systems s.r.o.*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20160622/b35a94fd/attachment-0001.html>


More information about the gstreamer-devel mailing list