Frame rate drop during single node capture

Hi,
We want to have 3 cameras in tx2.
The resolution of these cameras are:
camera1: 736x288, frame rate(fr)=50
camera2: 1920x1080, fr=25
camera3: 1920x1080, fr=50
and the “pixel type” for all node is set to “bayer_rggb”.
There is no frame rate drop when capturing from all or two cameras. But when only one camera captures, we have a drop in frame rate (About half).
According to the link “Considerable Frame rate drops with dual camera”, the maximum values for clk were set, and changed the “pix-clk-hz” for all cameras, but this problem still remains only for camera3.
We did not experience this problem when “pixel type” is “YUV”.
Can you suggest, how to fix this?
Currently we are using JetPack-4.4.1 on TX2.

hello kamelkhaan,

please refer to developer guide, Applications Using V4L2 IOCTL Directly.
you may use V4L2 IOCTL to verify basic camera functionality, it’ll also report average frame-rate below the command-line for every second.
thanks

Hi JerryChang,
Thanks for your attention.
We use “v4l2-ctl -d /dev/video2 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=200” and have 50fps, but we get 25fps with “gst-launch-1.0 -e nvarguscamerasrc sensor-id=2 ! ‘video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, format=(string)NV12, framerate=(fraction)50/1’ ! nvv4l2h265enc bitrate=8000000 ! h265parse ! qtmux ! filesink location=vid1080.mp4 -e”.
We want to capture with gst-launch. How to resolve this problem.

hello kamelkhaan,

please have a further confirmation,
could you please disable preview and shows frame-rate only with gstreamer pipeline,
for example,
$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=50/1, format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v

Hello JerryChang,
Thanks for your reply.
We use this pipeline gst-launch-1.0 nvarguscamerasrc sensor-id=2 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=50/1, format=NV12' ! nvvidconv ! 'video/x-raw(memory:NVMM),format=I420' ! fpsdisplaysink text-overlay=0 video-sink=fakesink sync=0 -v and get this result.

/GstPipeline:pipeline0/GstFPSDisplaySink:fpsdisplaysink0: last-message = rendered: 105, dropped: 0, current: 25.01, average: 25.35
The FR is 25 fps.

hello kamelkhaan,

sensor-id=2 not always mapping to /dev/video2,

so,
could you please have a quick confirmation by changing sensor-id as other index.
thanks

Thanks for your help,
We changed the sensor-id and have the same result. It seems that sensor-id=2 is mapped on /dev/video2.

hello kamelkhaan,

could you please share the VIDIOC_ENUM_FMT for your video device.
for example, $ v4l2-ctl -d /dev/video2 --list-formats-ext

For /dev/video2 that has frame rate drop

nvidia@10:~$ v4l2-ctl -d /dev/video2 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 1920x1080
Interval: Discrete 0.020s (50.000 fps)

two other nodes

nvidia@10:~$ v4l2-ctl -d /dev/video0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 736x288
Interval: Discrete 0.020s (50.000 fps)

nvidia@10:~$ v4l2-ctl -d /dev/video1 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: ‘RG10’
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 1920x1080
Interval: Discrete 0.040s (25.000 fps)

thanks.

hello kamelkhaan,

could you please install MMAPI and enable argus_camera application to verify the frame-rate?
the default path as following, /home/nvidia/jetson_multimedia_api/argus/
please check README.TXT for the steps to build the samples and apps.
thanks

Hello JerryChang,
When we capture only from a node (1920x1080 50fps, /dev/video2), we get 25fps and have drop in frame rate. At the same time we start to capture from another node (FHD 25fps or PAL 50fps), we get 50 fps from /dev/video2 and the frame rate is correct. Our problem is: Frame rate drop during single node capture.
thanks