I want to implement a app to record 60 fps with fixed exposure time. As device I have the Google Pixel. Since its native camera app can do 60 fps and it has hardware level LEVEL_3, I thought this won't be a problem but I can't get it working. With getSupportedPreviewFpsRange()
(from camera api) I get ranges [15, 15], [24, 24], [7, 30], [30, 30]
and with getHighSpeedVideoFpsRangesFor
(from camera2 api) I get ranges [30, 120], [120, 120], [30, 240], [240, 240], [240, 240]
. When I set [60, 60]
to CONTROL_AE_TARGET_FPS_RANGE
I get error "Fps range [60, 60] in the request is not a supported high speed fps range".
Is it even possible for a custom app to record 60 fps video?
If not, how is it by 120 fps? (I have got 120 fps recording working, but when I set CONTROL_AE_MODE
off and manually set the SENSOR_EXPOSURE_TIME
and SENSOR_SENSITIVITY
, the frame rate again reduces to 30 fps)
60fps recording on Pixel can be done in normal capture settings - take a look at CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES, and just create a normal capture session. You will have to be careful and not set up too high of a resolution as your outputs, since 60fps can't be done at above 1080p, if I remember correctly.
You can confirm that via the StreamConfigurationMap for the sizes/formats that you're aiming to use.