I am attempting to use the Jetson Nano CSI ports with the Arudcam IMX219 camera. I have set up a gstreamer pipeline and imported that into Opencv VideoCapture. My issue comes when I want to set the frame rate to a lower number than 21 for the max resolution of 3264x2464. Is there a way to set the FPS of captured images to 10 in order to remove the lag I experience when displaying?
For gstreamer pipeline looks like there is no frame rang like gain range to set the frame rate.
However you can download the source code of nvarguscamerasrc to set the frame rate by below API. Argus::ISourceSettings::setFrameDurationRange ()
Could I possibly just set fpsRange=“10 10” and then framerate=10/1 would that be a solution to my problem without digging into the source code? Or would this not work since its not a sensor mode?
Yes, you can set the fpsRange=“10 10” to limite the framerate at 10.
You can confirm with argus_camera configure it by the UI
The pipeline I am passing as my gstreamer argument is
self._gstreamer_pipeline = (
"nvarguscamerasrc sensor-id=%d sensor-mode=%d fpsRange="10.0 10.0" ! "
"video/x-raw(memory:NVMM), "
"format=(string)NV12, framerate=(fraction)%d/1 ! "
"nvvidconv flip-method=%d ! "
"video/x-raw, width=(int)%d, height=(int)%d, format=(string)BGRx ! "
"videoconvert ! "
“video/x-raw, format=(string)BGR ! appsink”
% (
sensor_id,
sensor_mode,
framerate,
flip_method,
display_width,
display_height,
)
Where this is all passed to opencv VideoCapture. I get the error “no property “fpsRange” in element “nvarguscamerasrc”” . I am not really sure what I am doing wrong.
As I said early there’s no fpsRange implement you need download the source code to add it