TX2 video compress performance more weaker than TX1, why ?

I have test video compress performance of TX1 and TX2, but result show TX2 more weaker than TX1

first TX1

gst-launch-1.0 nvcamerasrc num-buffers=1800 ! 'video/x-raw(memory:NVMM), format=(string)I420, width=(int)4096, height=(int)3076, framerate=(fraction)30/1' ! nvvidconv ! 'video/x-raw, format=(string)I420, width=(int)4096, height=(int)3076, framerate=(fraction)30/1' ! queue ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420, width=(int)4096, height=(int)2048, framerate=(fraction)30/1' ! omxh264enc ! splitmuxsink async-handling=true location=test%d.mp4 max-size-time=60000000000

it take 1 min

(gst-plugin-scanner:1982): GLib-GObject-WARNING **: cannot register existing type 'GstBaseTextOverlay'

(gst-plugin-scanner:1982): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

(gst-plugin-scanner:1982): GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed

(gst-plugin-scanner:1982): GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

(gst-plugin-scanner:1982): GStreamer-CRITICAL **: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed
Setting pipeline to PAUSED ...
Inside NvxLiteH264DecoderLowLatencyInitNvxLiteH264DecoderLowLatencyInit set DPB and MjstreamingInside NvxLiteH265DecoderLowLatencyInitNvxLiteH265DecoderLowLatencyInit set DPB and Mjstreaming
Available Sensor modes : 
2592 x 1944 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
2592 x 1458 FR=30.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1280 x 720 FR=120.000000 CF=0x1009208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...

NvCameraSrc: Trying To Set Default Camera Resolution. Selected 4096x3076 FrameRate = 30.000000 ...

Setting pipeline to PLAYING ...
New clock: GstSystemClock
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4 
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
===== MSENC blits (mode: 1) into tiled surfaces =====
Got EOS from element "pipeline0".
Execution ended after 0:01:00.201738883
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

next is TX2

gst-launch-1.0 nvcamerasrc num-buffers=1800 ! 'video/x-raw(memory:NVMM), format=(string)I420, width=(int)4096, height=(int)3076, framerate=(fraction)30/1' ! nvvidconv ! 'video/x-raw, format=(string)I420, width=(int)4096, height=(int)3076, framerate=(fraction)30/1' ! queue ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420, width=(int)4096, height=(int)2048, framerate=(fraction)30/1' ! omxh264enc ! splitmuxsink async-handling=true location=test%d.mp4 max-size-time=60000000000


but TX2 take 3 min 19s

Setting pipeline to PAUSED ...

Available Sensor modes : 
2592 x 1944 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
2592 x 1458 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1280 x 720 FR=120.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 0 WxH = 2592x1944 FrameRate = 30.000000 ...

Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4 
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
===== MSENC blits (mode: 1) into tiled surfaces =====
Got EOS from element "pipeline0".
Execution ended after 0:03:19.815397458
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Hi, can you try with 2592 x 1944? The max resolution of onboard 5693 is 2592x1944, not 4K.

but i use videotestsrc on TX2 also take 1 min 42s

gst-launch-1.0 videotestsrc num-buffers=1800 ! queue ! 'video/x-raw, format=(string)I420, width=(int)4096, height=(int)2048, framerate=(fraction)30/1' ! omxh264enc ! qtmux ! filesink location=test.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4 
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
===== MSENC blits (mode: 1) into tiled surfaces =====
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 0:01:42.523451707
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

i use TX2 module on board of TX1, is it will influence performance of TX2 ?

Hi gunagjie,
videotestsrc is a CPU-buffer source. The best performance needs NVMM-buffer source like nvcamerasrc.

i test nvcamerasrc can supply 4k@30fps video raw data

gst-launch-1.0 nvcamerasrc num-buffers=1800 ! 'video/x-raw(memory:NVMM), format=(string)I420, width=(int)4096, height=(int)2048, framerate=(fraction)30/1' ! nvvidconv ! fakesink
Setting pipeline to PAUSED ...

Available Sensor modes : 
2592 x 1944 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
2592 x 1458 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1280 x 720 FR=120.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 0 WxH = 2592x1944 FrameRate = 30.000000 ...

Got EOS from element "pipeline0".
Execution ended after 0:01:00.165139928
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

but when i compress video, it take 1 min 7s

gst-launch-1.0 nvcamerasrc num-buffers=1800 ! 'video/x-raw(memory:NVMM), format=(string)I420, width=(int)4096, height=(int)2048, framerate=(fraction)30/1' ! omxh264enc ! fakesink
Setting pipeline to PAUSED ...

Available Sensor modes : 
2592 x 1944 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
2592 x 1458 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1280 x 720 FR=120.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock

NvCameraSrc: Trying To Set Default Camera Resolution. Selected sensorModeIndex = 0 WxH = 2592x1944 FrameRate = 30.000000 ...

Framerate set to : 30 at NvxVideoEncoderSetParameterNvMMLiteOpen : Block : BlockType = 4 
===== MSENC =====
NvMMLiteBlockCreate : Block : BlockType = 4 
===== MSENC blits (mode: 1) into tiled surfaces =====
Got EOS from element "pipeline0".
Execution ended after 0:01:07.097884661
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Hi gunagjie,

Available Sensor modes : 
2592 x 1944 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
2592 x 1458 FR=30.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10
1280 x 720 FR=120.000000 CF=0x1109208a10 SensorModeType=4 CSIPixelBitDepth=10 DynPixelBitDepth=10

Available sensor modes show you are using onboard ov5693, which does not have 4K…

how can i test 4K@30fps performance ?

hello gunagjie,

you could contact NV partners for 4k@30 bayer sensors.
[url]https://developer.nvidia.com/embedded/community/partners[/url]