Greeting Developers,
I am working on a requirement which requires to capture video of fast moving objects. Reviewing existing camera api documentation and default camera app feature shipped with device, I found that they have a features where you manually set the shutter speed (SENSOR_EXPOSURE_TIME) and iso (SENSOR_SENSITIVITY) to reduce the blur on video frames. Which allow you to capture the high speed video with good resolutions.
// Disable Auto exposure mode and define own exposure-time and sensor-sensitivity
if (enableShutterSpeed) {
set(CaptureRequest.CONTROL_AE_MODE, CaptureRequest.CONTROL_AE_MODE_OFF)
set(CaptureRequest.SENSOR_EXPOSURE_TIME, 25000L) // 1/4000
set(CaptureRequest.SENSOR_SENSITIVITY, 3200) // 3200
}
With this addition lines of code, I could set the shutter speed and iso value that I want. But, I ran into couple of issues, where I need your advice and help.
Problems:
- Compute ISO (SENSOR_SENSITIVITY ) for different lighting condition with respect to shutter speed (SENSOR_EXPOSURE_TIME)
- Increased shutter speed, the sensor exposed to light is too less which cause the dark image, thus need to calculate the iso to accommodate. But `Auto Exposure` mode is disabled, so has to calculate the sensor sensitivity to set the brightness of image correctly.
- Video recording FPS reduces to 30fps when disabling Auto Exposure mode (CONTROL_AE_MODE).
- Even capture session is created for highspeed video recording at 240 fps, disabling auto-exposure mode reduces the video recording 30 fps.
Test Device:
- Google Pixel 3XL
Hope to hear back from you!
Best Regards,
Indra