Stream from Raspberry Pi to Jetson Nano with Gstreamer

I am trying to stream video from video raspberry pi to Jetson Nano, on the same network.

To launch the video stream I use:

gst-launch-1.0 v4l2src device=/dev/video0  ! video/x-h264,width=640,height=480,framerate=21/1,format=avc,alignment=au  ! h264parse !  rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host= port=8554

Then to view the video, I use:

gst-launch-1.0 -v tcpclientsrc host= port=8554 ! gdpdepay ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert  ! autovideosink sync=false

The video pops up as expected and looks good except every few seconds the video goes grey and only shows the part of the frame where objects in the view are moving. This happens every five or so seconds. Other than that, the video looks great with low latency and good frame rate. I also tried doing the two commands on the same computer, and same effect . . . great image with every few seconds grey frames with only moving objects showing.

When the frame goes grey, gstreamer outputs:

GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, packetization-mode=(string)1, profile-level-id=(string)640028, sprop-parameter-sets=(string)“J2QAKKwrQFAe0A8SJqA=,KO4fLA==”, payload=(int)96, ssrc=(uint)2554533417, timestamp-offset=(uint)1869176880, seqnum-offset=(uint)8669, a-framerate=(string)21

Any advice on tweaking my two commands to remove the glitch would be appreciated

A general usecase is to use RTSP. Please refer to

We don’t have much experience in using TCP, but in your pipeline, you use software decoder avdec_h264. On Jetson Nano, you can use hardware decoder nvv4l2decoder:

gst-launch-1.0 -v tcpclientsrc host= port=8554 ! gdpdepay ! rtph264depay ! h264parse ! nvv4l2decoder ! nvoverlaysink sync=false