开放代码社区 › QtScrcpy 安卓投屏控制工具
QtScrcpy 安卓投屏控制工具
开发工具CQtScrcpy 是一款基于 scrcpy 重构的安卓设备投屏与控制软件,通过 USB 或网络连接 Android 设备,无需 root 权限即可实时显示屏幕并用键鼠操作。支持 Windows、macOS、Linux 三大平台,具备低延迟、高画质、屏幕录制、截图、多设备批量控制、自定义按键映射、apk 安装与文件传输等功能,适用于手游键鼠操作、多机管理与演示教学等场景。
仓库地址
https://gitee.com/Barryda/QtScrcpy.gitREADME
# QtScrcpy







[Speaks English? Click me for English introduction.](https://gitee.com/Barryda/QtScrcpy/blob/dev/README.md)
QtScrcpy 可以通过 USB / 网络连接Android设备,并进行显示和控制。无需root权限。
同时支持 GNU/Linux ,Windows 和 MacOS 三大主流桌面平台。
它专注于:
- **精致** (仅显示设备屏幕)
- **性能** (30~60fps)
- **质量** (1920×1080以上)
- **低延迟** ([35~70ms][低延迟])
- **快速启动** (1s 内就可以看到第一帧图像)
- **非侵入性** (不在设备上安装任何软件)
[低延迟]: https://github.com/Genymobile/scrcpy/pull/646



## 作者开发了更加专业的投屏软件`极限投屏`
极限投屏功能&特点:
- 设备投屏&控制:批量投屏、单个控制、批量控制
- 分组管理
- wifi投屏/OTG投屏
- adb shell快捷指令
- 文件传输、apk安装
- 投屏数量多:在OTG投屏模式,设置分辨率和流畅度为低的情况下,单台电脑可以同时管理500+台手机
- 低延迟:usb投屏1080p延迟在30ms以内,在相同分辨率流畅度情况下,比市面上所有投屏软件延迟都低
- cpu占用率低:纯C++开发,高性能GPU视频渲染
- 高分辨率:可调节,最大支持安卓终端的原生分辨率
- 完美中文输入:支持闲鱼app,支持三星手机
- 免费版最多投屏10台,功能无限制(除了自动重新投屏)
- 极限投屏使用教程:https://lrbnfell4p.feishu.cn/docx/QRMhd9nImorAGgxVLlmczxSdnYf
- 极限投屏qq交流群:822464342
- 极限投屏界面预览:

## 自定义按键映射
可以根据需要,自己编写脚本将键盘按键映射为手机的触摸点击,编写规则在[这里](https://gitee.com/Barryda/QtScrcpy/blob/dev/docs/KeyMapDes_zh.md)。
默认自带了针对和平精英手游和抖音进行键鼠映射的映射脚本,开启平精英手游后可以用键鼠像玩端游一样玩和平精英手游,开启抖音映射以后可以使用上下左右方向键模拟上下左右滑动,你也可以按照[编写规则](https://gitee.com/Barryda/QtScrcpy/blob/dev/docs/KeyMapDes_zh.md)编写其他游戏的映射文件,默认按键映射如下:

自定义按键映射操作方法如下:
- 编写自定义脚本放入 keymap 目录
- 点击刷新脚本,确保脚本可以被检测到
- 选择需要的脚本
- 连接手机并启动服务之后,点击应用脚本
- 按`~`(即脚本中定义的 SwitchKey)键切换为自定义映射模式即可启用
- 再次按~键切换为正常控制模式
- (对于和平精英等游戏)若想使用方向盘控制载具,记得在载具设置中设置为单摇杆模式
如果不会自己手写映射规则,也可以去使用作者开发的`极限手游助手`
极限手游助手功能&特点:
- 通过键盘鼠标畅玩安卓手机游戏
- 按键映射脚本界面化编辑
- 支持暂停电脑端画面,只使用键鼠操作
- 截图&录制手机画面
- 简单批量控制
- 安卓11+支持电脑播放手机音频(开发中...)
- 手机端免安装App
- 极速秒连接
- 低延迟:usb投屏1080p延迟在30ms以内,在相同分辨率流畅度情况下,比市面上所有投屏软件延迟都低
- cpu占用率低:纯C++开发,高性能GPU视频渲染
- 高分辨率:可调节,最大支持安卓终端的原生分辨率
- [QQ交流群:901736468](https://qm.qq.com/q/wRJJaWLWc8)
- [极限手游助手说明文档](https://lrbnfell4p.feishu.cn/drive/folder/Hqckfxj5el1Wjpd9uezcX71lnBh)
## 批量操作
你可以同时控制所有的手机
## Star历史
[](https://star-history.dera.page/#barry-ran/QtScrcpy&Date)

## 感谢
基于[Genymobile](https://github.com/Genymobile)的[scrcpy](https://github.com/Genymobile/scrcpy)项目进行复刻,重构,非常感谢。
## 比较
QtScrcpy 和 Scrcpy 区别如下:
关键点|scrcpy|QtScrcpy
--|:--:|:--:
界面|sdl|qt
视频解码|ffmpeg|ffmpeg
视频渲染|sdl|opengl
跨平台基础设施|自己封装|Qt
编程语言|C|C++
编程方式|同步|异步
按键映射|不支持自定义|支持自定义按键映射
编译方式|Meson+Gradle|CMake
- 使用Qt可以非常容易的定制自己的界面
- 基于Qt的信号槽机制的异步编程提高性能
- 方便新手学习
- 增加多点触控支持
## 学习它
如果你对它感兴趣,想学习它的实现原理而又感觉无从下手,可以选择购买我录制的视频课程,
里面详细介绍了整个软件的开发架构以及开发流程,带你从无到有的开发 QtScrcpy:
课程介绍:[https://blog.csdn.net/rankun1/article/details/87970523](https://blog.csdn.net/rankun1/article/details/87970523)
或者你也可以加入我的 QtScrcpy QQ 群,和志同道合的朋友一块互相交流技术:
QQ群号:901736468
## 要求
Android 部分至少需要 API 21(Android 5.0)。
您要确保在 Android 设备上[启用adb调试][enable-adb]。
[enable-adb]: https://developer.android.com/studio/command-line/adb.html#Enabling
## 下载
[gitee-download]: https://gitee.com/Barryda/QtScrcpy/releases
[github-download]: https://github.com/barry-ran/QtScrcpy/releases
### Windows
Windows 平台,你可以直接使用我编译好的可执行程序:
- [国内下载][gitee-download]
- [国外下载][github-download]
你也可以[自己编译](##编译)
### Mac OS
Mac OS 平台,你可以直接使用我编译好的可执行程序:
- [国内下载][gitee-download]
- [国外下载][github-download]
你也可以[自己编译](##编译)
### Linux
对于 Arch Linux 用户,可以使用 AUR 安装:`yay -Syu qtscrcpy`(可能版本并非最新;维护者:[yochananmarqos](https://aur.archlinux.org/account/yochananmarqos))
其他发行版的用户可以直接使用我编译好的可执行程序:
- [国外下载][github-download]
你也可以从 [GitHub Actions](https://github.com/UjhhgtgTeams/QtScrcpy/actions/workflows/ubuntu.yml) 获取最新的自动编译好的软件
当然,你也可以[自己编译](##编译)(不推荐,需要准备环境)
目前只在 Ubuntu 和 Arch Linux 上测试过编译过程
## 运行
在你的电脑上接入Android设备,然后运行程序,点击 `一键USB连接` 或者 `一键WIFI连接`
### 无线连接步骤
1. 将手机和电脑连接到同一局域网
2. 安卓手机端在开发者选项中打开 USB 调试
3. 通过 USB 连接安卓手机到电脑
4. 点击刷新设备,会看到有设备号更新出来
5. 点击获取设备 IP
6. 点击启动 adbd
7. 无线连接
8. 再次点击刷新设备,发现多出了一个 IP 地址开头的设备,选择这个设备
9. 启动服务
备注:启动 adbd 以后无需继续连接 USB 线,以后连接断开都不再需要,除非 adbd 停止运行
## 界面解释
- 启动配置:启动服务前的功能参数设置
分别可以设置本地录制视频的比特率、分辨率、录制格式、录像保存路径等。
- 仅后台录制:启动服务不显示界面,只录制 Android 设备屏幕
- 窗口置顶:Android 设备显示窗口置顶
- 自动息屏:启动服务以后,自动关闭 Android 设备屏幕以节省电量
- 使用 Reverse:服务启动模式,出现服务启动失败报错 "more than one device" 可以去掉这个勾选尝试连接
- 刷新设备列表:刷新当前连接的设备
- 启动服务:连接到 Android 设备
- 停止服务:断开与 Android 设备的连接
- 停止所有服务:断开所有已连接的 Android 设备
- 获取设备ip:获取到 Android 设备的 IP 地址,更新到无线区域中,方便进行无线连接
- 启动adbd:启动 Android 设备的 adbd 服务,无线连接之前,必须要启动
- 无线连接:使用无线方式连接 Android 设备
- 无线断开:断开无线方式连接的 Android 设备
- 命令行:执行自定义 adb 命令(目前不支持阻塞命令,例如shell)
## 功能
- 实时显示 Android 设备屏幕
- 实时键鼠控制Android设备
- 屏幕录制
- 截图
- 无线连接
- 多设备连接与批量操作
- 全屏显示
- 窗口置顶
- 安装 apk:拖拽apk到显示窗口即可安装
- 传输文件:拖拽文件到显示窗口即可发送文件到 Android 设备
- 后台录制:只录制屏幕,不显示界面
- 剪贴板同步:
在计算机和设备之间同步剪贴板:
- `Ctrl + c`将设备剪贴板复制到计算机剪贴板;
- `Ctrl + Shift + v`将计算机剪贴板复制到设备剪贴板;
- `Ctrl + v` 将计算机剪贴板作为一系列文本事件发送到设备(不支持非ASCII字符)
- 同步设备扬声器声音到电脑(基于[sndcpy](https://github.com/rom1v/sndcpy),仅支持安卓10级以上,目前不推荐使用,可使用蓝牙连接替代)
## 快捷键
| 功能 | 快捷键(Windows) | 快捷键 (macOS)
| -------------------------------------- |:----------------------------- |:-----------------------------