因为录制数据集需要,希望用 Android 手机录制稳定帧率(例如 30fps )的 640x480 分辨率的 YUV 图像,并且每一哥图像帧的时间戳也可以实时获取。
最典型的情形是,需要以 30fps 的帧率稳定地获取相机 640x480 的 8 位灰度图像及每一帧的时间戳,最终按时间先后顺序写入本地二进制文件里,作为数据集离线使用,不压缩。
之前试过用 ImageReader 接为 camera2 的 output surface,但是无奈这个太慢了,帧率达不到要求。
请教各位大佬,这个怎么解决比较好啊?因为我也不是专门搞 Android 的,所以如果有直接可用的代码就更好了(。
1
Nu11Po1nter 2019-04-25 16:07:59 +08:00
1.获取数据和处理数据有分开处理么,确认不要让处理操作阻塞获取
2.获取数据的地方打印日志,确认硬件是否可以跑到 30fps |
2
soaph OP @Nu11Po1nter 破案了,这手机配置真的不行。
1、确认把工作都扔给了后台 handler。 2、如果只把数据流给预览,可以 30fps,但是多加一个 ImageReader 就退化到 15fps。好一点的手机没问题(看来的确是手机硬件的问题了 谢谢啦~ |