I can use my Arducam M12 model USB camera on my Windows computer both through the camera application and with the Python OpenCV library at 30 FPS at resolutions up to 4K. This is already mentioned in the camera's datasaheet. However, strangely, on my Ubuntu 22.04 computer, FPS is limited at 16 when accessing camera with Python OpenCV or the GUVCView application. There is V4L2 as the camera driver, and when you look at the features supported by the camera with v4l2-ctl --list-formats-ext
command in the terminal, it says that it can give the resolutions written in its datasheet with 30 FPS.
My OpenCV module is compiled with v4l2-enabled=True
flag. Despite this, I removed the module and recompiled it from the source code. Nothing changed. In the Python code, I tried to force the use of V4L2 by cv2.VideoCaptue(0+ cv2.CAP_V4L2)
when accessing the camera. Again, nothing changed. My processor is a 12-core 2.2GHz processor, there is no way it will bottleneck a simple camera opening task. I checked the current via the Ampere application while my phone was connected to my Windows and Ubuntu computers to see if my USB port was not providing enough power. They provided the same amount of power. However, just in case, I connected the camera to the Type-C port with a converter, same result.
These are all the possible problems I can think of. Why this is happening and how can I solve it? I would be happy if you help.