Hello fellow developers,
we are working on a camera system which dishes out ~ 120Mbits/s raw data as UDP/RTP stream. We have connected the camera system and receiving devices P2P with a single ethernet cable. When we try to pick up that stream from a regular device(laptop or desktop) the video is flawless. But as we try to receive the stream from a Jetson device, the video suffers heavily from interlacing especially when there are moving objects.
Example image:
In all cases we have used the base Gstreamer pipeline below to recieve the stream:
gst-launch-1.0 -v udpsrc uri=udp://192.168.1.103:5555 caps="application/x-rtp,
media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW,
sampling=(string)YCbCr-4:2:2, depth=(string)8, width=(string)1920, height=(string)1080"
! rtpvrawdepay ! queue ! videoconvert ! xvimagesink
We have confirmed that the issue only appears when Jetson devices try to handle RAW data. By streaming laptop camera to Jetson, first RAW then JPEG encoded, we have observed the same issue on RAW stream but not on JPEG encoded one.
Laptop Camera Stream Recieved On Jetson TX2:
- RAW ~ 36 Mbits/s β Interlacing
- JPEG encoded ~ 12 Mbits/s β No Interlacing
Laptop Camera Stream Recieved On Jetson Nano:
- RAW ~ 36 Mbits/s β Interlacing
- JPEG encoded ~ 12 Mbits/s β No Interlacing
Laptop Camera Stream Recieved On Desktop PC:
- RAW ~ 36 Mbits/s β No Interlacing
- JPEG encoded ~ 12 Mbits/s β No Interlacing
We have also experimented with gstreamer plugins such as rtpjitterbuffer
, deinterlace
and tried changing frame format(YCbCr-4:2:2, YCbCr-4:2:0, RGBA, RGB) on streaming device. But no avail. Our suspicion is that the gstreamer plugin rtpvrawdepay
does not function correctly on Jetson devices. Which causes some udp/rtp packets to be dropped or misordered.
Could you please assist ?
Setup:
- Jetson TX2
- Jetpack 4.4
- Gstreamer 1.14.5
- Jetson Nano
- Jetpack 4.4
- Gstreamer 1.14.5