Low FPS problem with 4K encoding in Jetson Tx2

HI All,

I am trying to stream 4K video with a Jetson TX2 board. This board will be adapted to a drone over 5G network. When I tested gstreamer pipeline on the Jetson TX2 developer board, there were no problem to play 4K 30 FPS and to stream 4K RTP 30 FPS. The picture has a good quality when I stream 4K video with bandwidth 10Mbps.

However, the Jetson TX2 carrier board, which was brought from a drone service provider, displays only 18-20 FPS no matter what method it takes. Also, the frame breaks a lot when transmitted over the network. The carrier board has one TC358840 chip. I also tested with Magewell USB Capture HDMI 4K Plus (It is USB3 type encoder).

The kernel version of Jetson TX2 developer board is lastest, but the Jetson TX2 carrier board has 28.2.1 kernel and a gstreamer version is 1.8.3. The best choice is to upgrade the kernel of the carrier board and install the corresponding chipset driver, but we can’t do it right away. I searched the related posts many times and tried them, but I couldn’t solve the problem. I want to know what should I do more before upgrading the kernel.

The carrier board :

  • cat /etc/nv_tegra_release

R28 (release), REVISION: 2.1, GCID: 11272647, BOARD: t186ref, EABI: aarch64, DATE: Thu May 17 07:29:06 UTC 2018

- 3840x2160 : 18~20 FPS

GST_DEBUG=“GST_TRACER:7” GST_TRACERS=“framerate” gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, width=3840, height=2160, framerate=30/1, format=I420’ ! nvvidconv ! ‘video/x-raw(memory:NVMM), width=3840, height=2160, format=(string)I420, framerate=(fraction)30/1’ ! nvoverlaysink sync=false

0:00:00.063211315 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x5fb300 (cpuusage)
0:00:00.063290548 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x5fb240 (graphic)
0:00:00.063322708 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x5fb180 (proctime)
0:00:00.063353845 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x5fb0c0 (interlatency)
0:00:00.063380501 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x5fb000 (scheduletime)
0:00:00.063404341 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x42bef0 (framerate)
0:00:00.063429493 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x42be30 (queuelevel)
0:00:00.063460854 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x42bd70 (bitrate)
0:00:00.063487094 3096 0x601d80 DEBUG GST_TRACER gsttracer.c:163:gst_tracer_register: update existing feature 0x42bcb0 (buffer)
0:00:00.063865242 3096 0x601d80 TRACE GST_TRACER gsttracerrecord.c:110:gst_tracer_record_build_format: framerate.class, pad=(structure)“scope,\ type=(GType)NULL,\ related-to=(GstTracerValueScope)GST_TRACER_VALUE_SCOPE_PAD;”, fps=(structure)“value,\ type=(GType)NULL,\ description=(string)"Frames\\ per\\ second",\ flags=(GstTracerValueFlags)GST_TRACER_VALUE_FLAGS_AGGREGATED,\ min=(uint)0,\ max=(uint)4294967295;”;
0:00:00.063974652 3096 0x601d80 DEBUG GST_TRACER gsttracerrecord.c:124:gst_tracer_record_build_format: new format string: framerate, pad=(string)%s, fps=(uint)%u;
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
0:00:01.387161423 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)16;
0:00:01.387284945 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)16;
0:00:01.387354449 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)16;
0:00:01.387405394 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)16;
0:00:02.387528549 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)19;
0:00:02.387621254 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)19;
0:00:02.387657990 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)19;
0:00:02.387689607 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)19;
0:00:03.387774080 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)19;
0:00:03.387847297 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)19;
0:00:03.387882753 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)19;
0:00:03.387913314 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)19;
0:00:04.387016856 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)19;
0:00:04.387103353 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)19;
0:00:04.387130137 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)19;
0:00:04.387150777 3096 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)19;

- 2560x1440 : 30 FPS

0:00:01.725192255 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)39;
0:00:01.725283775 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)38;
0:00:01.725318656 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)39;
0:00:01.725346368 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)38;
0:00:02.725432261 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)30;
0:00:02.725522342 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)30;
0:00:02.725554502 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)30;
0:00:02.725581222 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)30;
0:00:03.724669904 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)30;
0:00:03.724757200 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)30;
0:00:03.724788593 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)30;
0:00:03.724815697 3112 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)30;

- 1920x1080 : 30 FPS

0:00:01.487055944 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)34;
0:00:01.487242536 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)34;
0:00:01.487350217 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)34;
0:00:01.487445769 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)34;
0:00:02.487651169 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)30;
0:00:02.487837249 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)30;
0:00:02.487937250 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)30;
0:00:02.488029122 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)30;
0:00:03.487216178 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)30;
0:00:03.487394099 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)30;
0:00:03.487489971 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)30;
0:00:03.487580595 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)30;
0:00:04.486795934 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)v4l2src0_src, fps=(uint)30;
0:00:04.486989119 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter1_src, fps=(uint)30;
0:00:04.487110911 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)capsfilter0_src, fps=(uint)30;
0:00:04.487197503 3154 0x601d80 TRACE GST_TRACER :0:: framerate, pad=(string)nvvconv0_src, fps=(uint)30;

- 3840x2160 RTP Streaming option :

gst-launch-1.0 v4l2src -vvv device=/dev/video0 do-timestamp=true ! nvvidconv ! ‘video/x-raw(memory:NVMM), width=3840, height=2160, format=I420, framerate=30/1’ ! omxh264enc control-rate=2 bitrate=10000000 insert-sps-pps=true insert-aud=true ! ‘video/x-h264, stream-format=(string)byte-stream’ ! h264parse ! rtph264pay mtu=1316 ! udpsink host=192.168.1.8 port=8554 async=false sync=false

- Network performance is not enough : The Jetson TX2 dev kit shows 924 Mbits/sec.

nvidia@tegra-ubuntu:~$ iperf3 -c x.x.x.x -u -b 1G -t 300 -l 1316
Connecting to host x.x.x.x, port 5201
[ 4] local x.x.x.x port 53004 connected to x.x.x.x port 5201
[ ID] Interval Transfer Bandwidth Total Datagrams
[ 4] 0.00-1.00 sec 61.9 MBytes 519 Mbits/sec 49283
[ 4] 1.00-2.00 sec 66.8 MBytes 560 Mbits/sec 53193
[ 4] 2.00-3.00 sec 62.9 MBytes 527 Mbits/sec 50087
[ 4] 3.00-4.00 sec 67.7 MBytes 568 Mbits/sec 53971
[ 4] 4.00-5.00 sec 63.6 MBytes 533 Mbits/sec 50644
[ 4] 5.00-6.00 sec 69.6 MBytes 583 Mbits/sec 55421
[ 4] 6.00-7.00 sec 72.4 MBytes 607 Mbits/sec 57666
[ 4] 7.00-8.00 sec 72.8 MBytes 611 Mbits/sec 57996
[ 4] 8.00-9.00 sec 68.2 MBytes 572 Mbits/sec 54346
[ 4] 9.00-10.00 sec 71.1 MBytes 597 Mbits/sec 56666
[ 4] 10.00-11.00 sec 65.8 MBytes 552 Mbits/sec 52421
^C[ 4] 11.00-11.47 sec 32.6 MBytes 584 Mbits/sec 25950


[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 4] 0.00-11.47 sec 775 MBytes 567 Mbits/sec 0.000 ms 0/617644 (0%)
[ 4] Sent 617644 datagrams
iperf3: interrupt - the client has terminated

- /boot/extlinux/extlinux.conf

APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 usb_port_owner_info=2 usbcore.usbfs_memory_mb=1024 usbcore.autosuspend=-1 isolcpus=

I also did sudo ./jetson_clocks.sh, sudo nvpmodel -m 0

My questions are;

  1. In Jetson TX2 custom carrier board, 4K local display and 4K RTP streaming do not shows enough FPS(only 18~20).
  2. Network performance is not good. RTP pictures do not show good quality.

What shoud I check??

Any help would be appreciated!

Thanks.

Hi,
Please check if you can reach 4Kp30 with psuedo source:

$ gst-launch-1.0 videotestsrc num-buffers=900 is-live=1 ! video/x-raw,width=320,height=240 ! nvvidconv ! 'video/x-raw(memory:NVMM),width=3840,height=2160' ! omxh264enc ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=false -v

We can achieve 4Kp30 on default board. Ideally you should observe the same. So the bottleneck may be in the source(v4l2src) or network bandwidth. Does your source support I420? Please check the supported formats via
v4l2-ctl --list-formats-ext.

Thank you for your answer, DaneLLL

Here is the result.

gst-launch-1.0 videotestsrc num-buffers=900 is-live=1 ! video/x-raw,width=320,height=240 ! nvvidconv ! ‘video/x-raw(memory:NVMM),width=3840,height=2160’ ! omxh264enc ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=false -v

nvidia@tegra-ubuntu:~$ gst-launch-1.0 videotestsrc num-buffers=900 is-live=1 ! video/x-raw,width=320,height=240 ! nvvidconv ! ‘video/x-raw(memory:NVMM),width=3840,height=2160’ ! omxh264enc ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=false -v
Setting pipeline to PAUSED …
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = “video/x-raw,\ format=(string)I420,\ width=(int)320,\ height=(int)240,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)1/1,\ interlace-mode=(string)progressive”
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = “video/x-raw,\ format=(string)I420,\ width=(int)320,\ height=(int)240,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)1/1,\ interlace-mode=(string)progressive”
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)3/4,\ interlace-mode=(string)progressive,\ format=(string)I420”
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)3/4,\ interlace-mode=(string)progressive,\ format=(string)I420”
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4
NvH264MSEncSetCommonStreamAttribute: LevelIdc conformance violation
NvH264MSEncSetCommonStreamAttribute: LevelIdc conformance violation
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:sink: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)3/4,\ interlace-mode=(string)progressive,\ format=(string)I420”
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = “video/x-raw(memory:NVMM),\ width=(int)3840,\ height=(int)2160,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)3/4,\ interlace-mode=(string)progressive,\ format=(string)I420”
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = “video/x-raw,\ format=(string)I420,\ width=(int)320,\ height=(int)240,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)1/1,\ interlace-mode=(string)progressive”
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = “video/x-raw,\ format=(string)I420,\ width=(int)320,\ height=(int)240,\ framerate=(fraction)30/1,\ pixel-aspect-ratio=(fraction)1/1,\ interlace-mode=(string)progressive”
===== MSENC blits (mode: 1) into tiled surfaces =====
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:src: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1”
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1”
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1”
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1”
/GstPipeline:pipeline0/GstOMXH264Enc-omxh264enc:omxh264enc-omxh264enc0.GstPad:src: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1,\ codec_data=(buffer)014240150301000a6742402895a00f0010f901000468ce3c80”
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1,\ codec_data=(buffer)014240150301000a6742402895a00f0010f901000468ce3c80”
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1,\ codec_data=(buffer)014240150301000a6742402895a00f0010f901000468ce3c80”
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = “video/x-h264,\ alignment=(string)au,\ profile=(string)baseline,\ level=(string)4,\ stream-format=(string)avc,\ width=(int)3840,\ height=(int)2160,\ pixel-aspect-ratio=(fraction)3/4,\ framerate=(fraction)30/1,\ codec_data=(buffer)014240150301000a6742402895a00f0010f901000468ce3c80”
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 17, dropped: 0, current: 33.81, average: 33.81
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 32, dropped: 0, current: 30.00, average: 31.91
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 48, dropped: 0, current: 30.01, average: 31.25
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 63, dropped: 0, current: 29.99, average: 30.94
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 78, dropped: 0, current: 30.00, average: 30.75
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 94, dropped: 0, current: 30.00, average: 30.62
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 110, dropped: 0, current: 29.99, average: 30.53
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 126, dropped: 0, current: 30.01, average: 30.46
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 141, dropped: 0, current: 30.00, average: 30.41
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 157, dropped: 0, current: 30.00, average: 30.37

v4l2-ctl -d /dev/video1 --list-formats-ext

ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘YUYV’
Name : YUYV 4:2:2
Size: Discrete 640x360
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 640x480
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 720x480
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 720x576
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 768x576
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 800x600
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 856x480
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 960x540
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1024x576
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1024x768
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1280x800
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1280x960
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1280x1024
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1368x768
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1440x900
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1600x1200
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1680x1050
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 1920x1200
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 2048x1080
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 2560x1440
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 3840x2160
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)
Size: Discrete 4096x2160
Interval: Discrete 0.017s (60.000 fps)
Interval: Discrete 0.017s (59.940 fps)
Interval: Discrete 0.020s (50.000 fps)
Interval: Discrete 0.033s (30.000 fps)
Interval: Discrete 0.033s (29.970 fps)
Interval: Discrete 0.040s (25.000 fps)
Interval: Discrete 0.067s (15.000 fps)

Index       : 1
Type        : Video Capture
Pixel Format: 'NV12'
Name        : Y/CbCr 4:2:0
	Size: Discrete 640x360
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 640x480
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 720x480
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 720x576
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 768x576
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 800x600
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 856x480
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 960x540
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1024x576
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1024x768
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1280x720
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1280x800
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1280x960
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1280x1024
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1368x768
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1440x900
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1600x1200
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1680x1050
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1920x1080
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 1920x1200
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 2048x1080
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 2560x1440
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 3840x2160
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)
	Size: Discrete 4096x2160
		Interval: Discrete 0.017s (60.000 fps)
		Interval: Discrete 0.017s (59.940 fps)
		Interval: Discrete 0.020s (50.000 fps)
		Interval: Discrete 0.033s (30.000 fps)
		Interval: Discrete 0.033s (29.970 fps)
		Interval: Discrete 0.040s (25.000 fps)
		Interval: Discrete 0.067s (15.000 fps)

This board support I420. Here is the pipeline for RTP streaming.

gst-launch-1.0 v4l2src -vvv device=/dev/video1 do-timestamp=true ! nvvidconv ! ‘video/x-raw(memory:NVMM), width=3840, height=2160, format=I420, framerate=30/1’ ! omxh264enc control-rate=2 bitrate=10000000 insert-sps-pps=true insert-aud=true ! ‘video/x-h264, stream-format=(string)byte-stream’ ! h264parse ! rtph264pay mtu=1316 ! udpsink host=x.x.x.x port=8554 async=false sync=false

Do you use J130 TX2 carrier board?
That uses TC358840, 4K HDMI chip, on the board.
If YES, the vendor will not update the driver any more, as the chip has EOL.

Thank you, MtHiker.

That is not J130 TX2 carrier board. The developer said they made the carrier board.

@jkyun,

Then you need to upgrade device driver by yourself.

Hi,
The source can output YUYV. Please execute sudo jetson_clocks and run the pipeline to check if framerate is 30fps:

$ gst-launch-1.0 v4l2src ! video/x-raw,format=YUY2,width=3840,height=2160,framerate=30/1 ! nvvidconv ! 'video/x-raw(memory:NVMM),format=NV12' ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v

Thank you for your help, DaneLLL.

Here is the result. I’ve set the format to UYVY

gst-launch-1.0 v4l2src ! video/x-raw,format=UYVY,width=3840,height=2160,framerate=30/1 ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)UYVY, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)UYVY, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 13, dropped: 0, current: 22.07, average: 22.07
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 19, dropped: 0, current: 10.61, average: 16.46
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 25, dropped: 0, current: 10.61, average: 14.53
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 31, dropped: 0, current: 10.62, average: 13.57
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 37, dropped: 0, current: 10.62, average: 12.98
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 43, dropped: 0, current: 10.62, average: 12.59
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 49, dropped: 0, current: 10.61, average: 12.31
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 55, dropped: 0, current: 10.62, average: 12.10
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 61, dropped: 0, current: 10.62, average: 11.94
^Chandling interrupt.
Interrupt: Stopping pipeline …
Execution ended after 0:00:05.603200940
Setting pipeline to PAUSED …
Setting pipeline to READY …
Setting pipeline to NULL …
Freeing pipeline …

Today, I received the same new carrier board as the previous one. However, the test results were the same as before. The FPS did not exceed 20. The image was broken a lot when it was transmitted over the network.

I read “So the bottleneck may be in the source(v4l2src) or network bandwidth.”, so first carried out the following command:

  1. sudo apt-get remove v4l-utils

  2. gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=I420,width=3840,height=2160,framerate=30/1 ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v

The FPS went up to 27. I don’t know why!!.

nvidia@tegra-ubuntu:~$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=I420,width=3840,height=2160,framerate=30/1 ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 9, dropped: 0, current: 17.74, average: 17.74
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 23, dropped: 0, current: 27.81, average: 22.75
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 37, dropped: 0, current: 27.82, average: 24.44
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 51, dropped: 0, current: 27.77, average: 25.27
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 65, dropped: 0, current: 27.79, average: 25.77
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 79, dropped: 0, current: 27.75, average: 26.10
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 93, dropped: 0, current: 27.85, average: 26.35
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 107, dropped: 0, current: 27.79, average: 26.53
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 121, dropped: 0, current: 27.89, average: 26.68

I rebooted, did sudo ./jetson_clocks.sh, sudo nvpmodel -m 0, and then performed the same command. The FPS went up to 30.

nvidia@tegra-ubuntu:~$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=I420,width=3840,height=2160,framerate=30/1 ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 12, dropped: 0, current: 23.45, average: 23.45
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 28, dropped: 0, current: 30.55, average: 27.04
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 43, dropped: 0, current: 29.96, average: 27.99
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 58, dropped: 0, current: 29.97, average: 28.48
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 73, dropped: 0, current: 29.97, average: 28.77
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 88, dropped: 0, current: 29.96, average: 28.97
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 103, dropped: 0, current: 29.96, average: 29.11
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 118, dropped: 0, current: 29.93, average: 29.21
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 134, dropped: 0, current: 30.02, average: 29.31
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 149, dropped: 0, current: 29.98, average: 29.37
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 164, dropped: 0, current: 29.97, average: 29.42
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 179, dropped: 0, current: 29.97, average: 29.47
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 194, dropped: 0, current: 29.94, average: 29.51
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 210, dropped: 0, current: 30.00, average: 29.54
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 225, dropped: 0, current: 29.97, average: 29.57
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 240, dropped: 0, current: 29.97, average: 29.60
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 255, dropped: 0, current: 29.98, average: 29.62
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 270, dropped: 0, current: 29.97, average: 29.64
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 285, dropped: 0, current: 29.93, average: 29.65
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 301, dropped: 0, current: 29.99, average: 29.67
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 316, dropped: 0, current: 29.99, average: 29.68
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 331, dropped: 0, current: 29.96, average: 29.70
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 346, dropped: 0, current: 29.98, average: 29.71
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 361, dropped: 0, current: 29.96, average: 29.72
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 376, dropped: 0, current: 29.94, average: 29.73
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 391, dropped: 0, current: 29.97, average: 29.74
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 407, dropped: 0, current: 30.00, average: 29.75
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 422, dropped: 0, current: 29.96, average: 29.76
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 437, dropped: 0, current: 29.98, average: 29.76
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 452, dropped: 0, current: 29.98, average: 29.77
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 467, dropped: 0, current: 29.96, average: 29.78
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 482, dropped: 0, current: 29.96, average: 29.78
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 497, dropped: 0, current: 29.96, average: 29.79

After 10 times trial, the FPS showed 26-27.

nvidia@tegra-ubuntu:~$ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,format=I420,width=3840,height=2160,framerate=30/1 ! nvvidconv ! ‘video/x-raw(memory:NVMM),format=NV12’ ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink.GstProxyPad:proxypad0: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0.GstGhostPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, format=(string)NV12
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw, format=(string)I420, width=(int)3840, height=(int)2160, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, colorimetry=(string)bt601
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0/GstFakeSink:fakesink0: sync = false
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 7, dropped: 0, current: 13.23, average: 13.23
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 21, dropped: 0, current: 27.95, average: 20.39
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 36, dropped: 0, current: 28.06, average: 23.01
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 51, dropped: 0, current: 28.02, average: 24.29
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 66, dropped: 0, current: 28.01, average: 25.05
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 81, dropped: 0, current: 27.95, average: 25.54
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 96, dropped: 0, current: 28.03, average: 25.90
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 111, dropped: 0, current: 28.07, average: 26.17
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 126, dropped: 0, current: 28.05, average: 26.38
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 141, dropped: 0, current: 28.01, average: 26.55
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 156, dropped: 0, current: 28.12, average: 26.69
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 170, dropped: 0, current: 27.95, average: 26.79
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 185, dropped: 0, current: 28.07, average: 26.89
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 200, dropped: 0, current: 28.01, average: 26.97
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 215, dropped: 0, current: 28.03, average: 27.04
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 230, dropped: 0, current: 28.03, average: 27.10
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 245, dropped: 0, current: 28.04, average: 27.16
/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 260, dropped: 0, current: 28.06, average: 27.21

Network quality is still bad. I don’t know what settings to change for good results.

Hi,
It looks like the source cannot steadily output in 30fps. It gets worse after several trials. Not sure but this might be due to thermal impact.

In using gstreamer, there is a memory copy in

v4l2src ! video/x-raw ! nvvidconv ! video/x-raw(memory:NVMM) ! ...

This might be a bottlenck. We have a sample 12_camera_v4l2_cuda in jetson_multimedia_api. Suggest you try it and see if you can achieve 4Kp30.

If network bandwidth is a possible bottleneck, you may try lower bitrate like 4Mbps.

Thank you, DaneLLL.

I will try more.

Hello, DaneLLL.

I found the high usage of CPU when executing below pipeline. Is there any solution to distribute ??

GST_DEBUG=“GST_TRACER:7” GST_TRACERS=“cpuusage” gst-launch-1.0 v4l2src device=/dev/video0 ! ‘video/x-raw, width=3840, height=2160, framerate=30/1, format=I420’ ! nvvidconv ! ‘video/x-raw(memory:NVMM), width=3840, height=2160, format=(string)NV12, framerate=(fraction)30/1’ ! nvoverlaysink sync=false
0:00:00.074556614 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x466010 (cpuusage)
0:00:00.074680356 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42cf00 (graphic)
0:00:00.074753154 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42ce40 (proctime)
0:00:00.074814337 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42cd80 (interlatency)
0:00:00.074862240 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42ccc0 (scheduletime)
0:00:00.074906464 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42cc00 (framerate)
0:00:00.074951583 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42cb40 (queuelevel)
0:00:00.074994590 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42ca80 (bitrate)
0:00:00.075039293 3347 0x5ff210 DEBUG GST_TRACER gsttracer.c:164:gst_tracer_register: update existing feature 0x42c9c0 (buffer)
0:00:00.075698449 3347 0x5ff210 TRACE GST_TRACER gsttracerrecord.c:111:gst_tracer_record_build_format: cpuusage.class, number=(structure)“value,\ type=(type)guint,\ description=(string)"Core\\ number",\ flags=(GstTracerValueFlags)GST_TRACER_VALUE_FLAGS_AGGREGATED,\ min=(uint)0,\ max=(uint)8;”, load=(structure)“value,\ type=(type)gdouble,\ description=(string)"Core\\ load\\ percentage\\ \[\%\]",\ flags=(GstTracerValueFlags)GST_TRACER_VALUE_FLAGS_AGGREGATED,\ min=(double)0,\ max=(double)100;”;
0:00:00.075899821 3347 0x5ff210 DEBUG GST_TRACER gsttracerrecord.c:125:gst_tracer_record_build_format: new format string: cpuusage, number=(uint)%u, load=(double)%lf;
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
0:00:01.871605180 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)1.175093;
0:00:01.871787288 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)3.883827;
0:00:01.871881079 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)6.519215;
0:00:01.871966837 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)1.158139;
0:00:01.872046420 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)1.356105;
0:00:01.872122962 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)5, load=(double)1.156760;
0:00:02.871054219 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)1.010101;
0:00:02.871204425 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)0.000000;
0:00:02.871290471 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)94.059410;
0:00:02.871378405 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)0.000000;
0:00:02.871459556 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)1.000000;
0:00:02.871536674 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)5, load=(double)1.000000;
0:00:03.871488916 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)1.010101;
0:00:03.871643538 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)0.000000;
0:00:03.871729840 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)94.897964;
0:00:03.871818894 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)1.000000;
0:00:03.871896237 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)2.020202;
0:00:03.871969228 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)5, load=(double)3.960396;
0:00:04.871952649 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)0.000000;
0:00:04.872114182 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)0.000000;
0:00:04.872206949 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)94.117645;
0:00:04.872296547 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)0.000000;
0:00:04.872375394 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)1.010101;
0:00:04.872452320 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)5, load=(double)0.000000;
0:00:05.871396154 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)2.020202;
0:00:05.871553175 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)0.000000;
0:00:05.871647573 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)93.814430;
0:00:05.871740371 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)2.000000;
0:00:05.871818226 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)1.020408;
0:00:05.871893905 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)5, load=(double)1.010101;
0:00:06.871842275 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)2.000000;
0:00:06.871995904 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)0.000000;
0:00:06.872083679 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)93.877556;
0:00:06.872172989 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)0.000000;
0:00:06.872250876 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)1.000000;
0:00:06.872325178 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)5, load=(double)0.000000;
0:00:07.871250760 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)0.000000;
0:00:07.871395622 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)0.000000;
0:00:07.871479076 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)94.736847;
0:00:07.871568227 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)0.000000;
0:00:07.871645825 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)0.000000;
0:00:07.871719840 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)5, load=(double)0.000000;
0:00:08.871709958 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)0, load=(double)2.000000;
0:00:08.871917090 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)1, load=(double)0.000000;
0:00:08.872012193 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)2, load=(double)94.285713;
0:00:08.872100191 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)3, load=(double)0.000000;
0:00:08.872178270 3347 0x5ff210 TRACE GST_TRACER :0:: cpuusage, number=(uint)4, load=(double)0.000000;

Hi,
The memory copy may trigger high CPU usage:

'video/x-raw, width=3840, height=2160, framerate=30/1, format=I420' ! nvvidconv ! 'video/x-raw(memory:NVMM), width=3840, height=2160, format=(string)NV12, framerate=(fraction)30/1'

On r28.2.1, we have 12_camera_v4l2_cuda to eliminate the memory copy. However, there is no better solution for gstreamer.

On r32.4.3, we have a new plugin nvv4l2camerasrc to eliminate the memory copy.

Not sure it helps, but if not yet tried, you may try option io-mode of v4l2src such as:

gst-launch-1.0 v4l2src device=/dev/video0 io-mode=2 ! ...

Thank you, DaneLLL.

Thank you Honey_Patouceul, I’ll try.