V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
soaph
V2EX  ›  Android

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

  •  
  •   soaph · 2019-04-25 15:03:48 +08:00 · 9157 次点击
    这是一个创建于 2071 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    谢谢啦~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1076 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:12 · PVG 03:12 · LAX 11:12 · JFK 14:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.