Python-AndroidViewClient以高FPS拍摄快照

时间:2018-11-04 17:15:30

标签: android python-2.7 androidviewclient

我想使用Python上的AndroidViewClient以60帧/秒的速度为设备拍摄快照,因此我在循环中使用了功能device.takeSnapshot(reconnect=True)。但是,此功能的时间消耗约为0.5秒,这使我获得2 FPS。我认为重新连接使它变得很长。那么,为什么拍摄一张快照后设备会自动断开连接?有没有办法保持连接?还有其他方法可以减少时间消耗并获得更高的FPS吗?

1 个答案:

答案 0 :(得分:0)

尽管成为screenrecord并不是AndroidViewClient/culebra的目标,但我进行了这样的测试

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)

在快速手机(像素3)上可以在15秒内拍摄60张屏幕截图,或者 4 FPS 。 另外,还要考虑到屏幕尺寸为1080x2160,所以要传输的字节很多。

您可以看一下takeSnapshot()的源代码,并发现有一些可以加速或删除的部分,例如PIL Image可以推迟创建。