one potential issue leading to “choppy” video is that you set your videosink to sync=false. This means that it will spit out any frame as soon as it is received and not consider a regular timing (1/60Hz) or discard frames that arive too late. You might consider adding timestamps to the frames (e.g. in the v4l2src with do-timestamp=true) and setting your sink to sync=true.
Also you are using some software-plugins that could be replaced with hardware-accelerated plugins, like: videoconvert -> nvvidconv, avdec_h264 -> omxh264dec, xvimagesink -> nvhdmioverlaysink
For comparison, I have used the following pipelines:
gst-launch-1.0 udpsrc port=5000 ! $VCAPS ! rtpjitterbuffer latency=1000 ! rtpmp2tdepay ! tsdemux ! h264parse ! omxh264dec ! nvhdmioverlaysink -vvv -e
gst-launch-1.0 v4l2src do-timestamp=true ! 'video/x-raw,format=I420, width=1920, height=1080, framerate=60/1' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=I420, width=1920, height=1080, framerate=60/1' ! omxh264enc ! h264parse ! mpegtsmux ! rtpmp2tpay ! udpsink port=5000 host=192.168.0.2 -e -vvv
Btw: for quality issues with the encoding: look at the bitrate parameter of omxh264enc
Hope that helps,