scrcpy
Genymobile 出品的高性能 Android 屏幕镜像与控制工具。通过 USB 或 Wi-Fi 将手机画面实时投射到电脑,支持键鼠操作、屏幕录制、文件拖放。
为什么需要它
低延迟、高质量地将 Android 屏幕镜像到 PC 并进行完整键鼠控制。免费开源,设备端无需安装任何 App,无需 root。
系统要求
Android 5.0+ | USB 调试已开启 | adb 可用
核心优势
性能表现
| 指标 | USB | Wi-Fi (5GHz) |
|---|---|---|
| 延迟 | 35 - 70 ms | 80 - 150 ms |
| 帧率 | 60 - 120 fps | 30 - 60 fps |
| 分辨率 | 原始分辨率 | 建议限 1920x1080 |
| 启动时间 | ~1s | ~2s |
| 带宽 | N/A (USB) | 15 - 30 Mbps |
性能优化建议
- USB 连接始终优于 Wi-Fi,调试场景优先用 USB
- 降低码率:
-b 4M可减少带宽占用 - 降低分辨率:
-m 1024限制最大尺寸 - 锁定帧率:
--max-fps 30稳定体验 - Wi-Fi 场景使用
-b 2M -m 1024 --max-fps 30组合
快速上手
安装
Windows
从 GitHub Releases 下载 scrcpy-win64-*.zip,解压即可用。确保 adb.exe 在 PATH 中(压缩包内已包含)。
macOS
brew install scrcpy
Linux
sudo apt install scrcpy
# 或
sudo snap install scrcpy
基本用法
# USB 连接(确保已开启 USB 调试)
scrcpy
# 指定最大分辨率
scrcpy -m 1920
# 限制帧率和码率
scrcpy -m 1024 --max-fps 30 -b 4M
# 无限帧率(最高性能)
scrcpy --max-fps=120
无线连接
自动模式(推荐,v2.0+)
先 USB 连接设备,然后执行:
# 自动切换到 TCP/IP 模式(默认端口 5555)
scrcpy --tcpip
# 指定 IP 和端口
scrcpy --tcpip=192.168.1.100:5555
手动模式
# 1. USB 连接后,获取设备 IP
adb shell ip addr show wlan0
# 2. 启用 TCP/IP 模式
adb tcpip 5555
# 3. 拔掉 USB,通过 Wi-Fi 连接
adb connect 192.168.1.100:5555
# 4. 启动 scrcpy
scrcpy
常用操作
# 关闭设备屏幕(仅投射)
scrcpy -S
# 横屏显示
scrcpy --rotation 1
# 始终置顶
scrcpy --always-on-top
# 显示触摸轨迹(演示用)
scrcpy --show-touches
# 禁止休眠
scrcpy --stay-awake
# 组合:关闭屏幕 + 禁止休眠 + 置顶(适合挂机/远程)
scrcpy -S --stay-awake --always-on-top
# 文件拖放:直接拖拽 APK 到窗口即安装
# 文件拖拽到窗口即推送到 /sdcard/Download/
快捷键
MOD = 左 Alt 或左 Super (Windows 键)
| 快捷键 | 功能 |
|---|---|
MOD + f | 全屏切换 |
MOD + Left | 向左旋转画面 |
MOD + Right | 向右旋转画面 |
MOD + ... (数字) | 缩小窗口 |
MOD + + | 放大窗口 |
MOD + h / Middle-click | HOME 键 |
MOD + b | BACK 键 |
MOD + s | RECENT (多任务) 键 |
MOD + n | 展开通知栏 |
MOD + Shift + n | 折叠通知栏 |
MOD + o | 关闭设备屏幕 |
MOD + Shift + o | 打开设备屏幕 |
MOD + p | 暂停/恢复屏幕 |
MOD + r | 录制屏幕(开始/停止) |
MOD + c | 复制设备剪贴板到电脑 |
MOD + v | 粘贴电脑剪贴板到设备 |
MOD + i | 切换 HID 键盘模式 |
MOD + x | 安装 APK(弹出文件选择器) |
MOD + m | 静音 |
MOD + Up / Down | 音量调节 |
MOD + e | 打开设备摄像头(Android 12+) |
Power | 电源键(短按亮屏/息屏) |
屏幕录制
# 录制到文件
scrcpy --record demo.mp4
# 录制时关闭屏幕(省电)
scrcpy --record demo.mp4 -S
# 录制时禁用镜像显示(无窗口,纯录制)
scrcpy --record demo.mp4 --no-display
# 指定录制格式
scrcpy --record demo.mkv --record-format mkv
# 运行中按 MOD + r 也可随时开始/停止录制
录制参数建议
- 默认使用 H.264 编码,mp4 格式兼容性最好
- 高画质录制:
-b 8M -m 1920 --max-fps 60 --record out.mp4 - 无窗口纯录制适合 CI/自动化场景
高级功能
摄像头镜像(Android 12+)
# 打开设备摄像头并镜像
scrcpy --video-source=camera
# 指定前置/后置摄像头
scrcpy --video-source=camera --camera-facing=front
scrcpy --video-source=camera --camera-facing=back
# 列出可用摄像头
scrcpy --list-cameras
虚拟显示器
# 创建虚拟显示器(Android 10+,无需物理屏幕)
scrcpy --new-display
# 指定虚拟显示器分辨率
scrcpy --new-display=1920x1080
OTG 模式(键鼠直通)
# OTG 模式:键盘鼠标直接发送 HID 事件到设备
# 注意:此模式下电脑鼠标被捕获,按 MOD 退出
scrcpy --otg
音频控制
# 转发设备音频到电脑(Android 11+)
scrcpy --audio
# 仅转发音频(无画面)
scrcpy --audio --no-video
# 指定音频编码
scrcpy --audio-codec=aac
scrcpy --audio-codec=opus
# 不转发音频
scrcpy --no-audio
V4L2 摄像头输出(仅 Linux)
# 将设备摄像头作为 Linux V4L2 设备输出
# 需安装 v4l2loopback-dkms
sudo modprobe v4l2loopback
scrcpy --video-source=camera --v4l2-sink=/dev/video2
# 之后其他程序(如 OBS、Zoom)可直接使用 /dev/video2
鼠标映射
| 鼠标操作 | 设备动作 |
|---|---|
| 左键点击 | 触摸点击 |
| 右键点击 | BACK 键 |
| 中键点击 | HOME 键 |
| 左键长按 | 长按(拖拽、选择文字) |
| 双击左键 | 双击(放大/缩小等) |
| 滚轮上/下 | 垂直滚动 |
| Shift + 滚轮 | 水平滚动 |
| Ctrl + 左键拖拽 | 捏合缩放(模拟双指) |
| Ctrl + 右键拖拽 | 倾斜(模拟双指倾斜) |
适用场景
💻 开发调试
实时查看 App 运行效果,无需低头看手机。配合 --show-touches 录制操作复现 Bug。
🎞 演示分享
会议中投屏演示手机 App,全屏模式画质清晰。可配合录制功能留档。
🎥 屏幕录制
高质量录制 App 操作流程,用于教程、测试归档。支持 --no-display 后台录制。
🖥 无头设备管理
管理无屏幕的 Android 设备(如测试 farm)。虚拟显示器 --new-display 无需物理屏幕。
🤝 远程协助
通过 Wi-Fi + adb connect 远程操控设备,配合 -S 关屏省电。
📷 手机当摄像头(Linux)
使用 V4L2 sink 将手机摄像头接入 OBS/Zoom 等应用,替代专业摄像头。
已知坑
⚠ 小米设备额外设置
MIUI 需额外开启「USB 调试(安全设置)」和「USB 安装」权限,否则点击操作可能无响应。路径:开发者选项 → USB 调试(安全设置)。
⚠ Unicode / 中文输入
默认模式使用按键注入,不支持直接输入中文等 Unicode 字符。需启用 HID 模式:scrcpy --keyboard=idb 或运行时按 MOD + i 切换。HID 模式下键盘被捕获,输入体验更接近实体键盘。
⚠ adb 版本冲突
系统可能存在多个 adb(如 Android Studio 自带、平台工具包、scrcpy 自带)。版本不匹配会导致连接失败。建议使用 scrcpy 包自带的 adb,或将最新 platform-tools 加入 PATH。
⚠ Windows Defender 误报
scrcpy 的 Windows 版本偶尔被 Windows Defender 标记为恶意软件(因 adb 注入行为)。需手动添加排除项,或在 Defender 日志中确认误报。
⚠ Wi-Fi 延迟
无线连接延迟显著高于 USB(80-150ms vs 35-70ms),不适合实时游戏或快速操作。建议调试场景优先 USB,远程/演示场景可接受 Wi-Fi。
⚠ 音频转发需 Android 11+
--audio 参数仅在 Android 11 及以上版本生效。Android 10 及以下只能镜像画面,无声音。音频编码默认 opus,可选 aac。
⚠ 摄像头镜像需 Android 12+
--video-source=camera 功能需要 Android 12+。低于此版本的设备无法使用摄像头镜像和 V4L2 sink。
竞品对比
| 特性 | scrcpy | Vysor | AirDroid | QtScrcpy | Samsung DeX |
|---|---|---|---|---|---|
| 开源 | ✔ Apache 2.0 | ✘ 商业 | ✘ 商业 | ✔ Apache 2.0 | ✘ 三星独占 |
| 价格 | 免费 | 免费版低画质 / Pro $2.5/月 | 免费版有限制 / Premium $3.5/月 | 免费 | 免费(需三星设备) |
| 延迟 | 35-70ms | 100-200ms | 150-300ms | 35-70ms | 50-100ms |
| 设备端安装 | 无需 | 需安装 App | 需安装 App | 无需 | 内置 |
| GUI | 命令行 | GUI | GUI + Web | GUI(Qt) | GUI |
| 跨平台 | Win/Mac/Linux | Win/Mac/Linux/Chrome | Win/Mac/Web | Win/Mac/Linux | Win/Mac(三星限制) |
| 屏幕录制 | ✔ | Pro only | ✔ | ✔ | ✔ |
| 文件传输 | 拖放 APK/文件 | ✔ | ✔ | 拖放 | ✔ |
生态社区
⭐ 142k+ Stars
GitHub 上最受欢迎的 Android 工具之一,持续活跃开发,issue 响应及时。
🛠 活跃维护
Genymobile 团队持续维护,版本迭代快。最新 v3.3.4 持续修复与新功能。
🎨 QtScrcpy(GUI 前端)
社区项目,为 scrcpy 提供 Qt 图形界面。支持多设备同时连接、按键映射、脚本录制回放。适合不熟悉命令行的用户。
👥 社区规模
Reddit r/scrcpy、GitHub Discussions 活跃。各平台教程丰富,中文社区资料充足。
引入评估
相关链接
- GitHub 仓库 源码、文档、Issue 追踪
- Releases 下载 Windows/macOS/Linux 预编译包
- QtScrcpy GUI 前端,支持多设备、按键映射、脚本回放
个人笔记
自动保存至 localStorage,刷新页面不丢失