QtScrcpy 故障排查:按现象找原因
投屏类问题的排查顺序应该是“先看设备有没有被识别,再看画面能不能出来,最后看操作与流畅度”。下面按这个顺序把常见现象拆成可执行的检查项,每条都对应一个具体动作,而不是笼统的“重装试试”。
排查前先确认两件事:客户端版本(当前为 v4.2.1)与手机系统版本。很多“突然不能用了”的情况,其实是系统升级后调试授权被重置。
设备列表是空的
这是最常见的一类。按成本从低到高依次检查:
| 检查项 | 怎么判断 | 处理 |
|---|---|---|
| 数据线只能充电 | 手机上不出现“USB 用途”选择 | 换一根支持数据传输的线,选择“传输文件(MTP)” |
| 未授权调试 | 手机没有弹出 RSA 指纹确认框 | 开发者选项里“撤销 USB 调试授权”,重新插线确认 |
| 驱动缺失 | Windows 设备管理器出现未知设备 | 安装手机厂商驱动或 Google USB Driver |
| adb 被占用 | 其他手机助手、模拟器正在运行 | 结束占用进程,或统一 adb 版本(见下文) |
| USB 调试未开 | 开发者选项里开关是关闭状态 | 打开“USB 调试”,部分机型还需打开“USB 安装” |
官方 FAQ 还给了一个偏方:先用任意手机助手连接成功一次,再回到 QtScrcpy 刷新设备列表。它本质上是用助手把驱动与授权走通一遍,适合驱动缺失但不想手动找安装包的场景。
有画面但无法控制
能出画面说明视频通道正常,问题出在输入注入权限。小米等机型需要在开发者选项里额外打开“USB 调试(安全设置)”,允许通过 USB 调试模拟点击;只开普通的“USB 调试”不够。
另外两种情况也会表现为“控制无效”:手机处于锁屏状态(先解锁再操作),以及目标应用使用了安全窗口(例如支付确认页),系统会拒绝注入触摸事件。
画面全黑
- 应用启用了防截屏。银行、支付、部分视频与办公应用会设置
FLAG_SECURE,系统层面禁止画面被捕获。这不是 QtScrcpy 的缺陷,任何投屏工具都绕不过去。 - 分辨率或编码器不兼容。在启动配置里换一个较低的分辨率,或切换编码器再试。
- 显卡渲染异常。如果控制台出现
QOpenGLShaderProgram::attributeLocation(vertexIn): shader program is not linked,说明当前渲染方式不被显卡支持。打开安装目录下的config.ini,把解码方式改为 1 或 2 后重启软件。
画面模糊
Windows 上最常见的原因是高 DPI 缩放。处理方式:右键 QtScrcpy.exe → 属性 → 兼容性 → 更改高 DPI 设置 → 勾选“覆盖高 DPI 缩放行为”,缩放执行者选择“应用程序”。
第二种原因是窗口尺寸远小于设备分辨率,画面被压缩后文字必然发虚。把窗口拉大,或在启动配置里降低设备端的输出分辨率,让两者匹配。第三种是比特率设得太低,提高码率即可改善细节。
卡顿与延迟高
| 现象 | 更可能的原因 | 处理 |
|---|---|---|
| USB 下也卡,鼠标移动有延迟 | 分辨率或码率超出解码能力 | 降到 1280×720、比特率 4–8 Mbps |
| 无线才卡,USB 正常 | Wi-Fi 带宽或干扰 | 改用 5 GHz,靠近路由器,避开拥塞信道 |
| 画面周期性停顿 | 后台录制或磁盘写入 | 关闭后台录制,换到 SSD 保存 |
| 整机卡顿、风扇狂转 | 软件解码占用 CPU | 确认硬解是否生效,关闭其他高负载程序 |
adb 版本冲突
报错长这样:
adb server version (41) doesn't match this client (39); killing...
含义是电脑上同时存在两个版本的 adb,客户端与服务端协议不一致。两种处理方式:
- 在任务管理器里结束所有
adb.exe进程,再重新操作; - 打开
config.ini,把AdbPath指向你实际使用的那份 adb,保证全局只有一份。
Android Studio、模拟器、手机助手、投屏工具经常各自带一份 adb,这是冲突的主要来源。排查时把它们全部退出,再逐个启动,就能找到是谁在抢端口。
视频流打不开
报错 Could not open video stream 的原因很多,官方 FAQ 给出的最简处理是:在分辨率设置里选择一个较低的值。如果仍然失败,依次检查编码器、设备是否支持所选分辨率、以及手机端 scrcpy server 是否被杀毒软件拦截。
其他高频问题
- 无法输入中文
- 在手机端安装搜狗输入法或 QQ 输入法,切换到该输入法后即可通过电脑键盘输入中文。
- 没有声音
- QtScrcpy 以画面与控制为主,音频转发依赖 sndcpy,仅支持 Android 10 及以上,且官方明确标注“目前不推荐使用”。需要声音时建议用蓝牙连接音箱或耳机。
- macOS 提示无法打开
- 应用经过 ad-hoc 签名但未公证。到“系统设置 → 隐私与安全性”点击“仍要打开”,或执行
xattr -dr com.apple.quarantine /Applications/QtScrcpy.app。 - 手机息屏后断连
- 开发者选项里开启“保持唤醒”(充电时不锁屏),并关闭针对该应用的电池优化。
- 玩和平精英上下车后按键失效
- 游戏切换界面会重建触摸层,官方建议连续按两次
~键恢复映射,目前没有更好的办法。
还是解决不了
提 Issue 前先准备好三样东西:客户端版本号、手机型号与系统版本、控制台里的完整报错。先到官方仓库的 Issues 里搜索报错关键词,多数问题已经有结论。仓库地址与 FAQ 链接见关于页的参考资料。