RTP dynamic bitrate depending on network condition

justin junione1997 at gmail.com
Wed Feb 13 03:10:32 UTC 2019


hello there !

I am currently building a project where we aim to:

"Live stream a drone video over 4G network in real time (~500 ms Latency)
and broadcast to a website".

The process is as follow:

*Gstreamer*[HDMI video feed -> H264 encode -> RTP -> UDP sink] --->
*Kurento*[rtp -> webRTC] --> browser

We successfully live streamed over WAN via ethernet and achieved required
latency. The result was good.
However when testing with 4G dongle (for real testing scenario), we are
facing the issues with UDP streams being halted due to poor network
condition depending on the location.

My question is: Is there a way to dynamically change the target bitrate of
omxh264encoder by checking the bandwidth of the sender? Would this require
writing a c++ application rather than a commandline pipeline? 

This is my current pipeline:

'!', 'video/x-raw,width=1920,height=1080,framerate=30/1',
'!', 'videoconvert',
'!', 'omxh264enc control-rate=1, bitrate=800000',
'!', 'rtph264pay','config-interval=1','pt=96',
'!', 'udpsink',ipStr,portStr,'-v']; 


Another question: It seems that Gstreamer stops streaming completely if the
network condition is too poor. Is there a way for Gstreamer to simply pause
and wait when the network is bad, and continue streaming when the signal
gets better? 


Thanks guys !



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


More information about the gstreamer-devel mailing list