Hello NVIDIA team,
I am using a Jetson Xavier NX with JetPack 5.1.3, streaming a monochrome (GRAY8) camera via V4L2. I am observing a significant FPS discrepancy between v4l2-ctl and GStreamer pipelines, and I am unable to reach the expected frame rate using GStreamer.
Board & Software Details
-
Platform: Jetson Xavier NX
-
JetPack: 5.1.3
-
Camera: Monochrome sensor
-
Pixel format: GRAY8
-
Resolution: 1920 × 1200
-
Device:
/dev/video0
1. v4l2-ctl FPS Observation
Command used:
v4l2-ctl --set-fmt-video=width=1920,height=1200,pixelformat=GRAY \
--stream-mmap --stream-count=1000 -d /dev/video0
Output:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 50.22 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 50.22 fps
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 50.22 fps
...
Observations:
-
v4l2-ctlreports ~50.22 FPS -
This indicates that the sensor + driver path is capable of ~50 FPS
2. GStreamer FPS Observation
Command used:
gst-launch-1.0 -v v4l2src device=/dev/video0 ! \
video/x-raw,format=GRAY8,width=1920,height=1200,framerate=30/1 ! \
videoconvert ! fpsdisplaysink text-overlay=true video-sink=autovideosink sync=false
Relevant FPS logs:
rendered: 14, dropped: 0, current: 26.67, average: 26.67
rendered: 40, dropped: 0, current: 28.86, average: 25.39
rendered: 69, dropped: 0, current: 27.74, average: 26.59
rendered: 99, dropped: 0, current: 29.74, average: 27.50
rendered: 131, dropped: 0, current: 31.17, average: 28.22
rendered: 148, dropped: 0, current: 32.21, average: 28.63
Observations:
-
GStreamer negotiates GRAY8 correctly
-
FPS stabilizes around 26–30 FPS
-
No frame drops reported
-
FPS does not reach the ~50 FPS seen with
v4l2-ctl
Problem Summary
-
Sensor + driver can stream at ~50 FPS (via v4l2-ctl)
-
GStreamer pipeline is limited to ~30 FPS
-
Likely bottlenecks:
-
videoconvertusing CPU -
Lack of NVMM / VIC acceleration
-
Questions to NVIDIA Team
-
Why does
v4l2-ctlreport ~50 FPS, but GStreamer is limited to ~30 FPS? -
Are there NVIDIA-optimized pipelines for monochrome (GRAY8) cameras on Xavier NX?
-
Can nvvidconv / VIC be used with GRAY8, or is format conversion required?
-
Are there hardware-accelerated encode/display paths for monochrome data?
-
Is there a recommended GStreamer pipeline to reach the same FPS as
v4l2-ctl? -
Any Jetson-specific performance tuning (clocks, memory, driver settings) recommended?
Goal
My goal is to:
-
Reach ~50 FPS in GStreamer, matching
v4l2-ctl -
Use NVIDIA hardware acceleration wherever possible
-
Avoid unnecessary CPU-based conversions for monochrome streams
Thank you for your guidance.