Problem sending high-bandwidth raw video over localhost UDP (rtpvrawpay and udpsink)

Michael Franzl office at michaelfranzl.com
Fri Mar 30 15:53:41 UTC 2018


Arjen Veenhuizen wrote
> You are actually flooding the (small) UDP buffers at these
> bandwidths.Increasing the buffer size will work-around your problem:

It didn't improve the problem. Could you provide a working example pipeline?

Here are the two pipelines with buffer-size added (I tried various buffer
sizes):

Sender:


> gst-launch-1.0 -v \
> videotestsrc pattern=ball flip=1 is-live=1 ! \
> video/x-raw,format=BGRA,width=1280,height=720,pixel-aspect-ratio=1/1,interlace-mode=progressive,framerate=30/1
> ! \
> rtpvrawpay mtu=65000 chunks-per-frame=1 ! queue ! udpsink host=127.0.0.1
> buffer-size=100000000 port=50000 sync=false async=false

Receiver:


> gst-launch-1.0 -v \
> udpsrc port=50000
> caps="application/x-rtp,clock-rate=90000,encoding-name=RAW,sampling=(string)BGRA,width=(string)1280,height=(string)720"
> buffer-size=1000000000 ! queue ! rtpvrawdepay ! videoconvert !
> autovideosink

Using Wireshark to inspect traffic, I can see that each frame is split into
approx. 41 UDP packets with approx. 65040 bytes each, sent approx. 30us from
each other.

Still, what perplexes me is that in above sending pipeline, setting
chunks-per-frame=1 works, but chunks-per-frame=100 gives the "failed to
allocate 34GB" error message.



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


More information about the gstreamer-devel mailing list