Gstreamer UDP h265 stream with poor network connection

I’m streaming h265 video from the TX2 (R28.2) to a Ubuntu laptop. The network connection between TX2 and laptop is via a point-to-point wifi link. Received video looks great when the wifi signal strength is good, but when the signal strength is bad, the video is very pixelated and/or green. When the signal strength returns to good, the video quality improves to its prior good state.

I realize that a good connection is a very critical prerequisite here, but are there any suggestions on making the following pipelines as robust as possible? Goal is to get highest possible video quality within the available link bandwidth.

Sender (TX2):

gst-launch-1.0 nvcamerasrc fpsRange="30 30" intent=3 ! nvvidconv flip-method=6 ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)I420, framerate=(fraction)30/1' ! omxh265enc control-rate=2 ! 'video/x-h265, stream-format=(string)byte-stream' ! h265parse ! rtph265pay mtu=1400 ! udpsink host=10.10.10.8 port=6554 sync=false async=false

Receiver (Ubuntu laptop):

gst-launch-1.0 udpsrc port=6554 ! application/x-rtp,encoding-name=H265,payload=96 ! rtpjitterbuffer mode=0 drop-on-latency=true latency=200 ! rtph265depay ! h265parse ! queue ! avdec_h265 ! xvimagesink sync=false async=false

Hi,
You can try to set two-pass constant bit rate along with virtual buffer size. Please refer to sample pipelines at

Thanks for the suggestion - there’s not much description in there on what those parameters actually do. Is there some other resource that explains in a bit more detail?

Hi,

Also you can try playing around with the I-Frame interval and the bitrate. The lower the bitrate the lower the required bandwidth but also it affects your image quality so you need to reach a good balance here. In the case of the i-frame interval, it will allow you to recover faster when data is dropped causing the bad/pixelated/green slot smaller.

Best Regards,