scrcpy 安卓投屏控制完全指南:三步把手机画面搬到电脑并实现操控
【免费下载链接】scrcpyDisplay and control your Android device项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy
scrcpy 是一款免费开源的安卓投屏控制工具:它把通过 USB 或 Wi‑Fi 连接的安卓设备的画面(含声音)镜像到电脑上,并允许你用电脑的键盘和鼠标反向操作手机,不需要 root,也不会在手机端留下安装痕迹。如果你经常要在电脑上处理手机事务、录屏取证或做演示,这份指南可以直接照着做。
📦 开始前的环境准备
- 设备端:安卓 5.0 及以上(API 21);音频随视频一起转发要求 Android 11 及以上,Android 12 起开箱即用。
- 权限开关:在开发者选项中打开"USB 调试"。部分机型(如小米)还要额外打开"USB 调试(安全设置)"并重启一次,否则键盘鼠标无法注入事件。
- 安装客户端:Linux 用包管理器直接装;Windows/macOS 下载预编译版本;也可以从源码构建:
git clone https://gitcode.com/GitHub_Trending/sc/scrcpy cd scrcpy && ./gradlew build- 确认 adb 可见设备:运行
adb devices,能列出序列号即可;多台设备连接时后续用-s 序列号指定目标。
📺 完成第一次投屏
把设备用 USB 线接入电脑,在终端运行一条命令即可看到画面:
scrcpy正常情况下约 1 秒出现首帧,窗口标题为设备型号。此时已可开始交互:鼠标左键等同手指触摸,右键触发"返回",中键触发"主页",Alt+f 切换全屏(Alt 即默认修饰键 MOD,可用--shortcut-mod换其他键)。
⌨️ 高频任务逐个练
安卓设备无线连接配置
无线模式让 adb 改走 TCP/IP(默认端口 5555),设备需与电脑在同一网络。最省事的写法是让 scrcpy 自动完成切换——先插着 USB 线运行:
scrcpy --tcpip它会自动获取设备 IP、开启 TCP/IP 模式并建立连接,之后可拔掉数据线。手动流程则是先adb tcpip 5555,再adb connect 设备IP:5555,最后照常运行scrcpy;结束时执行adb disconnect收尾。
投屏同时录制屏幕视频
录制在设备上编码,文件干净且不受网络抖动影响,支持 MP4、MKV 等容器(按文件名扩展名自动选择):
scrcpy -r recording.mp4按 Ctrl+C 停止。加--time-limit=20可按秒数限时;只录视频加--no-audio,只录音频用--no-video --record=file.opus。
拖拽文件进手机
无需额外命令:把非 APK 文件拖进 scrcpy 窗口,会直接推送到设备的/sdcard/Download/;拖入 APK 文件则触发安装。想在启动时改目标目录:
scrcpy --push-target=/sdcard/Movies/窗口本身没有视觉反馈,结果以终端日志为准。
物理键鼠接管(HID 模拟)
默认的输入走 Android API 注入;改用 HID 模式后,设备会认为自己插上了一把真实键盘,兼容性更好:
scrcpy --keyboard=uhid配合鼠标可用--mouse=uhid。此时 Ctrl+C、Ctrl+V 会被直接转发给设备内的应用;个别应用拦截了这些组合键时,可用 Alt+c / Alt+x / Alt+v(MOD 系列,仅 Android 7 以上)执行系统级复制、剪切、粘贴。
设备声音转发到电脑
Android 11 起音频默认随视频转发,无需额外参数;Android 11 首次启动时请保持屏幕已解锁,系统会短暂弹出一个窗口用于放行采集。要反向关掉声音:
scrcpy --no-audio若只想听声音不显示画面,用scrcpy --no-video --no-control;遇到 "Failed to initialize audio/opus" 报错说明设备没有 Opus 编码器,换--audio-codec=aac即可。
真实场景怎么用
移动办公:投屏后不想让手机屏幕一直亮着耗电,直接运行scrcpy -S关闭设备屏幕而镜像继续,快捷键 Alt+o 也能随时切换开关屏状态,查看消息、回邮件不再需要拿起手机。
教学演示:讲师在大屏上操作手机时,加一个参数就能把操作过程完整留存为可回放的资料:scrcpy -r demo.mp4,时间戳打在设备端,回放不受卡顿影响。
游戏直播:给推流软件准备的常用组合是锁 60 帧、8M 码率并关掉本地音频,降低编码压力:
scrcpy --max-fps=60 --video-bit-rate=8M --no-audio🔧 排查与调优
| 现象 | 原因方向 | 处理动作 |
|---|---|---|
| 画面卡顿、掉帧明显 | 分辨率或码率超出设备编码能力 | 限制宽高:scrcpy -m 1024;必要时降码率-b 2M或限制帧率--max-fps=30 |
| 投屏时手机发烫耗电快 | 设备屏幕仍在全亮运行 | 关设备屏幕继续镜像:scrcpy -S或按 Alt+o |
| 画面模糊 | 码率不足 | 提高码率--video-bit-rate=8M以上,或换 h264/h265 对比:--video-codec=h265 |
| 无音频(Android 11 设备) | 启动时屏幕未解锁,采集被系统拦截 | 解锁屏幕后重启 scrcpy |
| 键盘鼠标无响应 | 缺少"USB 调试(安全设置)"授权 | 开发者选项中开启该选项并重启设备 |
| 完全连不上 | adb 守护进程状态异常 | 先adb kill-server && adb start-server,再重新授权 USB 调试 |
| 音频偶发破音 | 缓冲过小 | 加大缓冲--audio-buffer=200,纯观看场景可同时加--video-buffer=200 |
进阶玩法
- V4L2 虚拟摄像头(仅 Linux):安装
v4l2loopback内核模块并加载后,把手机画面挂成电脑上的摄像头设备供 OBS、会议软件调用:scrcpy --v4l2-sink=/dev/video2 --no-playback,设备号用ls /dev/video*确认。 - OTG 反向控制:
scrcpy --otg让电脑键鼠像插了 OTG 线一样直接控制设备,全程不依赖 adb,因此 USB 调试可以关闭;该模式下音视频转发默认关闭,手柄需另加--gamepad=aoa启用。 - 手柄支持:把电脑上的手柄映射成设备的物理手柄,投屏时运行
scrcpy --gamepad=uhid(短参-G);UHID 依赖设备端内核模块,老旧系统可能因权限失败,此时可改用--gamepad=aoa(仅限 USB)。
小结
scrcpy 的核心价值在于:一条命令完成投屏与操控,再用少量参数覆盖录制、无线、虚拟摄像头等扩展需求,整个过程对手机端零侵入。建议从scrcpy本身跑通后再按需叠加参数,遇到行为差异时对照项目内文档定位。
延伸阅读(项目内文档路径):
- 连接与无线:
doc/connection.md - 视频参数:
doc/video.md - 音频机制:
doc/audio.md - 快捷键全表:
doc/shortcuts.md - 剪贴板与文件推送:
doc/control.md
【免费下载链接】scrcpyDisplay and control your Android device项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考