scrcpy 4.0 使用指南
指南

scrcpy 4.0 使用指南

本文按照功能模块翻译并重新整理了`scrcpy --help`文档内容,方便需要的朋友快速查找对应功能

scrcpy 4.0 使用指南:从入门到高阶玩法全解析

scrcpy 是一款免费开源的 Android 屏幕镜像与控制工具,支持通过 USB 或 WLAN 将手机画面投射到电脑,并可用键盘鼠标反向控制设备。它不需要 root,延迟低、画质高,是安卓开发者、游戏玩家和演示分享的常用利器。

官方帮助文档(scrcpy --help)按字母顺序罗列了 100 多个参数,查起来并不直观。本文将其按使用场景重新整理,方便你用 Ctrl+F 直接定位到想要的功能。

目录


快速上手

最基本的用法:

scrcpy

只要手机通过 USB 连接并开启了 USB 调试,直接运行就能弹出镜像窗口。以下是几个立刻能用上的组合:

# 限制码率和分辨率,降低流量与延迟
scrcpy -b 4M -m 1024

# 只镜像不控制(只看不点)
scrcpy --no-control

# 一边镜像一边录屏
scrcpy -r video.mp4

# 无线连接(先用 USB 连一次)
scrcpy --tcpip

1. 设备连接与选择

当电脑上连接了多台设备,或想用 Wi-Fi 连接时,需要用到以下参数。

参数说明
-s, --serial=serial指定设备序列号,多台设备同时连接时为必填
-d, --select-usb只使用 USB 连接的设备(仅一台时),等价于 adb -d
-e, --select-tcpip只使用 TCP/IP 连接的设备(仅一台时),等价于 adb -e
--tcpip[=[+]ip[:port]]通过 TCP/IP 连接设备。不带地址时,scrcpy 会自动获取当前 USB 设备 IP 并开启无线调试;地址前加 + 可强制重新连接
-p, --port=port[:port]客户端监听的 TCP 端口(范围),默认 27183:27199
--force-adb-forward不使用 adb reverse,强制走 adb forward 建立连接
--tunnel-host=ip指定 adb 隧道要连接的 IP,设置后自动启用 --force-adb-forward,默认 localhost
--tunnel-port=port指定 adb 隧道的 TCP 端口,默认 0(自动)

相关环境变量:ANDROID_SERIAL(未指定选择器时使用的默认设备序列号)、ADB(adb 可执行文件路径)。

💡 无线连接的典型流程:先用 USB 连接手机执行一次 scrcpy --tcpip,之后就可以拔掉数据线,直接用 scrcpy -e 或 scrcpy --tcpip=<ip> 无线连接。


2. 视频镜像与画质设置

这一部分决定了镜像画面的清晰度、流畅度和方向。

基础画质控制

参数说明
-b, --video-bit-rate=value视频码率(bit/s),支持 K/M 单位后缀,默认 8M
-m, --max-size=value限制视频宽高的最大值,长宽比自动保持,默认 0(不限制)
--max-fps=value限制屏幕捕获帧率(Android 10+ 官方支持,早期版本可能也可用)

编解码器

参数说明
--video-codec=name选择视频编码:h264、h265、av1,默认 h264
--video-encoder=name指定具体的 MediaCodec 视频编码器,可用 --list-encoders 查看
--video-codec-options=key[:type]=value[,...]设置设备编码器的详细参数,type 可选 int(默认)/long/float/string,具体键值参考 Android MediaFormat 文档
--list-encoders列出设备支持的所有视频、音频编码器

裁剪与旋转

参数说明
--crop=width:height:x:y在服务端裁剪屏幕(按设备自然方向的坐标计算)
--angle=degrees自定义顺时针旋转角度
--capture-orientation=value设置捕获方向:0/90/180/270 或 flip0/90/180/270,可加 @ 前缀锁定旋转(相对设备初始方向)
--display-orientation=value设置窗口初始显示方向,取值同上
--record-orientation=value设置录制文件的方向,仅支持 0/90/180/270
--orientation=value快捷方式,等价于同时设置 --display-orientation 和 --record-orientation

缓冲与容错

参数说明
--video-buffer=ms显示前的缓冲延迟(毫秒),用于抵消抖动,默认 0
--min-size-alignment=alignment视频宽高必须是该值的倍数(1/2/4/8/16),会取此值和编码器要求的最大值
--no-downsize-on-error默认情况下 MediaCodec 出错时会自动降低分辨率重试,此选项禁用该行为
--no-mipmaps禁用 OpenGL 渲染时的 mipmap 生成(默认会为了改善缩小画质而生成)

关闭视频相关功能

参数说明
--no-video完全禁用视频转发
--no-video-playback禁用电脑端的视频播放(仍可能用于录制)

视频源

参数说明
--video-source=source选择视频来源:display(默认)或 camera,摄像头镜像详见 第 8 节

3. 音频设置

scrcpy 支持转发设备音频到电脑,来源非常丰富。

音频来源

--audio-source=source 可选值:

取值说明
output(默认)转发全部音频输出,同时禁用设备本机播放
playback捕获音频播放(部分 App 可选择不被捕获,因此不一定是完整输出)
mic捕获麦克风
mic-unprocessed捕获麦克风原始(未处理)声音
mic-camcorder针对录像优化的麦克风采集,方向与摄像头一致(如可用)
mic-voice-recognition针对语音识别优化的麦克风采集
mic-voice-communication针对语音通话优化(如启用回声消除、自动增益)
voice-call捕获通话音频
voice-call-uplink仅捕获通话上行音频
voice-call-downlink仅捕获通话下行音频
voice-performance面向实时表演(如卡拉 OK)优化,同时包含麦克风和设备播放

编解码与码率

参数说明
--audio-codec=name选择音频编码:opus(默认)、aac、flac、raw
--audio-bit-rate=value音频码率,支持 K/M 后缀,默认 128K
--audio-encoder=name指定具体的 MediaCodec 音频编码器,可用 --list-encoders 查看
--audio-codec-options=key[:type]=value[,...]设置音频编码器详细参数,格式同视频编码选项

缓冲

参数说明
--audio-buffer=ms音频缓冲延迟,越低延迟越小但越容易断音,默认 50
--audio-output-buffer=msSDL 音频输出缓冲大小,非必要不要改动,默认 10

其他

参数说明
--audio-dup复制音频(设备本机继续播放的同时也转发),仅在 --audio-source=playback 下可用
--require-audio若音频启用但捕获失败,直接让 scrcpy 报错退出(默认会自动降级为仅镜像视频)
--no-audio完全禁用音频转发
--no-audio-playback禁用电脑端的音频播放

4. 录制屏幕

参数说明
-r, --record=file.mp4将屏幕录制到文件,格式由 --record-format 或文件扩展名决定
--record-format=format强制指定录制格式:mp4、mkv、m4a、mka、opus、aac、flac、wav
--record-orientation=value设置录制方向(0/90/180/270),见第 2 节
--time-limit=seconds设置最长镜像时间(秒)
# 只录制,不弹出播放窗口,节省资源
scrcpy --no-window -r output.mp4

# 只录音频不录视频
scrcpy --no-video -r output.opus

5. 窗口与显示效果

窗口位置与大小

参数说明
--window-title=text自定义窗口标题
--window-x=value窗口初始水平位置,默认 auto
--window-y=value窗口初始垂直位置,默认 auto
--window-width=value窗口初始宽度,默认 0(自动)
--window-height=value窗口初始高度,默认 0(自动)
--window-borderless隐藏窗口边框和标题栏

显示模式

参数说明
-f, --fullscreen以全屏模式启动
--always-on-top窗口始终置顶
--disable-screensaver运行期间禁用电脑屏保
--no-window不显示 scrcpy 窗口(隐含 --no-video-playback),常配合录制使用
-x, --flex-display让虚拟屏幕尺寸持续跟随窗口大小变化
--no-window-aspect-ratio-lock取消窗口长宽比锁定

渲染相关

参数说明
--render-driver=name指定 SDL 渲染驱动(仅作为提示):direct3d、opengl、opengles2、opengles、metal、software
--render-fit=mode渲染适配模式:letterbox(保持比例加黑边,默认)、stretched(拉伸铺满)、unscaled(不缩放);开启 --flex-display 时默认变为 unscaled
--background-color=hexcolor背景色(#RGB 或 #RRGGBB),默认 #222 深灰

6. 输入控制:键盘 / 鼠标 / 手柄

scrcpy 支持三种输入注入方式:sdk(系统 API)、uhid(模拟物理 HID 设备)、aoa(AOAv2 协议,仅限 USB)。

键盘

参数说明
--keyboard=modedisabled(不转发)/ sdk(系统 API 投递事件)/ uhid(模拟物理 HID 键盘)/ aoa(模拟 AOAv2 键盘,仅 USB)
-K等价于 --keyboard=uhid,若设置了 --otg 则等价于 --keyboard=aoa

uhid/aoa 模式下,需要在设备端设置 → 系统 → 语言和输入 → 物理键盘中配置一次键盘布局,可用快捷键 MOD+k 快速打开该设置页(OTG 模式下不可用)。

鼠标

参数说明
--mouse=modedisabled / sdk / uhid / aoa,含义与键盘类似
-M等价于 --mouse=uhid,若设置了 --otg 则等价于 --mouse=aoa
--mouse-bind=xxxx[:xxxx]配置副按键(右键/中键/第4键/第5键)绑定行为,详见下表

uhid/aoa 模式下鼠标会被”捕获”以直接控制设备(相对鼠标模式),按 LAlt、LSuper 或 RSuper 可切换回电脑控制。

--mouse-bind 字符含义(每个序列需 4 个字符,依次对应右键/中键/第4键/第5键):

字符行为
+转发点击到设备
-忽略该点击
b触发 BACK(若息屏则唤醒)
h触发 HOME
s触发 APP_SWITCH
n触发”展开通知栏”

格式为 主绑定[:Shift+按下时的副绑定],省略第二段则与第一段相同。默认值:SDK 鼠标为 bhsn:++++,AOA/UHID 鼠标为 ++++:bhsn。

手柄

参数说明
--gamepad=modedisabled / uhid(模拟物理 HID 手柄) / aoa(仅 USB)
-G等价于 --gamepad=uhid,若设置了 --otg 则等价于 --gamepad=aoa

OTG 模式

参数说明
--otg以 OTG 模式运行:电脑键鼠直接模拟为通过 OTG 线缆连接设备,无需 adb/USB 调试,且不进行镜像。可通过 --keyboard=disabled、--mouse=disabled 单独关闭键盘或鼠标,仅支持 USB

输入行为微调

参数说明
-n, --no-control禁用设备控制,只读镜像
--prefer-text字母字符和空格以文本事件而非按键事件注入,避免特殊字符组合问题,但会破坏游戏中 WASD 之类按键的预期行为
--raw-key-events所有按键均以按键事件注入,忽略文本事件
--no-key-repeat长按键不转发重复按键事件
--no-mouse-hover不转发鼠标悬停(无点击的移动)事件

7. 剪贴板同步

参数说明
--no-clipboard-autosync默认情况下,注入 Ctrl+v 前会自动把电脑剪贴板同步到设备,设备剪贴板变化时也会同步回电脑;此选项禁用自动同步
--legacy-paste用一连串按键事件注入电脑剪贴板文本(Ctrl+v 触发),是部分设备剪贴板 API 行为异常时的兼容方案,效果等同于 MOD+Shift+v

对应快捷键:

快捷键功能
MOD+c复制到剪贴板(注入 COPY,Android 7+)
MOD+x剪切到剪贴板(注入 CUT,Android 7+)
MOD+v电脑剪贴板同步到设备并粘贴(注入 PASTE,Android 7+)
MOD+Shift+v以按键序列方式注入电脑剪贴板文本

8. 摄像头镜像

除了镜像屏幕,scrcpy 也支持直接镜像设备摄像头画面(需 Android 12+)。

scrcpy --video-source=camera
参数说明
--camera-id=id指定要镜像的摄像头 ID,可用 --list-cameras 查看
--camera-facing=facing按朝向选择摄像头:front、back、external
--camera-ar=ar按宽高比选择摄像头尺寸(±10%),可传 sensor、4:3 这样的比例,或 1.6 这样的数值
--camera-size=<width>x<height>指定明确的捕获分辨率
--camera-fps=value指定摄像头捕获帧率,不指定则使用 Android 默认值(30fps)
--camera-high-speed启用高速摄像头捕获模式(分辨率与帧率受限,可用 --list-camera-sizes 查看支持的组合)
--camera-zoom=zoom设置摄像头初始变焦值
--camera-torch启动时打开闪光灯/手电筒
--list-cameras列出设备摄像头
--list-camera-sizes列出摄像头支持的合法捕获尺寸

对应快捷键(仅摄像头模式下有效):

快捷键功能
MOD+t打开手电筒
MOD+Shift+t关闭手电筒
MOD+Up摄像头放大
MOD+Down摄像头缩小

⚠️ 摄像头模式下 --max-size 用来选择摄像头源尺寸,而非镜像输出尺寸,与屏幕镜像时的含义不同。


9. 多屏幕与虚拟显示

参数说明
--display-id=id指定要镜像的设备显示屏 ID,可用 --list-displays 查看,默认 0
--list-displays列出设备的显示屏
--new-display[=[<width>x<height>][/<dpi>]]创建一个指定分辨率和密度的新虚拟屏幕;不填参数则使用主屏尺寸和 DPI
--no-vd-destroy-content关闭虚拟屏幕时,运行中的 App 会转移到主屏而不是被销毁
--no-vd-system-decorations禁用虚拟屏幕的系统装饰(状态栏/导航栏等)
--display-ime-policy=value设置输入法显示策略:local(在本显示屏显示)、fallback(显示在默认屏幕)、hide(隐藏)

--new-display 用法示例:

scrcpy --new-display=1920x1080          # 指定分辨率
scrcpy --new-display=1920x1080/420      # 指定分辨率并强制 420 dpi
scrcpy --new-display                    # 使用主屏尺寸和密度
scrcpy --new-display=/240               # 主屏尺寸 + 自定义 240 dpi

💡 虚拟屏幕常用于”设备分身”场景:新建一个独立桌面运行 App,与主屏互不干扰,适合搭配 --start-app 使用(见第 11 节)。


10. 设备电源与屏幕状态

参数说明
-S, --turn-screen-off启动后立即关闭设备屏幕
-t, --show-touches启动时开启”显示触摸位置”,退出时恢复原状态(只显示物理触摸,不含 scrcpy 注入的点击)
-w, --stay-awake设备插着电源时,运行期间保持不息屏
--keep-active通过模拟用户活动来保持屏幕常亮
--no-power-on启动时不唤醒设备
--power-off-on-close关闭 scrcpy 时熄灭设备屏幕
--screen-off-timeout=seconds设置运行期间的息屏超时时间(退出后恢复原值)

对应快捷键:

快捷键功能
MOD+p点击 POWER(开关屏幕)
MOD+o关闭设备屏幕(继续镜像)
MOD+Shift+o打开设备屏幕
息屏时右键单击唤醒屏幕

11. 应用与文件管理

参数说明
--start-app=name通过精确包名启动一个 App
--list-apps列出设备上已安装的 App
--push-target=path拖拽文件到窗口时,文件推送的目标目录,原样传给 adb push,默认 /sdcard/Download/

--start-app 的前缀用法:

scrcpy --start-app=?firefox                          # 以 "?" 匹配名称开头的App(不区分大小写,会读取设备App列表,稍慢)
scrcpy --new-display --start-app=+org.mozilla.firefox # 以 "+" 前缀先强制停止再启动
scrcpy --start-app=+?firefox                          # 两个前缀可以同时使用

拖拽操作快捷方式:

操作功能
拖拽 APK 文件到窗口从电脑安装 APK 到设备
拖拽非 APK 文件到窗口推送文件到设备(目标目录见 --push-target)

12. 快捷键完全速查表

MOD 默认是左 Alt 或左 Super(Win/Cmd 键),可通过 --shortcut-mod 自定义,见第 13 节。

窗口控制

快捷键功能
MOD+f / F11切换全屏
MOD+g窗口缩放为 1:1(像素级精确)
MOD+w / 双击黑边缩放窗口以去除黑边
MOD+Left向左旋转显示
MOD+Right向右旋转显示
MOD+Shift+Left/Right水平翻转显示
MOD+Shift+Up/Down垂直翻转显示
MOD+z暂停 / 重新暂停显示
MOD+Shift+z取消暂停显示
MOD+Shift+r重置视频捕获/编码
MOD+q退出 scrcpy

设备控制

快捷键功能
MOD+h / 中键HOME
MOD+b / MOD+Backspace / 右键(亮屏时)BACK
MOD+s / 第4键点击APP_SWITCH(多任务)
MOD+mMENU
MOD+Up / MOD+Down音量加 / 减
MOD+p电源键(开关屏幕)
右键(息屏时)唤醒屏幕
MOD+o关闭设备屏幕(继续镜像)
MOD+Shift+o打开设备屏幕
MOD+r旋转设备屏幕方向
MOD+n / 第5键点击展开通知栏
MOD+Shift+n收起通知栏

剪贴板

快捷键功能
MOD+c复制(Android 7+)
MOD+x剪切(Android 7+)
MOD+v同步电脑剪贴板并粘贴(Android 7+)
MOD+Shift+v以按键序列注入电脑剪贴板文本

摄像头(仅摄像头模式)

快捷键功能
MOD+t打开手电筒
MOD+Shift+t关闭手电筒
MOD+Up / MOD+Down变焦放大 / 缩小

鼠标手势

操作功能
Ctrl + 拖动以屏幕中心为基准,捏合缩放 + 旋转
Shift + 拖动双指竖向倾斜滑动
Ctrl+Shift + 拖动双指横向倾斜滑动

拖拽与其他

操作功能
拖拽 APK 到窗口从电脑安装 APK
拖拽非 APK 文件到窗口推送文件到设备
MOD+k打开设备键盘设置(仅 HID 键盘模式)
MOD+i开启/关闭 FPS 计数器(日志中打印帧率)

13. 高级与调试选项

参数说明
--shortcut-mod=key[+...][,...]自定义快捷键修饰键,可选 lctrl、rctrl、lalt、ralt、lsuper、rsuper,用逗号分隔多个组合,例如 lctrl,lsuper 表示左 Ctrl 或左 Super 均可,默认 lalt,lsuper
-V, --verbosity=value日志级别:verbose、debug、info、warn、error,默认 info
--print-fps启动帧率计数器,向控制台打印帧率日志,运行期间可用 MOD+i 随时开关
--kill-adb-on-closescrcpy 退出时终止 adb
--no-cleanup默认退出时会清理设备端服务端程序、恢复设备状态(触摸显示、常亮、电源模式),此选项禁用该清理
--pause-on-exit[=mode]退出时是否暂停终端窗口:true(总是暂停)、false(从不暂停,默认)、if-error(仅出错时暂停),便于查看错误信息;不带参数等价于 true
--v4l2-sink=/dev/videoN输出到 v4l2 loopback 虚拟设备(仅 Linux)
--v4l2-buffer=msv4l2 输出前的缓冲延迟,作用类似 --video-buffer 但专用于 v4l2 输出,默认 0(仅 Linux)
-v, --version打印 scrcpy 版本
-h, --help打印帮助信息

14. 环境变量

变量说明
ADBadb 可执行文件路径
ANDROID_SERIAL未指定选择器(-s/-d/-e/--tcpip=<addr>)时使用的默认设备序列号
SCRCPY_ICON_DIR图标目录路径
SCRCPY_SERVER_PATH服务端二进制文件路径

15. 退出状态码

状态码含义
0正常退出
1启动失败
2运行期间设备断开连接

16. 附录:常用命令速查

场景命令
无线连接scrcpy --tcpip (先用 USB 连一次)
低码率省流量scrcpy -b 2M -m 800
只录屏不显示窗口scrcpy --no-window -r out.mp4
只读镜像(防误触)scrcpy --no-control
保持屏幕常亮镜像scrcpy -w
用摄像头当电脑摄像头素材源scrcpy --video-source=camera --camera-facing=back
新建虚拟桌面跑 App(设备分身)scrcpy --new-display --start-app=+包名
电脑键鼠当设备物理外设(OTG)scrcpy --otg
关闭镜像窗口时自动黑屏scrcpy --power-off-on-close
指定设备(多台时)scrcpy -s 设备序列号
全屏置顶启动scrcpy -f --always-on-top

本文基于 scrcpy 4.0 官方 --help 文档整理,具体参数以你本地安装的版本输出为准(不同版本可能有增减)。

分享
Comment seems stuck. Try to refresh?