Camera的预览帧率是如何设置的
2023-03-07 09:10:00 时间
在不同的应用场景中,可能会有调整预览帧率的时候,比如客户需要录制的视频固定在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手机如何实现慢动作录制
相关文章
- 在 Go 里用 CGO?这 7 个问题你要关注!
- 9款优秀的去中心化通讯软件 Matrix 的客户端
- 求职数据分析,项目经验该怎么写
- 在OKR中,我看到了数据驱动业务的未来
- 火山引擎云原生大数据在金融行业的实践
- OpenHarmony富设备移植指南(二)—从postmarketOS获取移植资源
- 《数据成熟度指数》报告:64%的企业领袖认为大多数员工“不懂数据”
- OpenHarmony 小型系统兼容性测试指南
- 肯睿中国(Cloudera):2023年企业数字战略三大趋势预测
- 适用于 Linux 的十大命令行游戏
- GNOME 截图工具的新旧截图方式
- System76 即将推出的 COSMIC 桌面正在酝酿大变化
- 2GB 内存 8GB 存储即可流畅运行,Windows 11 极致精简版系统 Tiny11 发布
- 迎接 ecode:一个即将推出的具有全新图形用户界面框架的现代、轻量级代码编辑器
- loongarch架构介绍(三)—地址翻译
- Go 语言怎么解决编译器错误“err is shadowed during return”?
- 敏捷:可能被开发人员遗忘的部分
- Denodo预测2023年数据管理和分析的未来
- 利用数据推动可持续发展
- 在 Vue3 中实现 React 原生 Hooks(useState、useEffect),深入理解 React Hooks 的