{"id":28327453,"url":"https://github.com/me2sy/myscrcpy","last_synced_at":"2025-06-24T05:32:08.247Z","repository":{"id":250523278,"uuid":"834697481","full_name":"me2sy/MYScrcpy","owner":"me2sy","description":"A Scrcpy (V3.2) client implemented in Python. Gui with Kivy/KivyMD | dearpygui/pygame. With Video, Audio, also Control. Supports Extensions, Key Proxy, window position record, File Manager, right-click gesture control, UHID Keyboard and Chinese input and more.","archived":false,"fork":false,"pushed_at":"2025-05-24T10:24:14.000Z","size":51531,"stargazers_count":61,"open_issues_count":0,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-02T12:03:30.672Z","etag":null,"topics":["android","dearpygui","gui","kivy","kivymd","pygame","python","scrcpy","termux"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/me2sy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-28T04:49:17.000Z","updated_at":"2025-05-27T00:32:45.000Z","dependencies_parsed_at":"2024-11-16T01:42:14.357Z","dependency_job_id":"029fda60-3a30-4757-b3a4-91c1a0a1cf84","html_url":"https://github.com/me2sy/MYScrcpy","commit_stats":null,"previous_names":["me2sy/myscrcpy"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/me2sy/MYScrcpy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me2sy%2FMYScrcpy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me2sy%2FMYScrcpy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me2sy%2FMYScrcpy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me2sy%2FMYScrcpy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/me2sy","download_url":"https://codeload.github.com/me2sy/MYScrcpy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/me2sy%2FMYScrcpy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261613956,"owners_count":23184507,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","dearpygui","gui","kivy","kivymd","pygame","python","scrcpy","termux"],"created_at":"2025-05-26T03:14:57.305Z","updated_at":"2025-06-24T05:32:08.234Z","avatar_url":"https://github.com/me2sy.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MYScrcpy V3.2.1\n\n### [README in English](https://github.com/me2sy/MYScrcpy/blob/main/README_EN.md)\n\n### python语言实现的一个 [**Scrcpy 3.2**](https://github.com/Genymobile/scrcpy/) 客户端\n\n包含完整的视频、音频、控制解析，**开发友好，引入即用！**\n\n**V3.2.1** GUI采用 [**Kivy**](https://kivy.org/) / [**KivyMD**](https://kivymd.readthedocs.io/en/latest/) \n\n\n[**📺连接设备指南(Bilibili)**](https://www.bilibili.com/video/BV1m7j4zCEFz/?share_source=copy_web\u0026vd_source=a8f92f299a642cf1ab2b98b656ae6bcf)\n|\n[**📺功能介绍(Bilibili)**](https://www.bilibili.com/video/BV13DjbzfE2a/?share_source=copy_web\u0026vd_source=a8f92f299a642cf1ab2b98b656ae6bcf)\n\n现代化界面风格，支持Windows/Ubuntu(X11)/MacOSX，支持多设备连接，鼠标及键盘映射。\n\nWindows11 pyinstaller 64位打包文件，MD5：d3ada6478ee8302d098876f8b9be9ef2\nhttps://pan.baidu.com/s/1ak-CM8lJhu_JcI6zcoK9HQ?pwd=w9ic 提取码: w9ic\n\n\n**V1.7.0** 采用 [**DearPyGui**](https://github.com/hoffstadt/DearPyGui) 作为主要GUI。 支持编写插件，窗口位置记忆、右键手势控制、断线重连、文件管理器、虚拟摄像头投屏、中文输入，锁屏密码解锁等功能。\n\n高速模式使用[**pygame**](https://www.pygame.org/)作为鼠标及键盘控制映射GUI。提供鼠标隐藏、按键事件监听等功能， 适用于第一人称相关应用的按键映射。\n\n[**点击查看V1.7.0版本介绍**](/files/doc/README_V17.md)\n\n\nV3.2.1 主界面\n![dpg Screenshot](/files/images/v3/main.png)\n\n\n## V3.2.1 功能特性\n- 支持多设备连接，切换\n- 全中文界面\n- 按键映射编辑器\n- 窗口大小/位置记忆功能\n- 相较V1.7.0，大幅降低CPU/GPU占用，接近scrcpy原生水平\n\n### 开发\n- 3.2.0 适配Scrcpy 3.2\n- 1.7.0 适配Scrcpy 2.7，支持Gamepad\n- 1.6.5 [插件开发教程](https://blog.csdn.net/weixin_43463913/article/details/142685828)\n- 1.6.4 统一鼠标、键盘回调方法及传参，增加过滤器\n- 1.6.4 自定义插件加载路径，方便插件开发\n- 1.6.3 新增鼠标抢夺模式，允许插件获取鼠标控制权，实现更多功能\n- 功能说明 [Window.setup_session()](/files/doc/introduce/window__setup_session.md)\n- 全新插件架构！支持配置文件注入等功能 [**帮助文档**](https://github.com/me2sy/MYScrcpy/blob/main/files/doc/help/extensions/Help_extensions_v1_6.md)\n- 升级KVManager ValueManager，自动注册，自动管理 \n- 整合[uiautomator2](https://github.com/openatx/uiautomator2)\n- 支持获取视频、音频原格式流，方便二次开发\n- 开箱即用 `pip install mysc[full]`\n- 使用Session/Connection/Adapter/Args架构，一行代码获取图像\n  - `Session(adb_device, video_args=VideoArgs(1200)).va.get_image()`\n- 按需最小化引用。支持**Termux**上安装部署服务，支持局域网WEB浏览，[**安装部署教程**](files/doc/MYScrcpy_with_Termux.md)\n\n### GUI\n- 根据设备及当前连接参数，自动记忆窗口大小，同时记忆窗口旋转前位置。在横竖屏切换时，无需频繁调整窗口位置\n- 支持Windows/Linux/MacOS X\n- 支持有线、无线连接设备\n- 支持设置无线端口，设置后自动重连功能\n- 支持加载历史连接记录功能，自动记忆历史连接记录，快速连接\n- 可根据设备配置相应连接模式，保存连接参数\n  - 例如若使用手机摄像头模式，则video/audio配置，control关闭，并保存为Camera配置组合\n  - 使用投屏，则全部配置，并保存为投屏配置组合\n\n### 视频\n- 支持h264/h265视频流解析\n- 支持按比例调整窗口大小\n  - 拉动窗口，进行自由伸缩\n  - 根据高度/宽度，自动调整窗口至视频比例\n\n### 音频\n- 支持opus/flac/raw\n\n### 控制\n- 优化鼠标控制器\n  - 使用 F9 切换 UHID/触摸模式\n  - 支持手势切换功能空间 手势：DR\n- 新增键盘切换器\n  - 使用 F8 切换 UHID/ADB/Ctrl模式， F7 切换 控制空间\n  - 支持插件配置注入\n- 按键映射创建工具，支持键盘，鼠标等多种控制映射方式，Windows/Linux/MacOS X 适用\n- 支持UHID鼠标，可以实现Android界面中鼠标与PC混用\n- 支持UHID-Keyboard，模拟外接键盘，直接输入中文（百度、搜狗输入法测试通过）\n- 支持鼠标滚轮滑动，缩放等功能\n- 支持右键手势判断，快速回退、截屏、控制音乐播放\n  - 支持创建第二个虚拟点，配合左键模拟两指操作\n- 侧边栏多种功能键\n\n## 帮助与支持\n\n在使用中有任何问题、想法及建议，欢迎通过以下方式与我联系：\n\n#### QQ群：579618095\n![579618095](files/images/qq_group.jpg)\n\n#### 邮箱：Me2sY@outlook.com\n\n#### Blog: [CSDN](https://blog.csdn.net/weixin_43463913)\n\n\n## 基本使用\n\n### 1.1 pypi直接安装使用（推荐）\n\n**注意 V3.2.X以上 采用KivyMD 2.X版本 需手动安装**\n\n[KivyMD getting-started](https://kivymd.readthedocs.io/en/latest/getting-started/)\n\n```bash\n# 完整安装\npip install mysc[full]\n# NOT myscrcpy... my-scrcpy already exists in pypi...\n\n# V3.2.0 采用 KivyMD 2.X 版本，需手动安装\npip install https://github.com/kivymd/KivyMD/archive/master.zip\n\n# 仅核心\npip install mysc\n\n# 支持flac\npip install mysc[flac]\n\n# 支持opus\npip install mysc[opus]\n\n# 若使用界面 则：\npip install mysc[gui]\n\n# 若使用web demo 则：\npip install mysc[web]\n\n# 可按需组合，例如\npip install mysc[gui, opus, web]\n\n#安装完成后\n# Gui 及 日志 console\n# V3.2.0 Kivy\nmysc-k-cli\n\n# 无Console\n# V3.2.0 Kivy\nmysc-k\n```\n\n### 1.2  克隆本项目至本地或下载release package， 使用pip安装所需包\n```bash\npip install mysc-X.X.X.tar.gz\npip install loguru adbutils==2.7.2 numpy av pyaudio\n\n# GUI\npip install kivy\u003e=2.3.1\npip install https://github.com/kivymd/KivyMD/archive/master.zip\npip install pyperclip moosegesture pynput\n\n# Web GUI\npip install nicegui\n\n# 使用flac\npip install pyflac\n\n# 使用opus\npip install pyogg opuslib\n```\n\n### 2. 项目结构：\n   1. **utils/**\n   定义基本工具类及各类参数\n   2. **gui/dpg**\n   DearPyGui 界面实现，包括视频绘制，鼠标事件，UHID鼠标、键盘输入，映射编辑等。\n   3. **gui/pg**\n   pygame 界面实现，包括视频绘制、鼠标事件、键盘事件控制等。\n   4. **gui/ng**\n   Nicegui Web UI (DEMO)\n   5. **core/***\n   Session、Connection、视频流、音频流、控制流、设备控制器等核心包\n   6. **extensions/**\n   官方插件\n   7. **~/.myscrcpy/***\n   本地化配置文件，包括运行类文件*.db 按键映射文件 tps/*.json\n   8. **tools/***\n   工具类，多用于生成CLI\n   9. **gui/k**\n   V3.2 Kivy/KivyMD 界面实现，包括视频绘制，鼠标事件，UHID鼠标、键盘输入，映射编辑等。\n\n### 3. 程序引用使用，便于自行开发\n\n```python\n# 1.4.X 新 Core/Session 架构，推荐使用\n\nfrom adbutils import adb\n\nfrom myscrcpy.core import *\nfrom myscrcpy.utils import *\n\n# Connect to Scrcpy\n# Create a Session\n\nadb_device = adb.device_list()[0]\n# 或者使用 myscrcpy提供的高级设备管理工厂创建\n# DeviceFactory.load_devices()\n# adv_device = DeviceFactory.device_list()[0]\n# adb_device = adb_device.adb_dev\n\nsession = Session(\n   adb_device,\n   video_args=VideoArgs(max_size=1200),\n   audio_args=AudioArgs(),\n   control_args=ControlArgs()\n)\n\n\n# Get RGB Frame np.ndarray\nframe = session.va.get_frame()\n\n# Get PIL.Image\nimage = session.va.get_image()\n\nsession.ca.f_set_screen(True)\n\nsession.ca.f_touch_spr(\n   Action.DOWN,\n   ScalePointR(.5, .5, 0),\n   touch_id=0x0413\n)\n\n\n# 1.5.8 NEW\n# 获取原始视频流/音频流\nvideo_conn = VideoAdapter.raw_stream(adb_device, VideoArgs(max_size=1366, video_codec=VideoArgs.CODEC_H264))\nwhile True:\n    video_raw_bytes = video_conn.recv(1024)\n    # Your Code Here\n    break\nvideo_conn.disconnect()\n\naudio_conn = AudioAdapter.raw_stream(adb_device, AudioArgs(audio_codec=AudioArgs.CODEC_OPUS))\nwhile True:\n    audio_raw_bytes = audio_conn.recv(1024)\n    # Your Code Here\n    break\naudio_conn.disconnect()\n\n...\n```\n\n### 4.使用GUI\n\n:exclamation: _Ubuntu等Linux下 使用pyaudio 需要先安装portaudio_\n```bash\nsudo apt install build-essential python3-dev ffmpeg libav-tools portaudio19-dev\n```\n\n#### 运行GUI\n```bash\nmysc-k-cli # With Log Console\nmysc-k # Only GUI\n```\n\n#### 运行Nicegui DEMO\n```bash\npython -m myscrcpy.gui.ng.main\n```\n\n\n## 程序截图\n\n### 主界面\n![dpg Screenshot](/files/images/v3/main.png)\n\n### 右键手势功能\n![right](/files/images/v3/ges.png)\n\n### Nicegui Web 界面（DEMO）\n![Nicegui Demo](/files/images/Nicegui_DEMO.jpg)\n\n### 按键映射编辑器\n![Touch Proxy Editor](/files/images/v3/proxy.png)\n\n### 连接配置界面\n![Connect](/files/images/v3/config.png)\n\n\n## 所思所想\n\n2025-05-10 V3.2.0 近期喜得小宝，更新的进度慢了许多。感谢大家的理解与支持。转眼50+星了，你们的支持和鼓励是我继续下去的动力！再次谢谢大家！\n\n作为从 Scrcpy 1.X时代就开始使用的老玩家，感叹于Scrcpy的发展及神奇的功能的同时，也一直想做点什么。不过碍于有其他项目（~~懒~~）一直迟迟没有动手。 \n直到遇到了[Scrcpy Mask](https://github.com/AkiChase/scrcpy-mask) 这一优秀项目，感觉我也要做点什么了。\n\n遂于24年6月1日开始，阅读Scrcpy源码，使用python语言，借由pyav、adbutils、numpy、pyflac等优秀工具包，形成了MYScrcpy这一项目。\n\n开发初期，是想解决在某些场景下，鼠标操作映射相关问题。随着不断开发，也产生许多涉及图形分析、AI接入（YOLO）、自动控制等方向的新想法。\n\nMYScrcpy是MY（Mxx \u0026 ysY）系列的开始，接下来，将继续开发完善这一项目及相关应用。\n\n目前项目为个人开发，时间、精力、水平有限，功能说明等文档方面会逐步完善。欢迎大家使用及指正。也可通过邮箱联系。如果后续有需要，也可以建群联系。\n\n欢迎访问我的 [Bilibili](https://space.bilibili.com/400525682)，之后会录制一些操作及讲解视频，希望大家喜欢。\n\n最后十分感谢我的挚爱YSY在开发中给予的支持。 :heart_eyes:\n\n\n## 鸣谢\n\n感谢 [**Scrcpy**](https://github.com/Genymobile/scrcpy/) 项目及作者 [**rom1v**](https://github.com/rom1v)，在这一优秀项目基础上，才有了本项目。\n\n感谢 Kivy/KivyMD Dearpygui Pygame等优秀GUI框架\n\n感谢使用到的各个包项目及作者们。有你们的付出，才有了如此好的软件开发环境。\n\n同时感谢各位使用者们，谢谢你们的支持与帮助，也希望MYScrcpy成为你们得心应手的好工具，好帮手。\n\n\n## 声明\n\n本项目供日常学习（图形、声音、AI训练等）、Android测试、开发等使用。\n\n**请一定注意：**\n\n1.开启手机调试模式存在一定风险，可能会造成数据泄露等风险，使用前确保您了解并可以规避相关风险\n\n**2.本项目不可用于违法犯罪等使用**\n\n**本人及本项目不对以上产生的相关后果负相关责任，请斟酌使用。**\n\n\n## 更新日志\n- 3.2.1\n  - 屏蔽 Kivy BUG导致的问题\n  - adbutils 更新至 2.8.10\n  - 更改 配置文件保存地址，避免因权限问题导致无法存储\n  - 增加连接友好提示\n- 3.2.0\n  - 支持Scrcpy 3.2.0\n  - 全新现代风格界面，使用Kivy/KivyMD，大幅降低CPU/GPU占用\n  - 全新映射编辑器\n  - 修复部分缺陷\n- 1.7.0\n  - 支持Scrcpy 2.7\n  - 支持UHID Gamepad\n  - 升级支持 dearpygui 2.X\n  - 新增Unlocker工具\n  - 修复部分缺陷\n- 1.6.6\n  - VirtualCam 新增范围选择及运行状态提示\n  - 修复部分缺陷\n- 1.6.5\n  - 支持连接虚拟机\n- 1.6.4\n  - 统一鼠标、键盘回调函数及传参\n  - 新增指定加载插件路径\n  - Capture 新增微调功能\n- 1.6.3 \n  - 插件功能升级\n  - 鼠标支持独占模式\n  - 修复部分缺陷\n- 1.6.2 VirtualCam 插件化\n- 1.6.1 修复缺陷\n- 1.6.0\n  - 接入[uiautomator2](https://github.com/openatx/uiautomator2)\n  - 键盘控制器、鼠标控制器\n  - 日志管理器\n  - 修复窗口调整时跳动缺陷，DPG崩溃缺陷\n  - 全新插件体系，插件注入，插件管理器等\n- 1.5.10 支持插件\n- 1.5.9 新增文件管理器，支持设备文件管理，下载、上传及预览\n- 1.5.8 支持文件/文件夹/截屏一键拷贝至设备\n- 1.5.8 支持输出原始视频/音频流\n- 1.5.7 CLI启动虚拟摄像头\n- 1.5.5 优化Nicegui界面，方便termux使用\n- 1.5.4 降低CPU占用\n- 1.5.3 更新 Readme 文件\n- 1.5.3 支持Opus音频解析\n- 1.5.0 现已上线 [**pypi**](https://pypi.org/project/mysc/)\n- 1.4.2 使用[moosegesture](https://github.com/asweigart/moosegesture)实现右键手势控制功能，支持模拟第二个点、画线后退、调整音量、播放媒体等功能\n- 1.4.1 改用SQLite进行配置管理\n- 1.4.0 \n  - 久等了！全新Core/Session/Connection/Utils架构\n  - 新增窗口位置记忆功能，记录旋转前位置\n  - 支持心跳检测，自动断线重连\n  - 现已支持设备-\u003ePC 剪贴板\n  - 优化按键映射方式，Linux适用\n  - 更多控制按钮\n- 1.3.6 新增网页端设备浏览页面DEMO(Nicegui),支持鼠标输入，UHID键盘输入、ADB输入及摇杆模拟鼠标输入\n- 1.3.3 新增选择音频输出设备功能，可配合VB-Cables模拟麦克风输入\n- 1.3.2 新增[pyvirtualcam](https://github.com/letmaik/pyvirtualcam?tab=readme-ov-file),支持OBS虚拟摄像头\n- 支持连接配置保存，窗口大小保存\n- 支持无线连接，历史连接记录及快速连接功能，告别繁琐命令行\n- 支持按比例调整窗口大小、任意拉伸等功能\n- 支持有线、无线连接安卓设备\n- 支持断线重连，连接历史记录并自动尝试连接功能\n- 支持 H265连接\n- 实现了视频流解析（H264），生成numpy.ndarray，可自行使用opencv、image等进行图形处理\n- 实现了音频流解析（FLAC）, 使用 [pyflac](https://github.com/sonos/pyFLAC) 解码，[pyaudio](https://people.csail.mit.edu/hubert/pyaudio/) 播放\n- 实现了控制按键映射，鼠标映射\n- 实现了UHID-Mouse与鼠标点击混用，可以实现Android界面中鼠标与PC混用模式\n- 实现了UHID-Keyboard，支持模拟外接键盘，直接输入中文（搜狗输入法测试通过）\n- 实现了DPG GUI下，鼠标滚轮缩放、滑动等功能\n- 实现了设备锁屏下，通过InputPad输入密码解锁功能\n- DPG GUI下设备翻转图像自动调整，无限制拉伸缩放等功能\n- 实现了Ctrl调节鼠标移动速度功能\n- 采用TwinWindow思路，解决DPG控件无法重叠问题，实现DPG控制映射编辑器（TPEditor）\n- 纯Pygame控制模式下，最低延迟在6ms\n\n\n## 开发计划\n\n- APK管理器\n- 使用范例及教程\n- twisted / fastapi 接口\n- YOLO 及 快速拉框导出等训练工具\n- 视频、音频录制\n- WebRTC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fme2sy%2Fmyscrcpy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fme2sy%2Fmyscrcpy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fme2sy%2Fmyscrcpy/lists"}