Khadas Camera Low framerate on Ubuntu

I used Guvcview on Unbuntu Focal from Khadas firmware. The best framerate I am getting is 4 fps for 1080p resolution. 720p and 4K is giving me 1 fps.

Hardware:
VIM3 Pro
OS08A10 8MP HDR Camera

I am new to Linux environment so cannot do my own troubleshooting just yet. But I think Khadas team has not released a proper driver for this camera sensor or the VIM3 Pro is under powered board to handle this camera sensor for video.

Need some support on this.

@Zeesh

Maybe you parameters setting was not right ?

I tried different parameters and found that this problem is happening in Ubuntu/Guvcview but not on the Android 9 version.

The camera module is able to deliver 1080 @60 fps. But in reality the frame rate is pathetically low. Even you have achieved roughly 10 fps. Now if you are moving or something is moving in the video it is choppy. Hence, not-usable.

@Zeesh You can try it with framebuffer mode . It can be 60fps

1 Like

GUCview, is like the Camera app in Windows laptops for your webcams, it is not very optimised for high quality camera streams…

1 Like

Do you suggest anything that can utilize the full capabilities of the camera sensor?

well, @Frank gave it to you.
use framebuffer mode, it is the fastest you can get, from raw streams…

@Zeesh Hello, I think you can switch to framebuffer mode , then test it with v4l2 command.

You can follow this page to test .

just try grab video without any conversions and outputs

ffmpeg -hide_banner -pix_fmt mjpeg -i /dev/video0 -f null null

my output show 30 fps

Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 47004.319825, bitrate: N/A
    Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 1280x720, 30 fps, 30 tbr, 1000k tbn, 1000k tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
Output #0, null, to 'null':
  Metadata:
    encoder         : Lavf58.29.100
    Stream #0:0: Video: wrapped_avframe, yuvj422p, 1280x720, q=2-31, 200 kb/s, 30 fps, 30 tbn, 30 tbc
    Metadata:
      encoder         : Lavc58.54.100 wrapped_avframe
[null @ 0x55eb9d297b00] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 159 >= 159
frame=  161 fps= 30 q=-0.0 Lsize=N/A time=00:00:05.40 bitrate=N/A speed=1.01x 

possible problem for fps

  • raw grub format
  • additional conversion from over pixel format to other
  • slow video output

@hyphop I am getting this error

@Frank Do not know about it yet. Reading the manual for usage and will come back to you with conclusion

Ok I found something that will be helpful for some ppl who came across this thread.

Selecting the correct output format of camera and other settings will increase the captured frame rates upto 25-60 fps @1080 res. However, the performance will get affected if the preview is open for the camera.
This can also be found out using a playback of any saved video at decent bit-rate on VIM3 Pro (running Unbuntu) or your normal PC. Currently the playback drops a lot of frames that makes the video appear choppy on Ubuntu. The same video is smooth on Windows PC or any phone (android/iPhone).

I will investigate further why the playback causes the bad camera fps while recording/streaming. This should ideally not happen.

1 Like