Camera的预览帧率是如何设置的

在不同的应用场景中,可能会有调整预览帧率的时候,比如客户需要录制的视频固定在24帧,或者需要优化Camera功耗。
图片(来自字节跳动技术团队的抖音功耗优化实践)

本篇文章分别从Camera1和Camera2两套API来说明如何调整相机预览帧率

Camera1

getSupportedPreviewFpsRange: 获取设备支持的fps range

图片

总结下来有两个关键点:

  • 每个Range包含最小和最大值,如果最小值和最大值相等,则是固定帧率,否则就是动态帧率;
  • 实际的帧率值需要除以1000,比如帧率max为26623,实际帧率为26.623

动态帧率的值具体是多少受环境光线的影响,也就是和AE的关系比较大,可以参考ISP之自动曝光这篇文章

在我们固定fps的时候(比如【30,30】),可以会存在预览亮度变暗的情况

setPreviewFpsRange: 设置帧率range,值必须来自support list

图片

帧率的设置需要在startPreview之前

如下是笔者的手机相机支持的fps range情况,可以看到最大的动态范围为【8,30】,最大的固定帧率为【30,30】

图片

Camera2

CameraCharacteristics#CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES: 通过该Tag获取支持的fps range

图片

CaptureRequest.CONTROL_AE_TARGET_FPS_RANGE: 通过该Tag设置预览fps range

示例如下:

图片

可以看到通过Camera2 API获取的fps range是没有乘以1000的

关于高帧率的设置,比如【240,240】,可以参考Android手机如何实现慢动作录制

更多精彩好文欢迎关注公众号:雪月清的随笔

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论