Android 相机 YUV 图像 Buffer 稳定帧率录制

2019-04-25 15:03:48 +08:00
 soaph

因为录制数据集需要,希望用 Android 手机录制稳定帧率(例如 30fps )的 640x480 分辨率的 YUV 图像,并且每一哥图像帧的时间戳也可以实时获取。

最典型的情形是,需要以 30fps 的帧率稳定地获取相机 640x480 的 8 位灰度图像及每一帧的时间戳,最终按时间先后顺序写入本地二进制文件里,作为数据集离线使用,不压缩。

之前试过用 ImageReader 接为 camera2 的 output surface,但是无奈这个太慢了,帧率达不到要求。

请教各位大佬,这个怎么解决比较好啊?因为我也不是专门搞 Android 的,所以如果有直接可用的代码就更好了(。

8629 次点击
所在节点    Android
2 条回复
Nu11Po1nter
2019-04-25 16:07:59 +08:00
1.获取数据和处理数据有分开处理么,确认不要让处理操作阻塞获取
2.获取数据的地方打印日志,确认硬件是否可以跑到 30fps
soaph
2019-04-25 16:49:59 +08:00
@Nu11Po1nter 破案了,这手机配置真的不行。
1、确认把工作都扔给了后台 handler。
2、如果只把数据流给预览,可以 30fps,但是多加一个 ImageReader 就退化到 15fps。好一点的手机没问题(看来的确是手机硬件的问题了

谢谢啦~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/558607

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX