news 2026/10/21 2:10:09

scrcpy 完整指南:免装 App 的安卓投屏与键鼠直控(35~70ms 低延迟)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
scrcpy 完整指南:免装 App 的安卓投屏与键鼠直控(35~70ms 低延迟)

scrcpy 完整指南:免装 App 的安卓投屏与键鼠直控(35~70ms 低延迟)

【免费下载链接】scrcpyDisplay and control your Android device项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy

手机投到电脑上,大多数工具要么要 Root,要么要在手机里装一个常驻 App,还有一堆会员广告。scrcpy 只走 USB 调试通道,手机侧不留任何痕迹。端到端延迟 35~70ms,首帧约 1 秒,帧率 30~120fps(视设备而定),画面可达 1920×1080。免安装、免账号、离线可用,开源免费。

它是怎么工作的

一句话:手机把屏幕帧用 H.264/H.265 硬件编码成视频流推给电脑,电脑解码显示,再把你的键鼠事件反向注入手机——手机像一块摄像头,电脑像它的输入外设。

手机: 屏幕帧 → H.264/H.265 硬编码 → 视频流 ──────┐ USB / Wi-Fi │ 电脑: 解码 → 窗口显示(35~70ms 延迟) │ 电脑: 键盘/鼠标事件 → 注入手机 ────────────────────┘

编码发生在手机端,带宽压力小;解码在电脑端,默认自动选硬件解码。

前置条件:系统版本和依赖清单

项目要求说明
Android 版本5.0+(API 21)起硬门槛,低于 5.0 无法使用
USB 调试必须开启设置 → 关于手机 → 连点"版本号" 7 次解锁开发者选项,再打开"USB 调试";插线后授权框勾选"始终允许"
声音转发Android 11+(API 30+)Android 11 需保持屏幕已解锁启动;Android 10 及更早自动禁用音频
摄像头镜像Android 12+见 摄像头文档
v4l2 虚拟摄像头仅 Linux需额外安装 v4l2loopback,见下文"深挖"
电脑端Linux / Windows / macOS安装方式见 Linux / Windows / macOS 文档
# macOS brew install scrcpy # Debian / Ubuntu sudo apt install scrcpy # Windows:解压官方 release,把 scrcpy.exe 和 adb.exe 所在目录加入 PATH

最小化跑起来:一条命令加两次验证

  1. 插好数据线,手机完成 USB 调试授权。
  2. 敲scrcpy,1 秒内窗口出现手机画面即成功。
  3. 敲scrcpy --version,打印版本号说明依赖环境正常。
  4. 在窗口里移动鼠标、敲几个字,手机侧有对应响应,控制链路即打通。

无线模式在 USB 插着时跑scrcpy --tcpip,会自动探测 IP、切到 TCP/IP(5555 端口)再启动。多台设备在线时用scrcpy -s 0123456789abcdef按序列号指定。

按场景用:日常四个高频姿势

默认修饰键是左 Alt 或左 Super(Windows 键),可用--shortcut-mod换成别的键。

场景一:App 测试,键鼠当人手

scrcpy --turn-screen-off --print-fps # 启动即息屏,省电降温;终端打印实时帧率

窗口外操作电脑、窗口内看手机,不用来回切。核心快捷键如下,完整列表见 快捷键文档:

操作触发方式说明
返回右键单击屏幕熄灭时右键 = 点亮
主页中键单击—
切换最近应用Alt+s也支持鼠标第 4 键
下拉通知栏Alt+n也支持鼠标第 5 键
全屏Alt+f 或 F11—
电源键 / 息屏继续投屏Alt+p / Alt+oAlt+Shift+o 重新点亮
复制 / 粘贴Alt+c / Alt+v需 Android 7+,电脑与手机双向通用
暂停 / 恢复画面Alt+z / Alt+Shift+z录屏演示时防走片

场景二:传文件装包,拖进去就行

把 APK 直接拖进 scrcpy 窗口,手机上自动走安装流程;非 APK 文件拖进去会推到手机下载目录。装包验证信号:手机上弹出安装确认框。想彻底免操作可以配 控制文档 里的推送流程。

场景三:无线投屏演示

scrcpy --tcpip # 第一次用 USB 插着切换,之后无线照常 scrcpy -s <序列号> # 多台设备在线时指定目标 scrcpy -d # 只选唯一 USB 设备 scrcpy -e # 只选唯一无线设备

细节见 连接机制文档。

场景四:直播推流

投屏窗口本身就是实时画面,OBS 用窗口采集即可直接推流,不需要额外虚拟摄像头;Linux 下也可以用--v4l2-sink把手机画面做成系统级虚拟摄像头,两者选其一。

卡顿掉帧:参数调法与高频报错处置

掉帧、发糊时的参数表

先降负载再怀疑硬件,三个旋钮按这个顺序拧:

项目命令什么时候用
分辨率上限scrcpy -m 1024压负载最直接,另一维按设备比例自动算(1920×1080 → 1024×576)
视频比特率scrcpy -b 4M默认 8M,Wi-Fi 不稳时首选降它
帧率上限scrcpy --max-fps=30需要画面节奏稳定时锁帧
编码格式scrcpy --video-codec=h265H.265 同画质省码率;H.264 延迟更低(默认)
启动即息屏scrcpy -S边投边省电,主屏不亮

兜底组合(老机器也能扛):scrcpy -m 720 -b 2M --max-fps=30。想确认实际帧率加--print-fps,或运行中按 Alt+i 开关终端帧率显示。

症状 → 第一反应

症状第一反应
报错含INJECT_EVENTS,键鼠失灵开发者选项里打开"USB 调试(安全设置)"——它和"USB 调试"不是同一个开关——然后重启一次手机(小米等设备高发)
找不到 ADB 设备adb devices看设备在不在列表;不在就重新插拔并点授权;仍不行adb kill-server && adb start-server
Multiple ADB devices foundscrcpy -s 序列号指定目标;-d选唯一 USB 设备,-e选唯一无线设备
无线投屏卡顿发糊手机挪近路由器,同时scrcpy -b 4M -m 1024主动降负载
画面正常但没声音(Android 11+)Android 11 需屏幕已解锁状态下启动 scrcpy;留意首次连接的权限弹窗;音频失败时镜像会自动降级为纯视频继续跑
adb connect连不上确认手机与电脑同一 Wi-Fi,重跑adb tcpip 5555再adb connect IP:5555;仍失败就回 USB

深挖:四个藏在参数里的高级用法

1. 边投屏边录操作

scrcpy -r demo.mp4 --time-limit=60 # 录满 60 秒自动停

录的是设备端编码的原始流,文件落在电脑、不占手机存储;容器按扩展名自动选,mp4/mkv/opus 都支持。只录视频加--no-audio,只录音频可用--no-video --record=file.opus。代价:录制期间手机编码器多占一份算力,低配机建议同时降-m。细节见 录制文档。

2. 手机镜头当电脑摄像头(仅 Linux)

scrcpy --video-source=camera --camera-size=1920x1080 --v4l2-sink=/dev/video2 --no-playback

先sudo apt install v4l2loopback-dkms并sudo modprobe v4l2loopback创建虚拟设备,之后 OBS、会议软件直接调用/dev/videoN。代价:仅 Linux;摄像头镜像需 Android 12+;默认零缓冲以求最低延迟,个别工具识别不了可加--v4l2-buffer=300补 300ms 缓冲。详见 v4l2 文档。

3. OTG 模式:没开 USB 调试也能控制

scrcpy --otg

走 AOA 协议把电脑键鼠模拟成物理外设,完全不经过 adb,因此不需要 USB 调试——适合动不了开发者选项的设备。代价:视频和音频全部禁用,只保留控制,且必须 USB 直连(无线不行)。要加手柄需显式scrcpy --otg -G。详见 OTG 文档。

4. 虚拟屏上"后台"跑 App

scrcpy --new-display=1280x720 --start-app=org.videolan.vlc

虚拟显示屏是手机内部单独开的一块屏,主屏照常使用,退出 scrcpy 时自动销毁。边看视频边回消息就是这种场景。想让它一直亮屏加--keep-active;--new-display不带参数则沿用主屏尺寸和 dpi。代价:虚拟屏是额外一路编码,老机器功耗和发热会上升。详见 虚拟屏文档。

复盘

开 USB 调试 → 装 scrcpy → 敲scrcpy,手机画面就出现在电脑窗口里;之后调画质用-m/-b/--max-fps,排障先对症状表。更多细节看 连接机制文档、快捷键文档 和 FAQ。

【免费下载链接】scrcpyDisplay and control your Android device项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/21 2:09:52

机器人高薪嵌入式岗位真相:ROS2之外的四类稀缺能力

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/21 2:09:24

Linux U盘自动挂载全攻略:内核机制与udev/systemd配置

1. 项目概述与实际痛点先说一个我自己的经历。有次在机房处理一台某公司的存储服务器&#xff0c;系统是某个长期运行的内核版本&#xff0c;光驱位塞着一块备份盘&#xff0c;USB口插着一个U盘。当时我需要从U盘里拷一个诊断脚本进去&#xff0c;结果插上去之后系统毫无反应。…

作者头像 李华
网站建设 2026/10/21 2:06:30

LSTM原理与PyTorch实战:从RNN梯度消失到门控机制

LSTM 这个名字&#xff0c;搞序列建模的人早晚会撞上。别管你是在做时间序列预测、文本生成还是语音识别&#xff0c;只要输入是一串有前后依赖关系的数据&#xff0c;LSTM 几乎就是第一个会被搬出来的工具箱。这篇文章我打算换个讲法&#xff0c;不急着怼公式&#xff0c;而是…

作者头像 李华
网站建设 2026/10/21 2:06:04

FastReID轻量化嵌入DeepSORT的实战踩坑指南

最近在做一个园区行人跟踪项目&#xff0c;需要把FastReID训练出来的模型权重轻量化之后塞进DeepSORT框架里。理想很丰满&#xff1a;FastReID在行人重识别上的精度优势&#xff0c;配合DeepSORT的卡尔曼滤波和级联匹配&#xff0c;听起来是1加1大于2的组合。但第一版Demo直接把…

作者头像 李华