H5W3
当前位置:H5W3 > python > 正文

【Python】使用minicap对安卓手机快速截屏

使用minicap对安卓手机快速截屏

gsky发布于 29 分钟前

简介

minicap属于STF框架的一个工具,由STF团队自身开发,属于较为核心的一部分,minicap运行于android设备端,负责设备屏幕视频的实时采集并通过socket接口发送.

minicap采集屏幕的原理很简单:通过ndk的截屏接口不停的截屏并通过socket接口实时发送,这样客户端便可以得到一序列的图片流,图片流合成后就成为视频.

使用uiautomator2, 从截屏开始到存入电脑,大概需要1-2S.

而minicap可以把时间减少到到ms级别.

安装对应库

pip3 install uiautomator2
uiautomator2 init

此时手机上已经安装好了 minicap 和 atx-agent,并且其实 atx-agent 应该已经启动了。

pip3 install adbutils
pip3 install websocket_client

示例代码

import os
import uiautomator2 as u2
import time
import adbutils
import websocket
d = adbutils.adb.device('xxxx')   # adb devices 命令获取
lport = d.forward_port(7912 )
ws = websocket.WebSocket()
ws.connect("ws://localhost:{}/minicap".format(lport))
index = 0
# start = time.time()
while True:
data = ws.recv()
if not isinstance(data, (bytes, bytearray)):
print(data)
continue
with open("home.jpg" , "wb") as f:
f.write(data)
index += 1
print(index)
if index > 0:
break
# duration = time.time() - start
# print("Image per second: %.2f" % (100/duration))
ws.close()

参考

Flutter 写的app, 需要源码可以私信~~

  • 简繁火星字体转换
  • 哄女友神器
  • 号码测吉凶
  • 电视节目直播表

最好的笔记软件

python
阅读 18发布于 29 分钟前
本作品系原创,采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar

gsky
101 声望
1 粉丝

0 条评论
得票时间

avatar

gsky
101 声望
1 粉丝

宣传栏

简介

minicap属于STF框架的一个工具,由STF团队自身开发,属于较为核心的一部分,minicap运行于android设备端,负责设备屏幕视频的实时采集并通过socket接口发送.

minicap采集屏幕的原理很简单:通过ndk的截屏接口不停的截屏并通过socket接口实时发送,这样客户端便可以得到一序列的图片流,图片流合成后就成为视频.

使用uiautomator2, 从截屏开始到存入电脑,大概需要1-2S.

而minicap可以把时间减少到到ms级别.

安装对应库

pip3 install uiautomator2
uiautomator2 init

此时手机上已经安装好了 minicap 和 atx-agent,并且其实 atx-agent 应该已经启动了。

pip3 install adbutils
pip3 install websocket_client

示例代码

import os
import uiautomator2 as u2
import time
import adbutils
import websocket
d = adbutils.adb.device('xxxx')   # adb devices 命令获取
lport = d.forward_port(7912 )
ws = websocket.WebSocket()
ws.connect("ws://localhost:{}/minicap".format(lport))
index = 0
# start = time.time()
while True:
data = ws.recv()
if not isinstance(data, (bytes, bytearray)):
print(data)
continue
with open("home.jpg" , "wb") as f:
f.write(data)
index += 1
print(index)
if index > 0:
break
# duration = time.time() - start
# print("Image per second: %.2f" % (100/duration))
ws.close()

参考

Flutter 写的app, 需要源码可以私信~~

  • 简繁火星字体转换
  • 哄女友神器
  • 号码测吉凶
  • 电视节目直播表

最好的笔记软件

本文地址:H5W3 » 【Python】使用minicap对安卓手机快速截屏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址