How to change frame rate?

  1. Where did you get the camera module(s)?
    Uctronics

  2. Model number of the product(s)?
    Camera Module SKU: B0279 (IMX477 for Jetson Nano), Lens SKU: LK004 (Pack of 5 lenses, fixed focus)

  3. What hardware/platform were you working on?
    Jetson Nano Development Board B01 (4GB RAM)

  4. Instructions you have followed. (link/manual/etc.)
    Driver Installation. I am using the driver provided by Arducam

  5. Problems you were having?
    I would like to change the frame rate between 2-60 fps for 1920x1080 resolution.

  6. The dmesg log from your hardware?

  7. Troubleshooting attempts you’ve made?
    Tried to pass a different frame rate argument, like in the example below I use 30:

gst-launch-1.0 nvarguscamerasrc sensor-id=$SENSOR_ID ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1" ! nvvidconv ! nvoverlaysink

After running the command the console ouputs that the frame rate is 59.999999 i.e. 60 fps:

GST_ARGUS: Running with following settings:
   Camera index = 0 
   Camera mode  = 2 
   Output Stream W = 1920 H = 1080 
   seconds to Run    = 0 
   Frame Rate = 59.999999 
  1. What help do you need?
    I would like to set a custom frame rate between 2-60 fps. I understand that the driver right now only supports 3 modes:
Mode 0: GST_ARGUS: 4032 x 3040 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

Mode 1: GST_ARGUS: 3840 x 2160 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

Mode 2: GST_ARGUS: 1920 x 1080 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 22.250000; Exposure Range min 13000, max 683709000;

However can the Arducam team modify the driver so that it has user defined frame rate?

You can customize the frame rate by using the gstreamer parameter. The frame rate displayed by gstreamer is fixed. You can use fpsdisplay to verify the frame rate you set:

gst-launch-1.0 nvarguscamerasrc sensor-id=$SENSOR_ID ! “video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1” !nvvidconv !nvoverlaysink

1 Like

Adding framerate=30/1 to the CAPS filter, as you suggested, did not work. Looks like nvarguscamerasrc is only able to output at 60 fps for this camera (12 MP IMX477).

I used a the official videorate plugin.

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=60/1" ! videorate ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1"  ! nvvidconv ! nvoverlaysink

This works.