streaming many h264 files over udpsink, problem with rtpjitterbuffer

v934 chcepogadowski at gmail.com
Tue Mar 31 18:50:09 UTC 2020


I'm streaming a sequence of mp4 h264 files using udpsink to a multicast
group, on the receiver side I'm using rtpjitterbuffer (without it the stream
is choppy) and waylandsink. The streams play really smooth at first, but
after some longer time there is a growing memory usage on the receiver side,
and the FPS drops drastically (although on some videos the speed is back).

I have noticed that it is even worse if the sending side pauses streaming
mid-file and begins streaming another file, then weird glitches happen and
the stream hangs for a few seconds with lots of messages about backwards
timestamps or decreasing timestamps from rtpjitterbuffer. When it hangs
there are multiple warnings of:
 WARN                 default
gstrtpbuffer.c:1296:gst_rtp_buffer_ext_timestamp: Cannot unwrap, any
wrapping took place yet. Returning 0 without updating extended timestamp.


I think the problem is in the fact that I'm streaming many files one by one,
I tried using multifilesink but it didnt work (qtdemux throws error about
moov) and I  cannot hardcode the files to one big because I need to stream
them dynamically.
The streaming side is using gst-launch (althought I can port it to a
dedicated c++ app):
gst-launch-1.0 filesrc location="filename.mp4" ! qtdemux ! h264parse
config-interval=-1 ! video/x-h264,stream-type=byte-stream ! rtph264pay pt=96
config-interval=-1 ! udpsink host=238.0.0.1 multicast-iface=eth0
force-ipv4=true port=1234

The receiving side is made in C++ as it also has other functions, but for
playing the stream it's just a basic pipeline with nothing else:
udpsrc uri=udp://238.0.0.1:1234 caps = "application/x-rtp" ! rtpjitterbuffer
! rtph264depay ! queue ! decodebin ! waylandsink

Is there any way I can reset the stream everytime I start a new file to not
cause any problems? Can I somehow capture on the receiving side that a new
stream has started and the previous one should be dropped? Is there anything
I can do about it?




--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list