3 步上手 QtScrcpy:安卓投屏控制与键鼠操作完全指南
【免费下载链接】QtScrcpyAndroid real-time display control software项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy
想把手机画面切到会议室大屏,又想在电脑上用键盘鼠标流畅玩手游,同时不 root、不往手机里装任何东西?QtScrcpy 是一款免费开源的安卓投屏控制软件,通过 USB 或 WiFi 把 Android 设备屏幕实时镜像到桌面并用键鼠操控,延迟 35~70ms,启动后 1 秒内出第一帧画面,支持 Windows、macOS、Linux 三个平台。
和官方版 scrcpy 比,它多给了你什么
QtScrcpy 基于 Google 系的开源项目 scrcpy 复刻重构,技术栈换成了 C++ + Qt + OpenGL + FFmpeg,但保留了两者的共同底线:非侵入,设备端不安装任何常驻软件(Android 端最低要求 API 21,即 Android 5.0)。
对普通用户来说,最直观的差异是:scrcpy 是命令驱动的 SDL 界面,而 QtScrcpy 把设备列表、启动参数、录制、脚本加载都做成了可视化按钮,并且加了 scrcpy 没有的两件事——自定义按键映射和多设备批量操作。
| 关键点 | scrcpy | QtScrcpy |
|---|---|---|
| 界面 | SDL | Qt 图形界面 |
| 编程方式 | C,同步 | C++,Qt 信号槽异步 |
| 按键映射 | 不支持自定义 | 支持 JSON 脚本自定义 |
| 多设备 | 单设备为主 | 多设备连接 + 批量操作 |
| 编译方式 | Meson + Gradle | CMake |
三步连上第一台设备
第 1 步:拿到程序。从项目 releases 下载对应平台的预编译版本:Windows 解压后直接运行QtScrcpy.exe,macOS 把 DMG 里的应用拖进应用程序文件夹,Arch Linux 用户执行yay -Syu qtscrcpy。想从源码构建的话:
git clone --recurse-submodules https://gitcode.com/GitHub_Trending/qt/QtScrcpy克隆完成后能看到keymap/、ci/、QtScrcpy/等目录,即成功;构建脚本在ci/下(Linux 执行ci/linux/build_for_linux.sh "Release",产物在output/x64/Release)。
第 2 步:手机侧准备。设置 → 关于手机 → 连续点 7 次"版本号"打开开发者选项,然后在开发者选项里打开"USB 调试",用数据线连上电脑,手机上弹出授权提示时点允许。✅ 看到手机弹出 USB 调试授权框并确认,即成功。
第 3 步:一键连接。打开 QtScrcpy,点击"一键 USB 连接"(或先点"刷新设备"再选设备)。✅ 1 秒内弹出独立窗口显示手机实时画面,画面跟随手机滚动,即连接成功。
QtScrcpy 在 Windows 下的主界面,左侧面板管理设备与服务,右侧为投屏窗口
不想一直插线的话,可以走无线连接:先 USB 连好,点"获取设备 IP"→"启动 adbd"→"无线连接",之后拔掉 USB 线也行(只要 adbd 还在运行,就不再需要数据线)。
把画面投出去,同时能操控
投屏只是起点,真正好用在于双向控制。鼠标点击、拖拽直接作用在手机上;窗口支持全屏、置顶;还能边投屏边录制屏幕、截图,或者勾选"仅后台录制"只录不显。
几个高频操作直接走快捷键(Windows 用 Ctrl,macOS 用 Cmd):
| 快捷键 | 功能 |
|---|---|
| Ctrl + h | 回手机主页 |
| Ctrl + b | 返回(右键双击鼠标等效) |
| Ctrl + o | 关闭手机屏幕但保持投屏 |
| Ctrl + f | 切换全屏 |
| Ctrl + w / 左键双击黑边 | 去掉黑边,窗口贴合画面 |
文件交互也省掉了 adb 命令:APK 拖进投屏窗口直接安装,普通文件拖进窗口传到手机/sdcard/(路径可在config/config.ini的PushFilePath改)。剪贴板三件套:Ctrl + c手机复制到电脑、Ctrl + Shift + v电脑注入到手机、Ctrl + v粘贴文本事件到手机。
macOS 平台下的投屏界面,多设备窗口可同时摆放
关键性能参数:30~60fps 输出,分辨率 1920×1080 以上,端到端延迟 35~70ms。声音转发基于 sndcpy(仅 Android 10+,作者标注目前不推荐,蓝牙连接是更稳的替代)。
用键盘鼠标打手游操作
原生模式下鼠标就是手指,够用但不如端游顺手。QtScrcpy 的按键映射系统把键盘按键和鼠标事件映射成手机上的触摸点击、拖拽、方向盘操作,规则写在 JSON 脚本里,放进keymap/目录就能被识别。
仓库自带了现成脚本,打开keymap/目录能看到:gameforpeace.json(和平精英)、tiktok.json(抖音,方向键映射为上下左右滑动)、identityv.json(第五人格)等。和平精英脚本里,WASD 映射为方向盘、空格是跳、左右键是开镜/开枪、鼠标移动控制视野,基本还原了端游手感。
开启和平精英按键映射后,用键盘鼠标操作手游的实战画面
启用方式是"刷新脚本 → 选择脚本 → 启动服务后点应用脚本 → 按~键切入映射模式",再按一次~切回普通控制。脚本支持 5 种映射类型(单次/双击/多次点击、拖拽、方向盘),坐标用相对位置表示(屏幕宽高各按 1 归一化),编写规则完整记录在 docs/KeyMapDes_zh.md。
同时管多台设备
设备列表支持同时接入多台手机,每台一个投屏窗口;勾选设备后启用群控,主控窗口的操作会同步到所有被勾选的设备。批量铺货、多开测试、课堂演示这类场景就靠它。
群控模式下,主控窗口的操作同步到多台设备
实战工作流:键鼠玩和平精英
完整走一遍,照着做能复现:
- 连接:数据线连手机,点"一键 USB 连接",确认投屏窗口出现。
- 加载脚本:点"刷新脚本",在下拉框里选中
gameforpeace.json。 - 应用:确认服务已启动,点"应用脚本"。
- 切换模式:进游戏后按
~键启用映射,此时鼠标移动变成视角拖拽。 - 校准坐标(换游戏或按钮对不上时):鼠标左键在投屏窗口上点一下,控制台会打印该位置的
pos值,直接填进 JSON 对应节点的pos即可;也可以在手机开发者选项里打开"显示指针位置"辅助观察。 - 上车注意:载具设置里切换为单摇杆模式,避免方向盘映射失效。
左键单击投屏窗口时控制台输出 pos 坐标,直接用于校准映射脚本
一个已知边界:和平精英中上下车会创建新界面导致触摸点失效,目前没有根治办法,连续按两次~键可以恢复,这是官方 FAQ 里给出的处理方式。
避坑与调优
Q:刷新设备后列表里没有设备?先随便用一个手机助手软件连接成功一次再回来刷新;如果报adb server version ... doesn't match this client,是电脑里多个 adb 版本打架,杀掉 adb 进程重来,或在config.ini里用AdbPath指定当前 adb 路径。
Q:能看到画面,但点不了手机?小米等机型需要在 USB 调试里额外打开"允许模拟点击"(安全设置项),见 docs/FAQ.md。
Q:能控制,但看不到画面?控制台若出现shader program is not linked,说明显卡不支持当前渲染方式,把config.ini里UseDesktopOpenGL改成1(dx 硬解)或2(opengl 硬解)再试。
Q:打不了中文?手机端装搜狗或 QQ 输入法并设为默认即可,QtScrcpy 本身支持完整中文输入。
Q:报 "Could not open video stream"?原因很多,最直接的办法是在启动配置里选一个更低的分辨率。
配置调优对照(文件:config/config.ini):
| 场景 | 参数 | 预期效果 |
|---|---|---|
| 追求最低延迟 | RenderExpiredFrames=0(默认) | 跳过过期帧,画面延迟更低 |
| 高帧率需求 | MaxFps=60(Android 10+ 生效) | 帧率上限提到 60 |
| 显卡兼容问题 | UseDesktopOpenGL=1或2 | 恢复画面渲染 |
| 无线网络弱 | 启动配置里调低分辨率 | 画面稳定不卡死 |
资源导航
- docs/FAQ.md:连接、控制、渲染类问题的官方排查清单
- docs/KeyMapDes_zh.md:按键映射脚本完整编写规则
- keymap/:和平精英、抖音、第五人格等现成映射脚本
- config/config.ini:解码方式、帧率、路径等全部可调项
- docs/DEVELOP.md:源码构建与二次开发说明,构建脚本在
ci/下
遇到问题带着控制台日志到 QQ 群 901736468 提问。先按"三步连接"把第一台设备跑起来,再逐步试无线连接和按键映射,是上手最快的路径。
【免费下载链接】QtScrcpyAndroid real-time display control software项目地址: https://gitcode.com/GitHub_Trending/qt/QtScrcpy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考