scrcpy 是 Genymobile 开源的安卓设备投屏与控制工具,用 C 语言编写,基于 FFmpeg 与 SDL2,通过 adb 传输并利用设备端硬件编码实现 35~70ms 低延迟、最高 120fps 的实时镜像。它无需 root、无需在手机安装应用,支持音频转发、录制、虚拟显示、熄屏投屏、摄像头镜像与 HID 键鼠模拟,跨 Linux、Windows、macOS,免费无广告。
适用人群:1. 需要在大屏幕上操作手机、演示 App 或做移动端调试的开发者与测试人员;2. 追求轻量高效、不愿安装臃肿商业投屏软件的极客与运维人员;3. 需要录制手机操作教程、做直播推流或把手机当摄像头的视频创作者与远程办公用户。
适用场景:1. 移动应用开发调试:在电脑键鼠上直接操作真机,配合熄屏投屏与录制快速复现问题;2. 会议演示与教学录屏:把手机画面以 1080P 以上画质低延迟投到电脑,同步录制操作过程;3. 远程与无网环境控制:通过 TCP/IP 无线连接或 OTG 模式控制设备,不依赖账号、广告与外网。
推荐理由:如果你需要一个不装手机端 App、不 root、无广告、延迟低到可以玩游戏的投屏方案,scrcpy 几乎是当前最优解。15 万 star 与持续迭代的版本证明了它的可靠性,命令行参数丰富,也便于脚本化与二次开发集成。
项目定位与背景
scrcpy(读作 screen copy)是 Genymobile 开源的安卓设备显示与控制工具,采用 C 语言编写,当前版本 v5.0.1,在 GitHub 已积累约 15.3 万 star 与 1.4 万 fork,是同类项目中罕见的高热度基础工具。它的目标非常克制:只做一件事,把 Android 设备的画面与声音镜像到电脑,并允许用电脑的键盘鼠标反向控制设备。README 明确提示官方仓库只有一个,提醒用户不要从名称含 scrcpy 的随机网站下载安装包,这种安全提醒本身也说明了项目的知名度已经引来了仿冒分发。
项目的定位是轻量、非侵入。它不需要 root 权限,不需要在手机上安装任何应用,也不依赖账号、广告和外网,Linux、Windows、macOS 三端均可运行。设备端最低要求是 Android 5.0(API 21),音频转发则需要 Android 11 及以上。
核心功能与技术架构
scrcpy 的架构相当清晰:电脑端通过 adb 把一个小型 server 程序推送到设备并启动,设备侧调用 Android 的 MediaCodec 用硬件编码器把屏幕画面编码为 H.264 或 H.265 视频流(新版本还支持音频流),再通过 adb 建立的通道回传;电脑端用 FFmpeg/libav 解码,用 SDL2 渲染窗口并处理输入。控制指令则通过 adb 注入输入事件,或在 HID 模式下模拟真实的物理键盘鼠标。整个过程没有虚拟机和容器开销,这也是它能做到约 1 秒出首帧、35~70ms 延迟、30~120fps 的原因。
功能面已经远超“投屏”二字:音频转发、屏幕录制、虚拟显示(可在后台创建一个独立显示而不镜像物理屏幕)、熄屏投屏、双向复制粘贴、可配置分辨率与码率、Android 12 以上的摄像头镜像、Linux 下通过 V4L2 把设备输出为系统摄像头、物理键鼠模拟、游戏手柄支持,以及完全不依赖 adb 调试授权的 OTG 模式。
创新点与亮点
第一是极致轻量与非侵入。设备端不留安装痕迹,退出即干净,不需要为投屏改动系统。第二是延迟与画质的平衡,通过硬件编码加直通传输,把投屏从“看个大概”变成“可以真的用键鼠操作游戏”。第三是虚拟显示与熄屏投屏这类细节设计,让用户在手机屏幕关闭的状态下继续操作,既省电又避免隐私外露。第四是 HID 与 OTG 两条备用控制链路,当某些机型(尤其小米)报出 INJECT_EVENTS 权限错误时,可以作为绕行方案。第五是 V4L2 输出,让手机瞬间变成 Linux 上的高质量网络摄像头。
与同类项目对比
与 Vysor、AirDroid 等商业或半商业方案相比,scrcpy 的优势在于原生 C 实现带来的低延迟、高帧率,完全免费开源,没有账号体系与广告,也不需要手机端常驻应用。代价是它更偏“工具”而非“平台”:没有内置的跨网络远程穿透、文件管理、多设备管理面板,这些能力通常由 QtScrcpy、guiscrcpy 等第三方 GUI 或用户自己搭建的端口转发补齐。此外音频转发受限于 Android 版本,老设备只能投画面。
上手指南或快速开始
使用前提只有两个:Android 5.0 以上设备,以及开启 USB 调试。Linux 用户可直接通过发行版仓库安装,Windows 与 macOS 用户下载官方 release 压缩包即可,包内自带 adb 与 server 组件。连接后运行默认命令就能出画面,常用参数包括限制分辨率、设置码率与帧率上限、关闭音频、熄屏投屏、保持唤醒、边投边录制;无线场景可先执行 adb tcpip 5555 再用 adb connect 连接设备 IP。小米等机型若无法键鼠控制,需额外开启“USB 调试(安全设置)”并重启设备。
总结与展望
scrcpy 的价值在于把一个高频需求做到了近乎最优的实现:足够小、足够快、足够自由。它的缺点同样明确,即功能边界克制、缺少开箱即用的图形界面与远程能力。但随着虚拟显示、摄像头镜像、音频转发等能力持续补齐,它已经从“投屏小工具”演进为安卓设备桌面化的基础设施,值得每一位与 Android 设备打交道的开发者常备。
项目信息
| 项目名称 | Genymobile/scrcpy |
| 编程语言 | C |
| Star 数 | 152995 |
| Fork 数 | 14023 |
| 主题标签 | android, c, ffmpeg, genyteam-system, libav, mirroring, recording, screen, sdl2 |