【问题标题】:Python - AndroidViewClient take snapshots in high FPSPython - AndroidViewClient 以高 FPS 拍摄快照
【发布时间】:2018-11-14 14:08:00
【问题描述】:

我想在 Python 上使用 AndroidViewClient 以 60 FPS 的速度拍摄我的设备的快照,因此我在循环中使用了函数 device.takeSnapshot(reconnect=True) 来执行此操作。然而,这个功能的时间消耗似乎是 0.5 秒左右,这给了我 2 FPS。我认为重新连接是它让它变长的原因。那么为什么设备在拍摄一张快照后会自动断开连接呢?有没有办法保持连接?有没有其他方法可以提高时间消耗并获得更高的 FPS?

【问题讨论】:

    标签: android python-2.7 androidviewclient


    【解决方案1】:

    虽然AndroidViewClient/culebra 的目标不是成为screenrecorder,但我进行了这样的测试

    device, serialno = ViewClient.connectToDeviceOrExit()
    t = time.time()
    for s in range(60):
        device.takeSnapshot(reconnect=True)
    t1 = time.time()-t
    print "t={} secs  r={} screenshots/sec".format(t1, 60/t1)
    

    在高速手机 (Pixel 3) 上,它可以在 15 秒或 4 FPS 内截取 60 张屏幕截图。 另外,考虑到屏幕尺寸为 1080x2160,因此需要传输大量字节。

    您可以查看takeSnapshot() 源代码,如果您想加快速度,可以删除或更改某些部分,例如可以推迟创建 PIL Image

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-14
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-03
      • 1970-01-01
      • 2011-09-09
      相关资源
      最近更新 更多