mysc


Namemysc JSON
Version 1.7.0 PyPI version JSON
download
home_pageNone
SummaryA Scrcpy client implemented in Python. Gui with dearpygui/pygame. With Video, Audio, also Control. GUI Supports Key Proxy, Extensions, window position record, right-click gesture control, File Manager, Virtual Camera, UHID Keyboard and Chinese input and more.
upload_time2024-10-27 12:40:17
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords scrcpy android adbutils av numpy dearpygui pygame adb pyaudio
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # MYScrcpy V1.7.0

### [README in English](https://github.com/me2sy/MYScrcpy/blob/main/README_EN.md)

### python语言实现的一个 [**Scrcpy 2.7**](https://github.com/Genymobile/scrcpy/) 客户端

包含完整的视频、音频、控制解析,**开发友好,引入即用!**

采用 [**DearPyGui**](https://github.com/hoffstadt/DearPyGui) 作为主要GUI。 支持编写插件,窗口位置记忆、右键手势控制、断线重连、文件管理器、虚拟摄像头投屏、中文输入,锁屏密码解锁等功能。

高速模式使用[**pygame**](https://www.pygame.org/)作为鼠标及键盘控制映射GUI。提供鼠标隐藏、按键事件监听等功能, 适用于第一人称相关应用的按键映射。

### :tv: 视频简介 [BiliBili](https://www.bilibili.com/video/BV1DxWKeXEyA/)

![dpg Screenshot](files/images/mys_1_3_4.jpg)

## 功能特性

### 插件
#### Virtualcam 虚拟摄像头
  - 0.1.2 支持选择区域,增加提示框及提示信息
  - 适配新回调
  - 原有虚拟摄像头功能插件化
  - 根据当前运行平台自动选择backend(OBS/unitycapture/v4l2loopback)
  - 支持原尺寸/自定义尺寸输出,自定义背景填充颜色
  - 支持输出预览
  - 横竖屏自动切换
  - 目前支持 (Edges/Gray/Cartoon) 图像转换效果
    - > 需安装 opencv-python
  - I键开启/关闭 O键暂停/继续 P键按下暂停
  - ![VirtualCamera To OBS](files/doc/help/extensions/virtualcam/img.png)

#### Capture 截图助手 (告别苦苦手拉640x640训练图)
  - 0.1.2 支持WSAD调节截图框位置/大小
  - 0.1.1 支持摄像头模式截图
  - 0.1.1 V键开启拉选模式,手动拉取指定区域
  - 获取屏幕坐标、定位十字线
  - 自定义截图框尺寸、原始或所见所截模式
  - C键截图、X键锁定截图框位置 Q关闭功能
  - 截取设备1:1实际图形,保持高清晰度
  - 截图历史预览、自定义保存格式、批量保存
  - 支持放大镜模式
  - 支持自定义十字线颜色、随机颜色,粗细等,更加醒目
  - ![Capture](files/doc/help/extensions/capture/img.jpg)

#### Unlocker Ubuntu解锁助手 1.7.0 NEW
  `mysc-unlocker` Ubuntu24 X11环境下解锁工具。通过解锁手机来解锁PC。
  [演示_CSDN](https://blog.csdn.net/weixin_43463913/article/details/143272573)

### 开发
- 1.7.0 适配Scrcpy 2.7,支持Gamepad
- 1.6.5 [插件开发教程](https://blog.csdn.net/weixin_43463913/article/details/142685828)
- 1.6.4 统一鼠标、键盘回调方法及传参,增加过滤器
- 1.6.4 自定义插件加载路径,方便插件开发
- 1.6.3 新增鼠标抢夺模式,允许插件获取鼠标控制权,实现更多功能
- 功能说明 [Window.setup_session()](/files/doc/introduce/window__setup_session.md)
- 全新插件架构!支持配置文件注入等功能 [**帮助文档**](https://github.com/me2sy/MYScrcpy/blob/main/files/doc/help/extensions/Help_extensions_v1_6.md)
- 升级KVManager ValueManager,自动注册,自动管理 
- 整合[uiautomator2](https://github.com/openatx/uiautomator2)
- 支持获取视频、音频原格式流,方便二次开发
- 开箱即用 `pip install mysc[full]`
- 使用Session/Connection/Adapter/Args架构,一行代码获取图像
  - `Session(adb_device, video_args=VideoArgs(1200)).va.get_image()`
- 按需最小化引用。支持**Termux**上安装部署服务,支持局域网WEB浏览,[**安装部署教程**](files/doc/MYScrcpy_with_Termux.md)

### GUI
- 新增插件管理器,管理插件、自定义配置等
- 新增底部提示及日志栏,信息及时提醒,同时提供日志查看功能
- 文件管理器,支持设备文件管理,下载、上传及预览 [**帮助文档**](files/doc/help/file_manager/Help_file_manager.md)
- 支持Windows系统下,文件传输功能
  - 使用右键手势 下|上 快速拷贝
  - 也可使用 VAC -> Control -> CopyToDevice 使用
  - 先选中PC中文件或文件夹(支持多选),在MYScrcpy界面绘制拷贝手势,则拷贝选中文件/文件夹至设备 /sdcard/MYScrcpy/ 文件夹下
  - 先进行PC屏幕截图,在MYScrcpy界面绘制拷贝手势,则拷贝截图至设备 /sdcard/DCIM/ 文件夹下
  - 若选中文本,则拷贝文本至设备剪贴板
- 支持有线、无线连接设备
- 支持设置无线端口,设置后自动重连功能
- 支持加载历史连接记录功能,自动记忆历史连接记录,快速连接
- 可根据设备配置相应连接模式,保存连接参数
  - 例如若使用手机摄像头模式,则video/audio配置,control关闭,并保存为Camera配置组合
  - 使用投屏,则全部配置,并保存为投屏配置组合
- 根据设备及当前连接参数,自动记忆窗口大小,同时记忆窗口旋转前位置。在横竖屏切换时,无需频繁调整窗口位置
- 支持Windows/Linux (暂无macOS设备,后期进行测试)
- 支持心跳检测,自动重连

### 视频
- 支持h264/h265视频流解析
- 根据设备情况,支持投屏及摄像头同时投屏
- 支持按比例调整窗口大小
  - 按原视频比例,等比伸缩
  - 拉动窗口,进行自由伸缩
  - 根据高度/宽度,自动调整窗口至视频比例
- 支持虚拟摄像头
  - 命令行启动 mysc-t-vc [**帮助文档**](files/doc/help/Help_tools_vc_v1.md)
  - 随时开启,随时关闭,随时切换设备
  - 支持OBS虚拟摄像头/Unity Capture(windows)/v4l2loopback

### 音频
- 支持opus/flac/raw
- 支持切换声音输出设备,可配合VB-Cables模拟麦克风输入

### 控制
- 优化鼠标控制器
  - 支持手势切换功能空间 手势:DR
  - 支持插件配置注入
  - 支持独占模式
- 新增键盘切换器
  - 使用 F12 切换 UHID/ADB/Ctrl模式, F11 切换 控制空间
  - 支持插件配置注入
- 按键映射创建工具(TPEditor),支持键盘,鼠标等多种控制映射方式,Windows/Linux 适用
- 支持UHID鼠标,可以实现Android界面中鼠标与PC混用
- 支持UHID-Keyboard,模拟外接键盘,直接输入中文(百度、搜狗输入法测试通过)
- 支持设备锁屏及黑屏下,通过InputPad输入密码解锁功能
- 支持鼠标滚轮滑动,缩放等功能
- 支持右键手势判断,快速回退、截屏、控制音乐播放
  - 支持创建第二个虚拟点,配合左键模拟两指操作
- 支持剪贴板
- 特殊场景下,支持ctrl调节鼠标移动速度功能
- 侧边栏多种功能键

## 帮助与支持

在使用中有任何问题、想法及建议,欢迎通过以下方式与我联系:

#### QQ群:579618095
![579618095](files/images/qq_group.jpg)

#### 邮箱:Me2sY@outlook.com

#### Blog: [CSDN](https://blog.csdn.net/weixin_43463913)


## 基本使用

### 1.1 pypi直接安装使用(推荐)
```bash
# 完整安装
pip install mysc[full]
# NOT myscrcpy... my-scrcpy already exists in pypi...


# 仅核心
pip install mysc

# 支持flac
pip install mysc[flac]

# 支持opus
pip install mysc[opus]

# 若使用界面 则:
pip install mysc[gui]

# 若使用web demo 则:
pip install mysc[web]

# 可按需组合,例如
pip install mysc[gui, opus, web]

#安装完成后
# Gui 及 日志 console
mysc-cli

# 无Console
mysc-gui
```

### 1.2  克隆本项目至本地或下载release package, 使用pip安装所需包
```bash
pip install mysc-X.X.X.tar.gz
pip install loguru adbutils numpy av pyaudio

# GUI
pip install pyperclip moosegesture dearpygui pygame pyvirtualcam 

# Web GUI
pip install nicegui

# 使用flac
pip install pyflac

# 使用opus
pip install pyogg opuslib
```

### 2. 项目结构:
   1. **utils/**
   定义基本工具类及各类参数
   2. **gui/dpg**
   DearPyGui 界面实现,包括视频绘制,鼠标事件,UHID鼠标、键盘输入,映射编辑等。
   3. **gui/pg**
   pygame 界面实现,包括视频绘制、鼠标事件、键盘事件控制等。
   4. **gui/ng**
   Nicegui Web UI (DEMO)
   5. **core/***
   Session、Connection、视频流、音频流、控制流、设备控制器等核心包
   6. **extensions/**
   官方插件
   7. **~/.myscrcpy/***
   本地化配置文件,包括运行类文件*.db 按键映射文件 tps/*.json
   8. **tools/***
   工具类,多用于生成CLI

### 3. 程序引用使用,便于自行开发

```python
# 1.4.X 新 Core/Session 架构,推荐使用

from adbutils import adb

from myscrcpy.core import *
from myscrcpy.utils import *

# Connect to Scrcpy
# Create a Session

adb_device = adb.device_list()[0]
# 或者使用 myscrcpy提供的高级设备管理工厂创建
# DeviceFactory.load_devices()
# adv_device = DeviceFactory.device_list()[0]
# adb_device = adb_device.adb_dev

session = Session(
   adb_device,
   video_args=VideoArgs(max_size=1200),
   audio_args=AudioArgs(),
   control_args=ControlArgs()
)


# Get RGB Frame np.ndarray
frame = session.va.get_frame()

# Get PIL.Image
image = session.va.get_image()

session.ca.f_set_screen(True)

session.ca.f_touch_spr(
   Action.DOWN,
   ScalePointR(.5, .5, 0),
   touch_id=0x0413
)


# 1.5.8 NEW
# 获取原始视频流/音频流
video_conn = VideoAdapter.raw_stream(adb_device, VideoArgs(max_size=1366, video_codec=VideoArgs.CODEC_H264))
while True:
    video_raw_bytes = video_conn.recv(1024)
    # Your Code Here
    break
video_conn.disconnect()

audio_conn = AudioAdapter.raw_stream(adb_device, AudioArgs(audio_codec=AudioArgs.CODEC_OPUS))
while True:
    audio_raw_bytes = audio_conn.recv(1024)
    # Your Code Here
    break
audio_conn.disconnect()

...
```

### 4.使用GUI

:exclamation: _Ubuntu等Linux下 使用pyaudio 需要先安装portaudio_
```bash
sudo apt install build-essential python3-dev ffmpeg libav-tools portaudio19-dev
```

#### 运行DearPyGui GUI
```bash
mysc-cli # With Log Console
mysc-gui # Only GUI

# or
python -m myscrcpy.run
```

#### 运行Nicegui DEMO
```bash
python -m myscrcpy.gui.ng.main
```


## 程序截图

### 主界面
![dpg Screenshot](/files/images/myscrcpy_1_3_0_main.jpg)

### 右键手势功能
![right](/files/images/myscrcpy_1_4_2_g.jpg)

### Nicegui Web 界面(DEMO)
![Nicegui Demo](/files/images/Nicegui_DEMO.jpg)

### 按键映射编辑器
![Touch Proxy Editor](/files/images/edit_touch_proxy.jpg)

### 插件管理器
![img_1.png](/files/images/myscrcpy_1_6_0.png)

## 所思所想

作为从 Scrcpy 1.X时代就开始使用的老玩家,感叹于Scrcpy的发展及神奇的功能的同时,也一直想做点什么。不过碍于有其他项目(~~懒~~)一直迟迟没有动手。 
直到遇到了[Scrcpy Mask](https://github.com/AkiChase/scrcpy-mask) 这一优秀项目,感觉我也要做点什么了。

遂于24年6月1日开始,阅读Scrcpy源码,使用python语言,借由pyav、adbutils、numpy、pyflac等优秀工具包,形成了MYScrcpy这一项目。

开发初期,是想解决在某些场景下,鼠标操作映射相关问题。随着不断开发,也产生许多涉及图形分析、AI接入(YOLO)、自动控制等方向的新想法。

MYScrcpy是MY(Mxx & ysY)系列的开始,接下来,将继续开发完善这一项目及相关应用。

目前项目为个人开发,时间、精力、水平有限,功能说明等文档方面会逐步完善。欢迎大家使用及指正。也可通过邮箱联系。如果后续有需要,也可以建群联系。

欢迎访问我的 [Bilibili](https://space.bilibili.com/400525682),之后会录制一些操作及讲解视频,希望大家喜欢。

最后十分感谢我的挚爱在开发中给予的支持。 :heart_eyes:


## 鸣谢

感谢 [**Scrcpy**](https://github.com/Genymobile/scrcpy/) 项目及作者 [**rom1v**](https://github.com/rom1v),在这一优秀项目基础上,才有了本项目。

感谢使用到的各个包项目及作者们。有你们的付出,才有了如此好的软件开发环境。

同时感谢各位使用者们,谢谢你们的支持与帮助,也希望MYScrcpy成为你们得心应手的好工具,好帮手。


## 声明

本项目供日常学习(图形、声音、AI训练等)、Android测试、开发等使用。

**请一定注意:**

1.开启手机调试模式存在一定风险,可能会造成数据泄露等风险,使用前确保您了解并可以规避相关风险

**2.本项目不可用于违法犯罪等使用**

**本人及本项目不对以上产生的相关后果负相关责任,请斟酌使用。**


## 更新日志
- 1.7.0
  - 支持Scrcpy 2.7
  - 支持UHID Gamepad
  - 升级支持 dearpygui 2.X
  - 新增Unlocker工具
  - 修复部分缺陷
- 1.6.6
  - VirtualCam 新增范围选择及运行状态提示
  - 修复部分缺陷
- 1.6.5
  - 支持连接虚拟机
- 1.6.4
  - 统一鼠标、键盘回调函数及传参
  - 新增指定加载插件路径
  - Capture 新增微调功能
- 1.6.3 
  - 插件功能升级
  - 鼠标支持独占模式
  - 修复部分缺陷
- 1.6.2 VirtualCam 插件化
- 1.6.1 修复缺陷
- 1.6.0
  - 接入[uiautomator2](https://github.com/openatx/uiautomator2)
  - 键盘控制器、鼠标控制器
  - 日志管理器
  - 修复窗口调整时跳动缺陷,DPG崩溃缺陷
  - 全新插件体系,插件注入,插件管理器等
- 1.5.10 支持插件
- 1.5.9 新增文件管理器,支持设备文件管理,下载、上传及预览
- 1.5.8 支持文件/文件夹/截屏一键拷贝至设备
- 1.5.8 支持输出原始视频/音频流
- 1.5.7 CLI启动虚拟摄像头
- 1.5.5 优化Nicegui界面,方便termux使用
- 1.5.4 降低CPU占用
- 1.5.3 更新 Readme 文件
- 1.5.3 支持Opus音频解析
- 1.5.0 现已上线 [**pypi**](https://pypi.org/project/mysc/)
- 1.4.2 使用[moosegesture](https://github.com/asweigart/moosegesture)实现右键手势控制功能,支持模拟第二个点、画线后退、调整音量、播放媒体等功能
- 1.4.1 改用SQLite进行配置管理
- 1.4.0 
  - 久等了!全新Core/Session/Connection/Utils架构
  - 新增窗口位置记忆功能,记录旋转前位置
  - 支持心跳检测,自动断线重连
  - 现已支持设备->PC 剪贴板
  - 优化按键映射方式,Linux适用
  - 更多控制按钮
- 1.3.6 新增网页端设备浏览页面DEMO(Nicegui),支持鼠标输入,UHID键盘输入、ADB输入及摇杆模拟鼠标输入
- 1.3.3 新增选择音频输出设备功能,可配合VB-Cables模拟麦克风输入
- 1.3.2 新增[pyvirtualcam](https://github.com/letmaik/pyvirtualcam?tab=readme-ov-file),支持OBS虚拟摄像头
- 支持连接配置保存,窗口大小保存
- 支持无线连接,历史连接记录及快速连接功能,告别繁琐命令行
- 支持按比例调整窗口大小、任意拉伸等功能
- 支持有线、无线连接安卓设备
- 支持断线重连,连接历史记录并自动尝试连接功能
- 支持 H265连接
- 实现了视频流解析(H264),生成numpy.ndarray,可自行使用opencv、image等进行图形处理
- 实现了音频流解析(FLAC), 使用 [pyflac](https://github.com/sonos/pyFLAC) 解码,[pyaudio](https://people.csail.mit.edu/hubert/pyaudio/) 播放
- 实现了控制按键映射,鼠标映射
- 实现了UHID-Mouse与鼠标点击混用,可以实现Android界面中鼠标与PC混用模式
- 实现了UHID-Keyboard,支持模拟外接键盘,直接输入中文(搜狗输入法测试通过)
- 实现了DPG GUI下,鼠标滚轮缩放、滑动等功能
- 实现了设备锁屏下,通过InputPad输入密码解锁功能
- DPG GUI下设备翻转图像自动调整,无限制拉伸缩放等功能
- 实现了Ctrl调节鼠标移动速度功能
- 采用TwinWindow思路,解决DPG控件无法重叠问题,实现DPG控制映射编辑器(TPEditor)
- 纯Pygame控制模式下,最低延迟在6ms


## 开发计划

- APK管理器
- 使用范例及教程
- twisted / fastapi 接口
- YOLO 及 快速拉框导出等训练工具
- 视频、音频录制
- WebRTC

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mysc",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "scrcpy, android, adbutils, av, numpy, DearPyGui, Pygame, adb, pyaudio",
    "author": null,
    "author_email": "Me2sY <me2sy@outlook.com>",
    "download_url": "https://files.pythonhosted.org/packages/b1/b9/53b2a12d55264b5a1ab69aefb5daddafdc640ed46b179c815763ec3213bf/mysc-1.7.0.tar.gz",
    "platform": null,
    "description": "# MYScrcpy V1.7.0\r\n\r\n### [README in English](https://github.com/me2sy/MYScrcpy/blob/main/README_EN.md)\r\n\r\n### python\u8bed\u8a00\u5b9e\u73b0\u7684\u4e00\u4e2a [**Scrcpy 2.7**](https://github.com/Genymobile/scrcpy/) \u5ba2\u6237\u7aef\r\n\r\n\u5305\u542b\u5b8c\u6574\u7684\u89c6\u9891\u3001\u97f3\u9891\u3001\u63a7\u5236\u89e3\u6790\uff0c**\u5f00\u53d1\u53cb\u597d\uff0c\u5f15\u5165\u5373\u7528\uff01**\r\n\r\n\u91c7\u7528 [**DearPyGui**](https://github.com/hoffstadt/DearPyGui) \u4f5c\u4e3a\u4e3b\u8981GUI\u3002 \u652f\u6301\u7f16\u5199\u63d2\u4ef6\uff0c\u7a97\u53e3\u4f4d\u7f6e\u8bb0\u5fc6\u3001\u53f3\u952e\u624b\u52bf\u63a7\u5236\u3001\u65ad\u7ebf\u91cd\u8fde\u3001\u6587\u4ef6\u7ba1\u7406\u5668\u3001\u865a\u62df\u6444\u50cf\u5934\u6295\u5c4f\u3001\u4e2d\u6587\u8f93\u5165\uff0c\u9501\u5c4f\u5bc6\u7801\u89e3\u9501\u7b49\u529f\u80fd\u3002\r\n\r\n\u9ad8\u901f\u6a21\u5f0f\u4f7f\u7528[**pygame**](https://www.pygame.org/)\u4f5c\u4e3a\u9f20\u6807\u53ca\u952e\u76d8\u63a7\u5236\u6620\u5c04GUI\u3002\u63d0\u4f9b\u9f20\u6807\u9690\u85cf\u3001\u6309\u952e\u4e8b\u4ef6\u76d1\u542c\u7b49\u529f\u80fd\uff0c \u9002\u7528\u4e8e\u7b2c\u4e00\u4eba\u79f0\u76f8\u5173\u5e94\u7528\u7684\u6309\u952e\u6620\u5c04\u3002\r\n\r\n### :tv: \u89c6\u9891\u7b80\u4ecb [BiliBili](https://www.bilibili.com/video/BV1DxWKeXEyA/)\r\n\r\n![dpg Screenshot](files/images/mys_1_3_4.jpg)\r\n\r\n## \u529f\u80fd\u7279\u6027\r\n\r\n### \u63d2\u4ef6\r\n#### Virtualcam \u865a\u62df\u6444\u50cf\u5934\r\n  - 0.1.2 \u652f\u6301\u9009\u62e9\u533a\u57df\uff0c\u589e\u52a0\u63d0\u793a\u6846\u53ca\u63d0\u793a\u4fe1\u606f\r\n  - \u9002\u914d\u65b0\u56de\u8c03\r\n  - \u539f\u6709\u865a\u62df\u6444\u50cf\u5934\u529f\u80fd\u63d2\u4ef6\u5316\r\n  - \u6839\u636e\u5f53\u524d\u8fd0\u884c\u5e73\u53f0\u81ea\u52a8\u9009\u62e9backend\uff08OBS/unitycapture/v4l2loopback\uff09\r\n  - \u652f\u6301\u539f\u5c3a\u5bf8/\u81ea\u5b9a\u4e49\u5c3a\u5bf8\u8f93\u51fa\uff0c\u81ea\u5b9a\u4e49\u80cc\u666f\u586b\u5145\u989c\u8272\r\n  - \u652f\u6301\u8f93\u51fa\u9884\u89c8\r\n  - \u6a2a\u7ad6\u5c4f\u81ea\u52a8\u5207\u6362\r\n  - \u76ee\u524d\u652f\u6301 (Edges/Gray/Cartoon) \u56fe\u50cf\u8f6c\u6362\u6548\u679c\r\n    - > \u9700\u5b89\u88c5 opencv-python\r\n  - I\u952e\u5f00\u542f/\u5173\u95ed O\u952e\u6682\u505c/\u7ee7\u7eed P\u952e\u6309\u4e0b\u6682\u505c\r\n  - ![VirtualCamera To OBS](files/doc/help/extensions/virtualcam/img.png)\r\n\r\n#### Capture \u622a\u56fe\u52a9\u624b \uff08\u544a\u522b\u82e6\u82e6\u624b\u62c9640x640\u8bad\u7ec3\u56fe\uff09\r\n  - 0.1.2 \u652f\u6301WSAD\u8c03\u8282\u622a\u56fe\u6846\u4f4d\u7f6e/\u5927\u5c0f\r\n  - 0.1.1 \u652f\u6301\u6444\u50cf\u5934\u6a21\u5f0f\u622a\u56fe\r\n  - 0.1.1 V\u952e\u5f00\u542f\u62c9\u9009\u6a21\u5f0f\uff0c\u624b\u52a8\u62c9\u53d6\u6307\u5b9a\u533a\u57df\r\n  - \u83b7\u53d6\u5c4f\u5e55\u5750\u6807\u3001\u5b9a\u4f4d\u5341\u5b57\u7ebf\r\n  - \u81ea\u5b9a\u4e49\u622a\u56fe\u6846\u5c3a\u5bf8\u3001\u539f\u59cb\u6216\u6240\u89c1\u6240\u622a\u6a21\u5f0f\r\n  - C\u952e\u622a\u56fe\u3001X\u952e\u9501\u5b9a\u622a\u56fe\u6846\u4f4d\u7f6e Q\u5173\u95ed\u529f\u80fd\r\n  - \u622a\u53d6\u8bbe\u59071\uff1a1\u5b9e\u9645\u56fe\u5f62\uff0c\u4fdd\u6301\u9ad8\u6e05\u6670\u5ea6\r\n  - \u622a\u56fe\u5386\u53f2\u9884\u89c8\u3001\u81ea\u5b9a\u4e49\u4fdd\u5b58\u683c\u5f0f\u3001\u6279\u91cf\u4fdd\u5b58\r\n  - \u652f\u6301\u653e\u5927\u955c\u6a21\u5f0f\r\n  - \u652f\u6301\u81ea\u5b9a\u4e49\u5341\u5b57\u7ebf\u989c\u8272\u3001\u968f\u673a\u989c\u8272\uff0c\u7c97\u7ec6\u7b49\uff0c\u66f4\u52a0\u9192\u76ee\r\n  - ![Capture](files/doc/help/extensions/capture/img.jpg)\r\n\r\n#### Unlocker Ubuntu\u89e3\u9501\u52a9\u624b 1.7.0 NEW\r\n  `mysc-unlocker` Ubuntu24 X11\u73af\u5883\u4e0b\u89e3\u9501\u5de5\u5177\u3002\u901a\u8fc7\u89e3\u9501\u624b\u673a\u6765\u89e3\u9501PC\u3002\r\n  [\u6f14\u793a_CSDN](https://blog.csdn.net/weixin_43463913/article/details/143272573)\r\n\r\n### \u5f00\u53d1\r\n- 1.7.0 \u9002\u914dScrcpy 2.7\uff0c\u652f\u6301Gamepad\r\n- 1.6.5 [\u63d2\u4ef6\u5f00\u53d1\u6559\u7a0b](https://blog.csdn.net/weixin_43463913/article/details/142685828)\r\n- 1.6.4 \u7edf\u4e00\u9f20\u6807\u3001\u952e\u76d8\u56de\u8c03\u65b9\u6cd5\u53ca\u4f20\u53c2\uff0c\u589e\u52a0\u8fc7\u6ee4\u5668\r\n- 1.6.4 \u81ea\u5b9a\u4e49\u63d2\u4ef6\u52a0\u8f7d\u8def\u5f84\uff0c\u65b9\u4fbf\u63d2\u4ef6\u5f00\u53d1\r\n- 1.6.3 \u65b0\u589e\u9f20\u6807\u62a2\u593a\u6a21\u5f0f\uff0c\u5141\u8bb8\u63d2\u4ef6\u83b7\u53d6\u9f20\u6807\u63a7\u5236\u6743\uff0c\u5b9e\u73b0\u66f4\u591a\u529f\u80fd\r\n- \u529f\u80fd\u8bf4\u660e [Window.setup_session()](/files/doc/introduce/window__setup_session.md)\r\n- \u5168\u65b0\u63d2\u4ef6\u67b6\u6784\uff01\u652f\u6301\u914d\u7f6e\u6587\u4ef6\u6ce8\u5165\u7b49\u529f\u80fd [**\u5e2e\u52a9\u6587\u6863**](https://github.com/me2sy/MYScrcpy/blob/main/files/doc/help/extensions/Help_extensions_v1_6.md)\r\n- \u5347\u7ea7KVManager ValueManager\uff0c\u81ea\u52a8\u6ce8\u518c\uff0c\u81ea\u52a8\u7ba1\u7406 \r\n- \u6574\u5408[uiautomator2](https://github.com/openatx/uiautomator2)\r\n- \u652f\u6301\u83b7\u53d6\u89c6\u9891\u3001\u97f3\u9891\u539f\u683c\u5f0f\u6d41\uff0c\u65b9\u4fbf\u4e8c\u6b21\u5f00\u53d1\r\n- \u5f00\u7bb1\u5373\u7528 `pip install mysc[full]`\r\n- \u4f7f\u7528Session/Connection/Adapter/Args\u67b6\u6784\uff0c\u4e00\u884c\u4ee3\u7801\u83b7\u53d6\u56fe\u50cf\r\n  - `Session(adb_device, video_args=VideoArgs(1200)).va.get_image()`\r\n- \u6309\u9700\u6700\u5c0f\u5316\u5f15\u7528\u3002\u652f\u6301**Termux**\u4e0a\u5b89\u88c5\u90e8\u7f72\u670d\u52a1\uff0c\u652f\u6301\u5c40\u57df\u7f51WEB\u6d4f\u89c8\uff0c[**\u5b89\u88c5\u90e8\u7f72\u6559\u7a0b**](files/doc/MYScrcpy_with_Termux.md)\r\n\r\n### GUI\r\n- \u65b0\u589e\u63d2\u4ef6\u7ba1\u7406\u5668\uff0c\u7ba1\u7406\u63d2\u4ef6\u3001\u81ea\u5b9a\u4e49\u914d\u7f6e\u7b49\r\n- \u65b0\u589e\u5e95\u90e8\u63d0\u793a\u53ca\u65e5\u5fd7\u680f\uff0c\u4fe1\u606f\u53ca\u65f6\u63d0\u9192\uff0c\u540c\u65f6\u63d0\u4f9b\u65e5\u5fd7\u67e5\u770b\u529f\u80fd\r\n- \u6587\u4ef6\u7ba1\u7406\u5668\uff0c\u652f\u6301\u8bbe\u5907\u6587\u4ef6\u7ba1\u7406\uff0c\u4e0b\u8f7d\u3001\u4e0a\u4f20\u53ca\u9884\u89c8 [**\u5e2e\u52a9\u6587\u6863**](files/doc/help/file_manager/Help_file_manager.md)\r\n- \u652f\u6301Windows\u7cfb\u7edf\u4e0b\uff0c\u6587\u4ef6\u4f20\u8f93\u529f\u80fd\r\n  - \u4f7f\u7528\u53f3\u952e\u624b\u52bf \u4e0b|\u4e0a \u5feb\u901f\u62f7\u8d1d\r\n  - \u4e5f\u53ef\u4f7f\u7528 VAC -> Control -> CopyToDevice \u4f7f\u7528\r\n  - \u5148\u9009\u4e2dPC\u4e2d\u6587\u4ef6\u6216\u6587\u4ef6\u5939\uff08\u652f\u6301\u591a\u9009\uff09\uff0c\u5728MYScrcpy\u754c\u9762\u7ed8\u5236\u62f7\u8d1d\u624b\u52bf\uff0c\u5219\u62f7\u8d1d\u9009\u4e2d\u6587\u4ef6/\u6587\u4ef6\u5939\u81f3\u8bbe\u5907 /sdcard/MYScrcpy/ \u6587\u4ef6\u5939\u4e0b\r\n  - \u5148\u8fdb\u884cPC\u5c4f\u5e55\u622a\u56fe\uff0c\u5728MYScrcpy\u754c\u9762\u7ed8\u5236\u62f7\u8d1d\u624b\u52bf\uff0c\u5219\u62f7\u8d1d\u622a\u56fe\u81f3\u8bbe\u5907 /sdcard/DCIM/ \u6587\u4ef6\u5939\u4e0b\r\n  - \u82e5\u9009\u4e2d\u6587\u672c\uff0c\u5219\u62f7\u8d1d\u6587\u672c\u81f3\u8bbe\u5907\u526a\u8d34\u677f\r\n- \u652f\u6301\u6709\u7ebf\u3001\u65e0\u7ebf\u8fde\u63a5\u8bbe\u5907\r\n- \u652f\u6301\u8bbe\u7f6e\u65e0\u7ebf\u7aef\u53e3\uff0c\u8bbe\u7f6e\u540e\u81ea\u52a8\u91cd\u8fde\u529f\u80fd\r\n- \u652f\u6301\u52a0\u8f7d\u5386\u53f2\u8fde\u63a5\u8bb0\u5f55\u529f\u80fd\uff0c\u81ea\u52a8\u8bb0\u5fc6\u5386\u53f2\u8fde\u63a5\u8bb0\u5f55\uff0c\u5feb\u901f\u8fde\u63a5\r\n- \u53ef\u6839\u636e\u8bbe\u5907\u914d\u7f6e\u76f8\u5e94\u8fde\u63a5\u6a21\u5f0f\uff0c\u4fdd\u5b58\u8fde\u63a5\u53c2\u6570\r\n  - \u4f8b\u5982\u82e5\u4f7f\u7528\u624b\u673a\u6444\u50cf\u5934\u6a21\u5f0f\uff0c\u5219video/audio\u914d\u7f6e\uff0ccontrol\u5173\u95ed\uff0c\u5e76\u4fdd\u5b58\u4e3aCamera\u914d\u7f6e\u7ec4\u5408\r\n  - \u4f7f\u7528\u6295\u5c4f\uff0c\u5219\u5168\u90e8\u914d\u7f6e\uff0c\u5e76\u4fdd\u5b58\u4e3a\u6295\u5c4f\u914d\u7f6e\u7ec4\u5408\r\n- \u6839\u636e\u8bbe\u5907\u53ca\u5f53\u524d\u8fde\u63a5\u53c2\u6570\uff0c\u81ea\u52a8\u8bb0\u5fc6\u7a97\u53e3\u5927\u5c0f\uff0c\u540c\u65f6\u8bb0\u5fc6\u7a97\u53e3\u65cb\u8f6c\u524d\u4f4d\u7f6e\u3002\u5728\u6a2a\u7ad6\u5c4f\u5207\u6362\u65f6\uff0c\u65e0\u9700\u9891\u7e41\u8c03\u6574\u7a97\u53e3\u4f4d\u7f6e\r\n- \u652f\u6301Windows/Linux (\u6682\u65e0macOS\u8bbe\u5907\uff0c\u540e\u671f\u8fdb\u884c\u6d4b\u8bd5)\r\n- \u652f\u6301\u5fc3\u8df3\u68c0\u6d4b\uff0c\u81ea\u52a8\u91cd\u8fde\r\n\r\n### \u89c6\u9891\r\n- \u652f\u6301h264/h265\u89c6\u9891\u6d41\u89e3\u6790\r\n- \u6839\u636e\u8bbe\u5907\u60c5\u51b5\uff0c\u652f\u6301\u6295\u5c4f\u53ca\u6444\u50cf\u5934\u540c\u65f6\u6295\u5c4f\r\n- \u652f\u6301\u6309\u6bd4\u4f8b\u8c03\u6574\u7a97\u53e3\u5927\u5c0f\r\n  - \u6309\u539f\u89c6\u9891\u6bd4\u4f8b\uff0c\u7b49\u6bd4\u4f38\u7f29\r\n  - \u62c9\u52a8\u7a97\u53e3\uff0c\u8fdb\u884c\u81ea\u7531\u4f38\u7f29\r\n  - \u6839\u636e\u9ad8\u5ea6/\u5bbd\u5ea6\uff0c\u81ea\u52a8\u8c03\u6574\u7a97\u53e3\u81f3\u89c6\u9891\u6bd4\u4f8b\r\n- \u652f\u6301\u865a\u62df\u6444\u50cf\u5934\r\n  - \u547d\u4ee4\u884c\u542f\u52a8 mysc-t-vc [**\u5e2e\u52a9\u6587\u6863**](files/doc/help/Help_tools_vc_v1.md)\r\n  - \u968f\u65f6\u5f00\u542f\uff0c\u968f\u65f6\u5173\u95ed\uff0c\u968f\u65f6\u5207\u6362\u8bbe\u5907\r\n  - \u652f\u6301OBS\u865a\u62df\u6444\u50cf\u5934/Unity Capture(windows)/v4l2loopback\r\n\r\n### \u97f3\u9891\r\n- \u652f\u6301opus/flac/raw\r\n- \u652f\u6301\u5207\u6362\u58f0\u97f3\u8f93\u51fa\u8bbe\u5907\uff0c\u53ef\u914d\u5408VB-Cables\u6a21\u62df\u9ea6\u514b\u98ce\u8f93\u5165\r\n\r\n### \u63a7\u5236\r\n- \u4f18\u5316\u9f20\u6807\u63a7\u5236\u5668\r\n  - \u652f\u6301\u624b\u52bf\u5207\u6362\u529f\u80fd\u7a7a\u95f4 \u624b\u52bf\uff1aDR\r\n  - \u652f\u6301\u63d2\u4ef6\u914d\u7f6e\u6ce8\u5165\r\n  - \u652f\u6301\u72ec\u5360\u6a21\u5f0f\r\n- \u65b0\u589e\u952e\u76d8\u5207\u6362\u5668\r\n  - \u4f7f\u7528 F12 \u5207\u6362 UHID/ADB/Ctrl\u6a21\u5f0f\uff0c F11 \u5207\u6362 \u63a7\u5236\u7a7a\u95f4\r\n  - \u652f\u6301\u63d2\u4ef6\u914d\u7f6e\u6ce8\u5165\r\n- \u6309\u952e\u6620\u5c04\u521b\u5efa\u5de5\u5177\uff08TPEditor\uff09,\u652f\u6301\u952e\u76d8\uff0c\u9f20\u6807\u7b49\u591a\u79cd\u63a7\u5236\u6620\u5c04\u65b9\u5f0f\uff0cWindows/Linux \u9002\u7528\r\n- \u652f\u6301UHID\u9f20\u6807\uff0c\u53ef\u4ee5\u5b9e\u73b0Android\u754c\u9762\u4e2d\u9f20\u6807\u4e0ePC\u6df7\u7528\r\n- \u652f\u6301UHID-Keyboard\uff0c\u6a21\u62df\u5916\u63a5\u952e\u76d8\uff0c\u76f4\u63a5\u8f93\u5165\u4e2d\u6587\uff08\u767e\u5ea6\u3001\u641c\u72d7\u8f93\u5165\u6cd5\u6d4b\u8bd5\u901a\u8fc7\uff09\r\n- \u652f\u6301\u8bbe\u5907\u9501\u5c4f\u53ca\u9ed1\u5c4f\u4e0b\uff0c\u901a\u8fc7InputPad\u8f93\u5165\u5bc6\u7801\u89e3\u9501\u529f\u80fd\r\n- \u652f\u6301\u9f20\u6807\u6eda\u8f6e\u6ed1\u52a8\uff0c\u7f29\u653e\u7b49\u529f\u80fd\r\n- \u652f\u6301\u53f3\u952e\u624b\u52bf\u5224\u65ad\uff0c\u5feb\u901f\u56de\u9000\u3001\u622a\u5c4f\u3001\u63a7\u5236\u97f3\u4e50\u64ad\u653e\r\n  - \u652f\u6301\u521b\u5efa\u7b2c\u4e8c\u4e2a\u865a\u62df\u70b9\uff0c\u914d\u5408\u5de6\u952e\u6a21\u62df\u4e24\u6307\u64cd\u4f5c\r\n- \u652f\u6301\u526a\u8d34\u677f\r\n- \u7279\u6b8a\u573a\u666f\u4e0b\uff0c\u652f\u6301ctrl\u8c03\u8282\u9f20\u6807\u79fb\u52a8\u901f\u5ea6\u529f\u80fd\r\n- \u4fa7\u8fb9\u680f\u591a\u79cd\u529f\u80fd\u952e\r\n\r\n## \u5e2e\u52a9\u4e0e\u652f\u6301\r\n\r\n\u5728\u4f7f\u7528\u4e2d\u6709\u4efb\u4f55\u95ee\u9898\u3001\u60f3\u6cd5\u53ca\u5efa\u8bae\uff0c\u6b22\u8fce\u901a\u8fc7\u4ee5\u4e0b\u65b9\u5f0f\u4e0e\u6211\u8054\u7cfb\uff1a\r\n\r\n#### QQ\u7fa4\uff1a579618095\r\n![579618095](files/images/qq_group.jpg)\r\n\r\n#### \u90ae\u7bb1\uff1aMe2sY@outlook.com\r\n\r\n#### Blog: [CSDN](https://blog.csdn.net/weixin_43463913)\r\n\r\n\r\n## \u57fa\u672c\u4f7f\u7528\r\n\r\n### 1.1 pypi\u76f4\u63a5\u5b89\u88c5\u4f7f\u7528\uff08\u63a8\u8350\uff09\r\n```bash\r\n# \u5b8c\u6574\u5b89\u88c5\r\npip install mysc[full]\r\n# NOT myscrcpy... my-scrcpy already exists in pypi...\r\n\r\n\r\n# \u4ec5\u6838\u5fc3\r\npip install mysc\r\n\r\n# \u652f\u6301flac\r\npip install mysc[flac]\r\n\r\n# \u652f\u6301opus\r\npip install mysc[opus]\r\n\r\n# \u82e5\u4f7f\u7528\u754c\u9762 \u5219\uff1a\r\npip install mysc[gui]\r\n\r\n# \u82e5\u4f7f\u7528web demo \u5219\uff1a\r\npip install mysc[web]\r\n\r\n# \u53ef\u6309\u9700\u7ec4\u5408\uff0c\u4f8b\u5982\r\npip install mysc[gui, opus, web]\r\n\r\n#\u5b89\u88c5\u5b8c\u6210\u540e\r\n# Gui \u53ca \u65e5\u5fd7 console\r\nmysc-cli\r\n\r\n# \u65e0Console\r\nmysc-gui\r\n```\r\n\r\n### 1.2  \u514b\u9686\u672c\u9879\u76ee\u81f3\u672c\u5730\u6216\u4e0b\u8f7drelease package\uff0c \u4f7f\u7528pip\u5b89\u88c5\u6240\u9700\u5305\r\n```bash\r\npip install mysc-X.X.X.tar.gz\r\npip install loguru adbutils numpy av pyaudio\r\n\r\n# GUI\r\npip install pyperclip moosegesture dearpygui pygame pyvirtualcam \r\n\r\n# Web GUI\r\npip install nicegui\r\n\r\n# \u4f7f\u7528flac\r\npip install pyflac\r\n\r\n# \u4f7f\u7528opus\r\npip install pyogg opuslib\r\n```\r\n\r\n### 2. \u9879\u76ee\u7ed3\u6784\uff1a\r\n   1. **utils/**\r\n   \u5b9a\u4e49\u57fa\u672c\u5de5\u5177\u7c7b\u53ca\u5404\u7c7b\u53c2\u6570\r\n   2. **gui/dpg**\r\n   DearPyGui \u754c\u9762\u5b9e\u73b0\uff0c\u5305\u62ec\u89c6\u9891\u7ed8\u5236\uff0c\u9f20\u6807\u4e8b\u4ef6\uff0cUHID\u9f20\u6807\u3001\u952e\u76d8\u8f93\u5165\uff0c\u6620\u5c04\u7f16\u8f91\u7b49\u3002\r\n   3. **gui/pg**\r\n   pygame \u754c\u9762\u5b9e\u73b0\uff0c\u5305\u62ec\u89c6\u9891\u7ed8\u5236\u3001\u9f20\u6807\u4e8b\u4ef6\u3001\u952e\u76d8\u4e8b\u4ef6\u63a7\u5236\u7b49\u3002\r\n   4. **gui/ng**\r\n   Nicegui Web UI (DEMO)\r\n   5. **core/***\r\n   Session\u3001Connection\u3001\u89c6\u9891\u6d41\u3001\u97f3\u9891\u6d41\u3001\u63a7\u5236\u6d41\u3001\u8bbe\u5907\u63a7\u5236\u5668\u7b49\u6838\u5fc3\u5305\r\n   6. **extensions/**\r\n   \u5b98\u65b9\u63d2\u4ef6\r\n   7. **~/.myscrcpy/***\r\n   \u672c\u5730\u5316\u914d\u7f6e\u6587\u4ef6\uff0c\u5305\u62ec\u8fd0\u884c\u7c7b\u6587\u4ef6*.db \u6309\u952e\u6620\u5c04\u6587\u4ef6 tps/*.json\r\n   8. **tools/***\r\n   \u5de5\u5177\u7c7b\uff0c\u591a\u7528\u4e8e\u751f\u6210CLI\r\n\r\n### 3. \u7a0b\u5e8f\u5f15\u7528\u4f7f\u7528\uff0c\u4fbf\u4e8e\u81ea\u884c\u5f00\u53d1\r\n\r\n```python\r\n# 1.4.X \u65b0 Core/Session \u67b6\u6784\uff0c\u63a8\u8350\u4f7f\u7528\r\n\r\nfrom adbutils import adb\r\n\r\nfrom myscrcpy.core import *\r\nfrom myscrcpy.utils import *\r\n\r\n# Connect to Scrcpy\r\n# Create a Session\r\n\r\nadb_device = adb.device_list()[0]\r\n# \u6216\u8005\u4f7f\u7528 myscrcpy\u63d0\u4f9b\u7684\u9ad8\u7ea7\u8bbe\u5907\u7ba1\u7406\u5de5\u5382\u521b\u5efa\r\n# DeviceFactory.load_devices()\r\n# adv_device = DeviceFactory.device_list()[0]\r\n# adb_device = adb_device.adb_dev\r\n\r\nsession = Session(\r\n   adb_device,\r\n   video_args=VideoArgs(max_size=1200),\r\n   audio_args=AudioArgs(),\r\n   control_args=ControlArgs()\r\n)\r\n\r\n\r\n# Get RGB Frame np.ndarray\r\nframe = session.va.get_frame()\r\n\r\n# Get PIL.Image\r\nimage = session.va.get_image()\r\n\r\nsession.ca.f_set_screen(True)\r\n\r\nsession.ca.f_touch_spr(\r\n   Action.DOWN,\r\n   ScalePointR(.5, .5, 0),\r\n   touch_id=0x0413\r\n)\r\n\r\n\r\n# 1.5.8 NEW\r\n# \u83b7\u53d6\u539f\u59cb\u89c6\u9891\u6d41/\u97f3\u9891\u6d41\r\nvideo_conn = VideoAdapter.raw_stream(adb_device, VideoArgs(max_size=1366, video_codec=VideoArgs.CODEC_H264))\r\nwhile True:\r\n    video_raw_bytes = video_conn.recv(1024)\r\n    # Your Code Here\r\n    break\r\nvideo_conn.disconnect()\r\n\r\naudio_conn = AudioAdapter.raw_stream(adb_device, AudioArgs(audio_codec=AudioArgs.CODEC_OPUS))\r\nwhile True:\r\n    audio_raw_bytes = audio_conn.recv(1024)\r\n    # Your Code Here\r\n    break\r\naudio_conn.disconnect()\r\n\r\n...\r\n```\r\n\r\n### 4.\u4f7f\u7528GUI\r\n\r\n:exclamation: _Ubuntu\u7b49Linux\u4e0b \u4f7f\u7528pyaudio \u9700\u8981\u5148\u5b89\u88c5portaudio_\r\n```bash\r\nsudo apt install build-essential python3-dev ffmpeg libav-tools portaudio19-dev\r\n```\r\n\r\n#### \u8fd0\u884cDearPyGui GUI\r\n```bash\r\nmysc-cli # With Log Console\r\nmysc-gui # Only GUI\r\n\r\n# or\r\npython -m myscrcpy.run\r\n```\r\n\r\n#### \u8fd0\u884cNicegui DEMO\r\n```bash\r\npython -m myscrcpy.gui.ng.main\r\n```\r\n\r\n\r\n## \u7a0b\u5e8f\u622a\u56fe\r\n\r\n### \u4e3b\u754c\u9762\r\n![dpg Screenshot](/files/images/myscrcpy_1_3_0_main.jpg)\r\n\r\n### \u53f3\u952e\u624b\u52bf\u529f\u80fd\r\n![right](/files/images/myscrcpy_1_4_2_g.jpg)\r\n\r\n### Nicegui Web \u754c\u9762\uff08DEMO\uff09\r\n![Nicegui Demo](/files/images/Nicegui_DEMO.jpg)\r\n\r\n### \u6309\u952e\u6620\u5c04\u7f16\u8f91\u5668\r\n![Touch Proxy Editor](/files/images/edit_touch_proxy.jpg)\r\n\r\n### \u63d2\u4ef6\u7ba1\u7406\u5668\r\n![img_1.png](/files/images/myscrcpy_1_6_0.png)\r\n\r\n## \u6240\u601d\u6240\u60f3\r\n\r\n\u4f5c\u4e3a\u4ece Scrcpy 1.X\u65f6\u4ee3\u5c31\u5f00\u59cb\u4f7f\u7528\u7684\u8001\u73a9\u5bb6\uff0c\u611f\u53f9\u4e8eScrcpy\u7684\u53d1\u5c55\u53ca\u795e\u5947\u7684\u529f\u80fd\u7684\u540c\u65f6\uff0c\u4e5f\u4e00\u76f4\u60f3\u505a\u70b9\u4ec0\u4e48\u3002\u4e0d\u8fc7\u788d\u4e8e\u6709\u5176\u4ed6\u9879\u76ee\uff08~~\u61d2~~\uff09\u4e00\u76f4\u8fdf\u8fdf\u6ca1\u6709\u52a8\u624b\u3002 \r\n\u76f4\u5230\u9047\u5230\u4e86[Scrcpy Mask](https://github.com/AkiChase/scrcpy-mask) \u8fd9\u4e00\u4f18\u79c0\u9879\u76ee\uff0c\u611f\u89c9\u6211\u4e5f\u8981\u505a\u70b9\u4ec0\u4e48\u4e86\u3002\r\n\r\n\u9042\u4e8e24\u5e746\u67081\u65e5\u5f00\u59cb\uff0c\u9605\u8bfbScrcpy\u6e90\u7801\uff0c\u4f7f\u7528python\u8bed\u8a00\uff0c\u501f\u7531pyav\u3001adbutils\u3001numpy\u3001pyflac\u7b49\u4f18\u79c0\u5de5\u5177\u5305\uff0c\u5f62\u6210\u4e86MYScrcpy\u8fd9\u4e00\u9879\u76ee\u3002\r\n\r\n\u5f00\u53d1\u521d\u671f\uff0c\u662f\u60f3\u89e3\u51b3\u5728\u67d0\u4e9b\u573a\u666f\u4e0b\uff0c\u9f20\u6807\u64cd\u4f5c\u6620\u5c04\u76f8\u5173\u95ee\u9898\u3002\u968f\u7740\u4e0d\u65ad\u5f00\u53d1\uff0c\u4e5f\u4ea7\u751f\u8bb8\u591a\u6d89\u53ca\u56fe\u5f62\u5206\u6790\u3001AI\u63a5\u5165\uff08YOLO\uff09\u3001\u81ea\u52a8\u63a7\u5236\u7b49\u65b9\u5411\u7684\u65b0\u60f3\u6cd5\u3002\r\n\r\nMYScrcpy\u662fMY\uff08Mxx & ysY\uff09\u7cfb\u5217\u7684\u5f00\u59cb\uff0c\u63a5\u4e0b\u6765\uff0c\u5c06\u7ee7\u7eed\u5f00\u53d1\u5b8c\u5584\u8fd9\u4e00\u9879\u76ee\u53ca\u76f8\u5173\u5e94\u7528\u3002\r\n\r\n\u76ee\u524d\u9879\u76ee\u4e3a\u4e2a\u4eba\u5f00\u53d1\uff0c\u65f6\u95f4\u3001\u7cbe\u529b\u3001\u6c34\u5e73\u6709\u9650\uff0c\u529f\u80fd\u8bf4\u660e\u7b49\u6587\u6863\u65b9\u9762\u4f1a\u9010\u6b65\u5b8c\u5584\u3002\u6b22\u8fce\u5927\u5bb6\u4f7f\u7528\u53ca\u6307\u6b63\u3002\u4e5f\u53ef\u901a\u8fc7\u90ae\u7bb1\u8054\u7cfb\u3002\u5982\u679c\u540e\u7eed\u6709\u9700\u8981\uff0c\u4e5f\u53ef\u4ee5\u5efa\u7fa4\u8054\u7cfb\u3002\r\n\r\n\u6b22\u8fce\u8bbf\u95ee\u6211\u7684 [Bilibili](https://space.bilibili.com/400525682)\uff0c\u4e4b\u540e\u4f1a\u5f55\u5236\u4e00\u4e9b\u64cd\u4f5c\u53ca\u8bb2\u89e3\u89c6\u9891\uff0c\u5e0c\u671b\u5927\u5bb6\u559c\u6b22\u3002\r\n\r\n\u6700\u540e\u5341\u5206\u611f\u8c22\u6211\u7684\u631a\u7231\u5728\u5f00\u53d1\u4e2d\u7ed9\u4e88\u7684\u652f\u6301\u3002 :heart_eyes:\r\n\r\n\r\n## \u9e23\u8c22\r\n\r\n\u611f\u8c22 [**Scrcpy**](https://github.com/Genymobile/scrcpy/) \u9879\u76ee\u53ca\u4f5c\u8005 [**rom1v**](https://github.com/rom1v)\uff0c\u5728\u8fd9\u4e00\u4f18\u79c0\u9879\u76ee\u57fa\u7840\u4e0a\uff0c\u624d\u6709\u4e86\u672c\u9879\u76ee\u3002\r\n\r\n\u611f\u8c22\u4f7f\u7528\u5230\u7684\u5404\u4e2a\u5305\u9879\u76ee\u53ca\u4f5c\u8005\u4eec\u3002\u6709\u4f60\u4eec\u7684\u4ed8\u51fa\uff0c\u624d\u6709\u4e86\u5982\u6b64\u597d\u7684\u8f6f\u4ef6\u5f00\u53d1\u73af\u5883\u3002\r\n\r\n\u540c\u65f6\u611f\u8c22\u5404\u4f4d\u4f7f\u7528\u8005\u4eec\uff0c\u8c22\u8c22\u4f60\u4eec\u7684\u652f\u6301\u4e0e\u5e2e\u52a9\uff0c\u4e5f\u5e0c\u671bMYScrcpy\u6210\u4e3a\u4f60\u4eec\u5f97\u5fc3\u5e94\u624b\u7684\u597d\u5de5\u5177\uff0c\u597d\u5e2e\u624b\u3002\r\n\r\n\r\n## \u58f0\u660e\r\n\r\n\u672c\u9879\u76ee\u4f9b\u65e5\u5e38\u5b66\u4e60\uff08\u56fe\u5f62\u3001\u58f0\u97f3\u3001AI\u8bad\u7ec3\u7b49\uff09\u3001Android\u6d4b\u8bd5\u3001\u5f00\u53d1\u7b49\u4f7f\u7528\u3002\r\n\r\n**\u8bf7\u4e00\u5b9a\u6ce8\u610f\uff1a**\r\n\r\n1.\u5f00\u542f\u624b\u673a\u8c03\u8bd5\u6a21\u5f0f\u5b58\u5728\u4e00\u5b9a\u98ce\u9669\uff0c\u53ef\u80fd\u4f1a\u9020\u6210\u6570\u636e\u6cc4\u9732\u7b49\u98ce\u9669\uff0c\u4f7f\u7528\u524d\u786e\u4fdd\u60a8\u4e86\u89e3\u5e76\u53ef\u4ee5\u89c4\u907f\u76f8\u5173\u98ce\u9669\r\n\r\n**2.\u672c\u9879\u76ee\u4e0d\u53ef\u7528\u4e8e\u8fdd\u6cd5\u72af\u7f6a\u7b49\u4f7f\u7528**\r\n\r\n**\u672c\u4eba\u53ca\u672c\u9879\u76ee\u4e0d\u5bf9\u4ee5\u4e0a\u4ea7\u751f\u7684\u76f8\u5173\u540e\u679c\u8d1f\u76f8\u5173\u8d23\u4efb\uff0c\u8bf7\u659f\u914c\u4f7f\u7528\u3002**\r\n\r\n\r\n## \u66f4\u65b0\u65e5\u5fd7\r\n- 1.7.0\r\n  - \u652f\u6301Scrcpy 2.7\r\n  - \u652f\u6301UHID Gamepad\r\n  - \u5347\u7ea7\u652f\u6301 dearpygui 2.X\r\n  - \u65b0\u589eUnlocker\u5de5\u5177\r\n  - \u4fee\u590d\u90e8\u5206\u7f3a\u9677\r\n- 1.6.6\r\n  - VirtualCam \u65b0\u589e\u8303\u56f4\u9009\u62e9\u53ca\u8fd0\u884c\u72b6\u6001\u63d0\u793a\r\n  - \u4fee\u590d\u90e8\u5206\u7f3a\u9677\r\n- 1.6.5\r\n  - \u652f\u6301\u8fde\u63a5\u865a\u62df\u673a\r\n- 1.6.4\r\n  - \u7edf\u4e00\u9f20\u6807\u3001\u952e\u76d8\u56de\u8c03\u51fd\u6570\u53ca\u4f20\u53c2\r\n  - \u65b0\u589e\u6307\u5b9a\u52a0\u8f7d\u63d2\u4ef6\u8def\u5f84\r\n  - Capture \u65b0\u589e\u5fae\u8c03\u529f\u80fd\r\n- 1.6.3 \r\n  - \u63d2\u4ef6\u529f\u80fd\u5347\u7ea7\r\n  - \u9f20\u6807\u652f\u6301\u72ec\u5360\u6a21\u5f0f\r\n  - \u4fee\u590d\u90e8\u5206\u7f3a\u9677\r\n- 1.6.2 VirtualCam \u63d2\u4ef6\u5316\r\n- 1.6.1 \u4fee\u590d\u7f3a\u9677\r\n- 1.6.0\r\n  - \u63a5\u5165[uiautomator2](https://github.com/openatx/uiautomator2)\r\n  - \u952e\u76d8\u63a7\u5236\u5668\u3001\u9f20\u6807\u63a7\u5236\u5668\r\n  - \u65e5\u5fd7\u7ba1\u7406\u5668\r\n  - \u4fee\u590d\u7a97\u53e3\u8c03\u6574\u65f6\u8df3\u52a8\u7f3a\u9677\uff0cDPG\u5d29\u6e83\u7f3a\u9677\r\n  - \u5168\u65b0\u63d2\u4ef6\u4f53\u7cfb\uff0c\u63d2\u4ef6\u6ce8\u5165\uff0c\u63d2\u4ef6\u7ba1\u7406\u5668\u7b49\r\n- 1.5.10 \u652f\u6301\u63d2\u4ef6\r\n- 1.5.9 \u65b0\u589e\u6587\u4ef6\u7ba1\u7406\u5668\uff0c\u652f\u6301\u8bbe\u5907\u6587\u4ef6\u7ba1\u7406\uff0c\u4e0b\u8f7d\u3001\u4e0a\u4f20\u53ca\u9884\u89c8\r\n- 1.5.8 \u652f\u6301\u6587\u4ef6/\u6587\u4ef6\u5939/\u622a\u5c4f\u4e00\u952e\u62f7\u8d1d\u81f3\u8bbe\u5907\r\n- 1.5.8 \u652f\u6301\u8f93\u51fa\u539f\u59cb\u89c6\u9891/\u97f3\u9891\u6d41\r\n- 1.5.7 CLI\u542f\u52a8\u865a\u62df\u6444\u50cf\u5934\r\n- 1.5.5 \u4f18\u5316Nicegui\u754c\u9762\uff0c\u65b9\u4fbftermux\u4f7f\u7528\r\n- 1.5.4 \u964d\u4f4eCPU\u5360\u7528\r\n- 1.5.3 \u66f4\u65b0 Readme \u6587\u4ef6\r\n- 1.5.3 \u652f\u6301Opus\u97f3\u9891\u89e3\u6790\r\n- 1.5.0 \u73b0\u5df2\u4e0a\u7ebf [**pypi**](https://pypi.org/project/mysc/)\r\n- 1.4.2 \u4f7f\u7528[moosegesture](https://github.com/asweigart/moosegesture)\u5b9e\u73b0\u53f3\u952e\u624b\u52bf\u63a7\u5236\u529f\u80fd\uff0c\u652f\u6301\u6a21\u62df\u7b2c\u4e8c\u4e2a\u70b9\u3001\u753b\u7ebf\u540e\u9000\u3001\u8c03\u6574\u97f3\u91cf\u3001\u64ad\u653e\u5a92\u4f53\u7b49\u529f\u80fd\r\n- 1.4.1 \u6539\u7528SQLite\u8fdb\u884c\u914d\u7f6e\u7ba1\u7406\r\n- 1.4.0 \r\n  - \u4e45\u7b49\u4e86\uff01\u5168\u65b0Core/Session/Connection/Utils\u67b6\u6784\r\n  - \u65b0\u589e\u7a97\u53e3\u4f4d\u7f6e\u8bb0\u5fc6\u529f\u80fd\uff0c\u8bb0\u5f55\u65cb\u8f6c\u524d\u4f4d\u7f6e\r\n  - \u652f\u6301\u5fc3\u8df3\u68c0\u6d4b\uff0c\u81ea\u52a8\u65ad\u7ebf\u91cd\u8fde\r\n  - \u73b0\u5df2\u652f\u6301\u8bbe\u5907->PC \u526a\u8d34\u677f\r\n  - \u4f18\u5316\u6309\u952e\u6620\u5c04\u65b9\u5f0f\uff0cLinux\u9002\u7528\r\n  - \u66f4\u591a\u63a7\u5236\u6309\u94ae\r\n- 1.3.6 \u65b0\u589e\u7f51\u9875\u7aef\u8bbe\u5907\u6d4f\u89c8\u9875\u9762DEMO(Nicegui),\u652f\u6301\u9f20\u6807\u8f93\u5165\uff0cUHID\u952e\u76d8\u8f93\u5165\u3001ADB\u8f93\u5165\u53ca\u6447\u6746\u6a21\u62df\u9f20\u6807\u8f93\u5165\r\n- 1.3.3 \u65b0\u589e\u9009\u62e9\u97f3\u9891\u8f93\u51fa\u8bbe\u5907\u529f\u80fd\uff0c\u53ef\u914d\u5408VB-Cables\u6a21\u62df\u9ea6\u514b\u98ce\u8f93\u5165\r\n- 1.3.2 \u65b0\u589e[pyvirtualcam](https://github.com/letmaik/pyvirtualcam?tab=readme-ov-file),\u652f\u6301OBS\u865a\u62df\u6444\u50cf\u5934\r\n- \u652f\u6301\u8fde\u63a5\u914d\u7f6e\u4fdd\u5b58\uff0c\u7a97\u53e3\u5927\u5c0f\u4fdd\u5b58\r\n- \u652f\u6301\u65e0\u7ebf\u8fde\u63a5\uff0c\u5386\u53f2\u8fde\u63a5\u8bb0\u5f55\u53ca\u5feb\u901f\u8fde\u63a5\u529f\u80fd\uff0c\u544a\u522b\u7e41\u7410\u547d\u4ee4\u884c\r\n- \u652f\u6301\u6309\u6bd4\u4f8b\u8c03\u6574\u7a97\u53e3\u5927\u5c0f\u3001\u4efb\u610f\u62c9\u4f38\u7b49\u529f\u80fd\r\n- \u652f\u6301\u6709\u7ebf\u3001\u65e0\u7ebf\u8fde\u63a5\u5b89\u5353\u8bbe\u5907\r\n- \u652f\u6301\u65ad\u7ebf\u91cd\u8fde\uff0c\u8fde\u63a5\u5386\u53f2\u8bb0\u5f55\u5e76\u81ea\u52a8\u5c1d\u8bd5\u8fde\u63a5\u529f\u80fd\r\n- \u652f\u6301 H265\u8fde\u63a5\r\n- \u5b9e\u73b0\u4e86\u89c6\u9891\u6d41\u89e3\u6790\uff08H264\uff09\uff0c\u751f\u6210numpy.ndarray\uff0c\u53ef\u81ea\u884c\u4f7f\u7528opencv\u3001image\u7b49\u8fdb\u884c\u56fe\u5f62\u5904\u7406\r\n- \u5b9e\u73b0\u4e86\u97f3\u9891\u6d41\u89e3\u6790\uff08FLAC\uff09, \u4f7f\u7528 [pyflac](https://github.com/sonos/pyFLAC) \u89e3\u7801\uff0c[pyaudio](https://people.csail.mit.edu/hubert/pyaudio/) \u64ad\u653e\r\n- \u5b9e\u73b0\u4e86\u63a7\u5236\u6309\u952e\u6620\u5c04\uff0c\u9f20\u6807\u6620\u5c04\r\n- \u5b9e\u73b0\u4e86UHID-Mouse\u4e0e\u9f20\u6807\u70b9\u51fb\u6df7\u7528\uff0c\u53ef\u4ee5\u5b9e\u73b0Android\u754c\u9762\u4e2d\u9f20\u6807\u4e0ePC\u6df7\u7528\u6a21\u5f0f\r\n- \u5b9e\u73b0\u4e86UHID-Keyboard\uff0c\u652f\u6301\u6a21\u62df\u5916\u63a5\u952e\u76d8\uff0c\u76f4\u63a5\u8f93\u5165\u4e2d\u6587\uff08\u641c\u72d7\u8f93\u5165\u6cd5\u6d4b\u8bd5\u901a\u8fc7\uff09\r\n- \u5b9e\u73b0\u4e86DPG GUI\u4e0b\uff0c\u9f20\u6807\u6eda\u8f6e\u7f29\u653e\u3001\u6ed1\u52a8\u7b49\u529f\u80fd\r\n- \u5b9e\u73b0\u4e86\u8bbe\u5907\u9501\u5c4f\u4e0b\uff0c\u901a\u8fc7InputPad\u8f93\u5165\u5bc6\u7801\u89e3\u9501\u529f\u80fd\r\n- DPG GUI\u4e0b\u8bbe\u5907\u7ffb\u8f6c\u56fe\u50cf\u81ea\u52a8\u8c03\u6574\uff0c\u65e0\u9650\u5236\u62c9\u4f38\u7f29\u653e\u7b49\u529f\u80fd\r\n- \u5b9e\u73b0\u4e86Ctrl\u8c03\u8282\u9f20\u6807\u79fb\u52a8\u901f\u5ea6\u529f\u80fd\r\n- \u91c7\u7528TwinWindow\u601d\u8def\uff0c\u89e3\u51b3DPG\u63a7\u4ef6\u65e0\u6cd5\u91cd\u53e0\u95ee\u9898\uff0c\u5b9e\u73b0DPG\u63a7\u5236\u6620\u5c04\u7f16\u8f91\u5668\uff08TPEditor\uff09\r\n- \u7eafPygame\u63a7\u5236\u6a21\u5f0f\u4e0b\uff0c\u6700\u4f4e\u5ef6\u8fdf\u57286ms\r\n\r\n\r\n## \u5f00\u53d1\u8ba1\u5212\r\n\r\n- APK\u7ba1\u7406\u5668\r\n- \u4f7f\u7528\u8303\u4f8b\u53ca\u6559\u7a0b\r\n- twisted / fastapi \u63a5\u53e3\r\n- YOLO \u53ca \u5feb\u901f\u62c9\u6846\u5bfc\u51fa\u7b49\u8bad\u7ec3\u5de5\u5177\r\n- \u89c6\u9891\u3001\u97f3\u9891\u5f55\u5236\r\n- WebRTC\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Scrcpy client implemented in Python. Gui with dearpygui/pygame. With Video, Audio, also Control. GUI Supports Key Proxy, Extensions, window position record, right-click gesture control, File Manager, Virtual Camera, UHID Keyboard and Chinese input and more.",
    "version": "1.7.0",
    "project_urls": {
        "Homepage": "https://github.com/me2sy/MYScrcpy",
        "Issues": "https://github.com/me2sy/MYScrcpy/issues"
    },
    "split_keywords": [
        "scrcpy",
        " android",
        " adbutils",
        " av",
        " numpy",
        " dearpygui",
        " pygame",
        " adb",
        " pyaudio"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c32187dd097a98fd8feba2ba48122a7f261a702e7782eaaa473c978f4406d1ed",
                "md5": "bda692652694d1d451d257c7f4f72bfa",
                "sha256": "86733d8dfb75554b1def0f1575d72f2a5a91fcd4f6e7b43c1e3cc3d6717a3bf1"
            },
            "downloads": -1,
            "filename": "mysc-1.7.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bda692652694d1d451d257c7f4f72bfa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 6034111,
            "upload_time": "2024-10-27T12:40:15",
            "upload_time_iso_8601": "2024-10-27T12:40:15.303254Z",
            "url": "https://files.pythonhosted.org/packages/c3/21/87dd097a98fd8feba2ba48122a7f261a702e7782eaaa473c978f4406d1ed/mysc-1.7.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1b953b2a12d55264b5a1ab69aefb5daddafdc640ed46b179c815763ec3213bf",
                "md5": "a65f955ed4fc28339682d29e60922256",
                "sha256": "1ebf6749d7901c505dea487993a3300629ce83cf116d33589615bd5483c56bb0"
            },
            "downloads": -1,
            "filename": "mysc-1.7.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a65f955ed4fc28339682d29e60922256",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 6005980,
            "upload_time": "2024-10-27T12:40:17",
            "upload_time_iso_8601": "2024-10-27T12:40:17.870854Z",
            "url": "https://files.pythonhosted.org/packages/b1/b9/53b2a12d55264b5a1ab69aefb5daddafdc640ed46b179c815763ec3213bf/mysc-1.7.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-27 12:40:17",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "me2sy",
    "github_project": "MYScrcpy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "mysc"
}
        
Elapsed time: 0.33660s