1. 了解 scrcpy

scrcpy 发音为 “screen copy”
本应用程序可以显示并控制通过 USB 或 TCP/IP 连接的安卓设备,且不需要任何 root 权限。本程序支持 GNU/Linux, Windows 和 macOS。

系统要求

安卓设备最低需要支持 API 21 (Android 5.0)。
确保设备已开启 ADB 调试。

2. 下载 scrcpy

官网链接直达: https://github.com/Genymobile/scrcpy/blob/master/doc/windows.md
or
👆点我直接下载

3. 运行 scrcpy

将手机与电脑链接然后直接双击 scrcpy.exe

or
或者执行

1
scrcpy

本程序支持命令行参数,查看参数列表:

1
scrcpy --help

4. 功能介绍

采集设置

降低分辨率

有时候,可以通过降低镜像的分辨率来提高性能。
要同时限制宽度和高度到某个值 (例如 1024):

1
2
scrcpy --max-size=1024
scrcpy -m 1024

另一边会被按比例缩小以保持设备的显示比例。这样,1920×1080 分辨率的设备会以 1024×576 的分辨率进行镜像。

修改码率

默认码率是 8 Mbps。改变视频码率 (例如改为 2 Mbps):

1
2
scrcpy --bit-rate=2M
scrcpy -b 2M # 简写

限制帧率

要限制采集的帧率:

1
scrcpy --max-fps=15

本功能从 Android 10 开始才被官方支持,但在一些旧版本中也能生效。
实际捕获的帧率可被打印到控制台:

1
scrcpy --print-fps

画面裁剪

可以对设备屏幕进行裁剪,只镜像屏幕的一部分。
例如可以只镜像 Oculus Go 的一只眼睛。

1
scrcpy --crop=1224:1440:0:0   # 以 (0,0) 为原点的 1224x1440 像素

如果同时指定了 –max-size,会先进行裁剪,再进行缩放。

锁定屏幕方向

要锁定镜像画面的方向:

1
2
3
4
5
scrcpy --lock-video-orientation     # 初始(目前)方向
scrcpy --lock-video-orientation=0 # 自然方向
scrcpy --lock-video-orientation=1 # 逆时针旋转 90°
scrcpy --lock-video-orientation=2 # 180°
scrcpy --lock-video-orientation=3 # 顺时针旋转 90°

只影响录制的方向。
窗口可以独立旋转。

编码器

一些设备内置了多种编码器,但是有的编码器会导致问题或崩溃。可以手动选择其它编码器:

1
scrcpy --encoder=OMX.qcom.video.encoder.avc

要列出可用的编码器,可以指定一个不存在的编码器名称,错误信息中会包含所有的编码器:

1
scrcpy --encoder=_

采集

屏幕录制

可以在镜像的同时录制视频:

1
2
scrcpy --record=file.mp4
scrcpy -r file.mkv

仅录制,不显示镜像:

1
2
3
scrcpy --no-display --record=file.mp4
scrcpy -Nr file.mkv
# 按 Ctrl+C 停止录制

录制时会包含“被跳过的帧”,即使它们由于性能原因没有实时显示。设备会为每一帧打上 时间戳 ,所以 包时延抖动 不会影响录制的文件。

连接

TCP/IP (无线)

Scrcpy 使用 adb 与设备通信,并且 adb 支持通过 TCP/IP 连接到设备(设备必须连接与电脑相同的网络)。

自动配置

参数 –tcpip 允许自动配置连接。这里有两种方式。
对于传入的 adb 连接,如果设备(在这个例子中以 192.168.1.1 为可用地址)已经监听了一个端口(通常为 5555),运行:

1
2
scrcpy --tcpip=192.168.1.1       # 默认端口是5555
scrcpy --tcpip=192.168.1.1:5555

如果 adb TCP/IP(无线)模式在某些设备上不被启用(或者你不知道IP地址),用USB连接设备,然后运行:

1
scrcpy --tcpip    # 无需其他参数

这将会自动寻找设备IP地址,启用TCP/IP模式,然后在启动之前连接到设备。

窗口设置

标题

窗口的标题默认为设备型号。可以通过如下命令修改:

1
scrcpy --window-title="我的设备"

位置和大小

您可以指定初始的窗口位置和大小:

1
scrcpy --window-x=100 --window-y=100 --window-width=800 --window-height=600

无边框

禁用窗口边框:

1
scrcpy --window-borderless

保持窗口在最前

您可以通过如下命令保持 scrcpy 的窗口在最前面:

1
scrcpy --always-on-top

全屏

您可以通过如下命令直接全屏启动 scrcpy:

1
2
scrcpy --fullscreen
scrcpy -f # 简写

全屏状态可以通过 MOD+f 随时切换。

旋转

可以通过以下命令旋转窗口:

1
scrcpy --rotation=1

可选的值有:

0: 无旋转
1: 逆时针旋转 90°
2: 旋转 180°
3: 顺时针旋转 90°

其他镜像设置

只读

禁用电脑对设备的控制 (任何可与设备交互的方式:如键盘输入、鼠标事件和文件拖放):

1
2
scrcpy --no-control
scrcpy -n

显示屏

如果设备有多个显示屏,可以选择要镜像的显示屏:

1
scrcpy --display=1

可以通过如下命令列出所有显示屏的 id:

1
adb shell dumpsys display   # 在输出中搜索 “mDisplayId=”

控制第二显示屏需要设备运行 Android 10 或更高版本 (否则将在只读状态下镜像)。

保持常亮

阻止设备在连接时一段时间后休眠:

1
2
scrcpy --stay-awake
scrcpy -w

scrcpy 关闭时会恢复设备原来的设置。

关闭设备屏幕

可以通过以下的命令行参数在关闭设备屏幕的状态下进行镜像:

1
2
scrcpy --turn-screen-off
scrcpy -S

还可以同时阻止设备休眠:

1
2
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw

退出时息屏

scrcpy 退出时关闭设备屏幕:

1
scrcpy --power-off-on-close

当启动时开机

默认情况下,在启动时,设备已开机。
若要防止此行为,请执行以下操作:

1
scrcpy --no-power-on

显示触摸

在演示时,可能会需要显示 (在物理设备上的) 物理触摸点。
Android 在 开发者选项 中提供了这项功能。
Scrcpy 提供一个选项可以在启动时开启这项功能并在退出时恢复初始设置:

1
2
scrcpy --show-touches
scrcpy -t

请注意这项功能只能显示 物理 触摸 (用手指在屏幕上的触摸)。

关闭屏保

Scrcpy 默认不会阻止电脑上开启的屏幕保护。
关闭屏幕保护:

1
scrcpy --disable-screensaver