scrcpy
捕获配置
缩小尺寸
有时,以较低的清晰度镜像 Android 设备以提高性能很有用。
将宽度和高度限制为某个值(例如 1024):
scrcpy --max-size 1024
scrcpy -m 1024 #短版
计算另一个维度以保留设备纵横比。这样,1920×1080 的设备将以 1024×576 镜像。
更改比特率
默认比特率为 8 Mbps。要更改视频比特率(例如,更改为 2 Mbps):
scrcpy --bit-rate 2M
scrcpy -b 2M #短版
限制帧率
可以限制捕获帧速率:
scrcpy --max-fps 15
自 Android 10 起正式支持此功能,但可能适用于较早版本。
庄稼
设备屏幕可能会被裁剪以仅镜像屏幕的一部分。
例如,这对于仅镜像 Oculus Go 的一只眼睛很有用:
scrcpy --crop 1224:1440:0:0 # 1224x1440 偏移 (0,0)
如果--max-size还指定了,则在裁剪后应用调整大小。
锁定视频方向
要锁定镜像的方向:
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° 顺时针
这会影响记录方向。
该窗口也可以被转动独立地。
编码器
有些设备有多个编码器,其中一些可能会导致问题或崩溃。可以选择不同的编码器:
scrcpy --encoder OMX.qcom.video.encoder.avc
要列出可用的编码器,您可以传递一个无效的编码器名称,错误将给出可用的编码器:
scrcpy --encoder _
捕获
记录
可以在镜像时录制屏幕:
scrcpy --record file.mp4
scrcpy -r 文件.mkv
要在录制时禁用镜像:
scrcpy --no-display --record file.mp4
scrcpy -Nr 文件.mkv
#使用 Ctrl+C 中断录制
“跳过的帧”会被记录下来,即使它们不是实时显示的(出于性能原因)。帧在设备上带有时间戳,因此数据包延迟变化不会影响录制的文件。
v4l2环回
在 Linux 上,可以将视频流发送到 v4l2 环回设备,以便任何支持 v4l2 的工具都可以像网络摄像头一样打开 Android 设备。
v4l2loopback必须安装该模块:
sudo apt install v4l2loopback-dkms
创建 v4l2 设备:
须藤 modprobe v4l2loopback
这将在 中创建一个新的视频设备/dev/videoN,其中N是一个整数(更多选项可用于创建多个设备或具有特定 ID 的设备)。
列出启用的设备:
#需要 v4l-utils 包
v4l2-ctl --list-devices #简单但可能足够了
ls /dev/video *
要使用 v4l2 接收器启动 scrcpy:
scrcpy --v4l2-sink=/dev/videoN
scrcpy --v4l2-sink=/dev/videoN --no-display #禁用镜像窗口
scrcpy --v4l2-sink=/dev/videoN -N #短版
(用N设备 ID替换,用 核对ls /dev/video*)
启用后,您可以使用支持 v4l2 的工具打开视频流:
ffplay -i /dev/videoN
vlc v4l2:///dev/videoN # VLC 可能会增加一些缓冲延迟
例如,您可以在OBS 中捕获视频。
联系
无线的
Scrcpy用于adb与设备通信,adb可以通过 TCP/IP连接到设备:
将设备连接到与计算机相同的 Wi-Fi。
获取您的设备 IP 地址,在设置 → 关于手机 → 状态,或通过执行以下命令:
adb shell ip 路由| awk ' {打印 $9} '您的设备上启用TCP / IP ADB:
adb tcpip 5555。拔下您的设备。
连接到您的设备:
adb connect DEVICE_IP:5555(替换DEVICE_IP)。scrcpy像往常一样跑。
降低比特率和定义可能很有用:
scrcpy --bit-rate 2M --max-size 800
scrcpy -b2M -m800 #短版
多设备
如果在 中列出了多个设备,则adb devices必须指定串行:
scrcpy --serial 0123456789abcdef
scrcpy -s 0123456789abcdef #短版
如果设备通过 TCP/IP 连接:
scrcpy --serial 192.168.0.1:5555
scrcpy -s 192.168.0.1:5555 #短版
您可以为多个设备启动多个scrcpy实例。
设备连接时自动启动
您可以使用AutoAdb:
autoadb scrcpy -s ' {} '
SSH隧道
要连接到远程设备,可以将本地adb客户端连接到远程adb服务器(前提是它们使用相同版本的adb 协议):
adb kill-server #杀死 5037 上的本地 adb 服务器
ssh -CN -L5037:localhost:5037 -R27183:localhost:27183 your_remote_computer
#保持打开状态
从另一个终端:
scrcpy
为避免启用远程端口转发,您可以改为强制转发连接(注意-L代替-R):
adb kill-server #杀死 5037 上的本地 adb 服务器
ssh -CN -L5037:localhost:5037 -L27183:localhost:27183 your_remote_computer
#保持打开状态
从另一个终端:
scrcpy --force-adb-forward
与无线连接一样,降低质量可能很有用:
scrcpy -b2M -m800 --max-fps 15
窗口配置
标题
默认情况下,窗口标题是设备型号。它可以改变:
scrcpy --window-title '我的设备'
位置和尺寸
可以指定初始窗口位置和大小:
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600
无边界
要禁用窗口装饰:
scrcpy --window-borderless
总在最前面
要使 scrcpy 窗口始终在最上面:
scrcpy --always-on-top
全屏
该应用程序可以直接全屏启动:
scrcpy --fullscreen
scrcpy -f #短版
然后可以使用MOD+动态切换全屏f。
回转
窗口可以旋转:
scrcpy --rotation 1
可能的值是:
0: 没有旋转1: 逆时针 90 度2: 180 度3: 顺时针 90 度
旋转也可以通过MOD+ ← (left)和MOD+ → (right)动态改变。
请注意,scrcpy管理 3 种不同的旋转:
- MOD+r请求设备在纵向和横向之间切换(当前运行的应用程序可能会拒绝,如果它不支持请求的方向)。
--lock-video-orientation更改镜像方向(从设备发送到计算机的视频的方向)。这会影响录制。--rotation(或MOD+ ←/ MOD+ →)仅旋转窗口内容。这仅影响显示,不影响录音。
其他镜像选项
只读
要禁用控件(可以与设备交互的所有内容:输入键、鼠标事件、拖放文件):
scrcpy --no-control
scrcpy -n
展示
如果有多个显示器可用,则可以选择要镜像的显示器:
scrcpy --display 1
可以通过以下方式检索显示 ID 列表:
adb shell dumpsys display #在输出中搜索“mDisplayId=”
只有在设备至少运行 Android 10 时才能控制辅助显示器(否则它会以只读方式镜像)。
保持清醒
为了防止设备在插入设备时延迟一段时间后进入睡眠状态:
scrcpy --保持清醒
scrcpy -w
scrcpy 关闭时恢复初始状态。
关闭屏幕
可以使用命令行选项在启动镜像时关闭设备屏幕:
scrcpy --turn-screen-off
scrcpy -S
或者随时按MOD+ o。
要重新打开它,请按MOD+ Shift+ o。
在 Android 上,该POWER按钮始终打开屏幕。为方便起见,如果 POWER通过 scrcpy 发送(通过右键单击或MOD+ p),它将在一小段延迟后强制关闭屏幕(尽最大努力)。物理POWER按钮仍然会导致屏幕打开。
防止设备休眠也很有用:
scrcpy --turn-screen-off --stay-awake
scrcpy -Sw
显示触摸
对于演示,显示物理接触(在物理设备上)可能很有用。
Android 在Developers options 中提供了此功能。
Scrcpy提供了一个选项,可以在启动时启用此功能并在退出时恢复初始值:
scrcpy --show-touches
scrcpy -t
请注意,它仅显示物理触摸(手指在设备上)。
禁用屏幕保护程序
默认情况下,scrcpy 不会阻止屏幕保护程序在计算机上运行。
要禁用它:
scrcpy --disable-screensaver
输入控制
旋转设备屏幕
按MOD+r在纵向和横向模式之间切换。
请注意,只有在前台应用程序支持请求的方向时,它才会旋转。
复制粘贴
每当 Android 剪贴板发生变化时,它都会自动同步到计算机剪贴板。
任何Ctrl快捷方式都会转发到设备。特别是:
- Ctrl+c通常复制
- Ctrl+x通常削减
- Ctrl+v通常粘贴(在计算机到设备剪贴板同步之后)
这通常按您的预期工作。
但实际行为取决于活动应用程序。例如, Termux 会在Ctrl+上发送 SIGINT c,而K-9 Mail 会 撰写一条新消息。
在这种情况下复制、剪切和粘贴(但仅在 Android >= 7 上支持):
- MOD+c注射
COPY - MOD+x注射
CUT - MOD+v注入
PASTE(在计算机到设备剪贴板同步之后)
此外,MOD+ Shift+v允许注入计算机剪贴板中的文本为重点的一系列事件。当组件不接受文本粘贴(例如在Termux 中)时,这很有用,但它可以破坏非 ASCII 内容。
警告:将计算机剪贴板粘贴到设备(通过 Ctrl+v或MOD+ v)会将内容复制到设备剪贴板中。因此,任何 Android 应用程序都可以读取其内容。您应该避免以这种方式粘贴敏感内容(如密码)。
以编程方式设置设备剪贴板时,某些设备的行为不符合预期。--legacy-paste提供了一个选项来更改Ctrl+v和MOD+的行为,v以便它们也将计算机剪贴板文本作为关键事件序列(与MOD+ Shift+相同的方式v)注入。
双指缩放
模拟“双指缩放”:Ctrl+ click-and-move。
更准确地说,按住Ctrl左键单击按钮。在释放左键单击按钮之前,所有鼠标移动都会相对于屏幕中心缩放和旋转内容(如果应用程序支持)。
具体来说,scrcpy 在屏幕中心反转的位置从“虚拟手指”生成额外的触摸事件。
文本注入首选项
键入文本时会生成两种事件:
- 按键事件,表示按键被按下或释放;
- 文本事件,表示已输入文本。
默认情况下,使用按键事件注入字母,以便键盘在游戏中按预期运行(通常用于 WASD 键)。
但这可能会导致问题。如果遇到此类问题,可以通过以下方式避免:
scrcpy --prefer-text
(但这会破坏游戏中的键盘行为)
键重复
默认情况下,按住某个键会生成重复的键事件。这可能会在某些游戏中导致性能问题,而这些事件无论如何都是无用的。
为避免转发重复的关键事件:
scrcpy --no-key-repeat
右键单击和中键单击
默认情况下,右键单击触发 BACK(或开机),中键单击触发 HOME。要禁用这些快捷方式并将点击转发到设备,请执行以下操作:
scrcpy --forward-all-clicks
文件拖放
安装 APK
要安装 APK,请将 APK 文件(以 结尾.apk)拖放到scrcpy 窗口。
没有视觉反馈,日志打印到控制台。
推送文件到设备
要将文件推送到/sdcard/Download/设备上,请将(非 APK)文件拖放到scrcpy窗口。
没有视觉反馈,日志打印到控制台。
目标目录可以在启动时更改:
scrcpy --push-target=/sdcard/电影/
音频转发
scrcpy不转发音频。使用sndcpy。
另请参阅问题 #14。
快捷方式
在下面的列表中,MOD是快捷方式修饰符。默认情况下,它是 (left)Alt或 (left) Super。
可以使用 进行更改--shortcut-mod。可能的键lctrl,rctrl, lalt,ralt,lsuper和rsuper。例如:
#使用 RCtrl 作为快捷方式
scrcpy --shortcut-mod=rctrl #使用 LCtrl+LAlt 或 LSuper 作为快捷方式
scrcpy --shortcut-mod=lctrl+lalt,lsuper
Super通常是Windows或Cmd键。
| 行动 | 捷径 |
|---|---|
| 切换全屏模式 | MOD+f |
| 向左旋转显示 | MOD+ ← (左) |
| 向右旋转显示 | MOD+ → (右) |
| 将窗口大小调整为 1:1(像素完美) | MOD+g |
| 调整窗口大小以移除黑色边框 | MOD+ w| 双击左键¹ |
点击 HOME |
MOD+ h| 中键单击 |
点击 BACK |
MOD+ b| 右键单击² |
点击 APP_SWITCH |
MOD+ s| 第四次点击³ |
点击MENU(解锁屏幕) |
MOD+m |
点击 VOLUME_UP |
MOD+ ↑ (向上) |
点击 VOLUME_DOWN |
MOD+ ↓ (下) |
点击 POWER |
MOD+p |
| 打开 | 右键单击² |
| 关闭设备屏幕(保持镜像) | MOD+o |
| 打开设备屏幕 | MOD+ Shift+o |
| 旋转设备屏幕 | MOD+r |
| 展开通知面板 | MOD+ n| 第 5 次点击³ |
| 展开设置面板 | MOD+ n+ n| 双击 5 次点击³ |
| 折叠面板 | MOD+ Shift+n |
| 复制到剪贴板⁴ | MOD+c |
| 剪切到剪贴板⁴ | MOD+x |
| 同步剪贴板和粘贴⁴ | MOD+v |
| 注入计算机剪贴板文本 | MOD+ Shift+v |
| 启用/禁用 FPS 计数器(在标准输出上) | MOD+i |
| 双指缩放 | Ctrl+点击并移动 |
¹双击黑色边框将其删除。
²如果屏幕已关闭,则右键单击可打开屏幕,否则按 BACK。
³第 4 和第 5 个鼠标按钮(如果您的鼠标有这些按钮)。
⁴仅适用于 Android >= 7。
带有重复键的快捷方式通过松开并再次按下该键来执行。例如,要执行“扩展设置面板”:
- 按住MOD。
- 然后双击n。
- 最后,释放MOD。
所有Ctrl+键的快捷方式被转发到该设备,所以它们被激活的应用程序来处理。
自定义路径
要使用特定的adb二进制文件,请在环境变量中配置其路径 ADB:
ADB=/path/to/adb scrcpy
要覆盖scrcpy-server文件的路径,请在 SCRCPY_SERVER_PATH.
scrcpy的更多相关文章
- Ubuntu安装scrcpy手机投屏和控制(Ubuntu用QQ微信的另一种方法)
Scrcpy 安装 snap install scrcpy adb服务安装 sudo apt-get install android-tools-adb adb配置 查看手机的USB识别号 手机通过U ...
- Scrcpy用电脑控制Android手机(支持Windows/macOS/Linux)
一.scrcpy简介 注意:拼写是scrcpy,非Python爬虫框架Scrapy. scrcpy可以通过adb调试的方式来将手机屏幕投到电脑上,并可以通过电脑控制您的Android设备.它可以通过U ...
- scrcpy投屏android手机到电脑
在mac os下 投票iPhone投屏是最简单不过了,只需要用Quicktime player就可以. 但是在mac下咱投屏android的手机呢,就需要用到scrcpy了. 1.打开终端,输入命令: ...
- 开源免费的安卓投屏工具-Scrcpy
最近需要使用安卓投屏在桌面上操作,一开始使用Vysor,免费版画质无法直视,发现一个开源的工具,Scrcpy,貌似效果不错,但没有GUI,命令行安装,整起(Mac) 1.安装 homebrew: 通过 ...
- 使用Scrcpy实现电脑控制安卓手机
很多时候我们想要在电脑上使用一些手机软件,使用模拟器当然是一种选择,但是这些模拟器要不然不免费,要不然广告多不放心.Scrcpy是一个开源免费的软件,通过abd命令实现了安卓手机投屏和控制功能,并且支 ...
- 在电脑上操作手机屏幕scrcpy工具就搞定了
手机安卓版本:10 电脑:win64 使用步骤 电脑步骤 下载scrcpy scrcpy 是免费开源的投屏软件,支持将安卓手机屏幕投放在 Windows.macOS.GNU/Linux 上,并可直接借 ...
- 看完小白也会使用,Android投屏神器scrcpy详细教程
楔子 做为一个软件测试工程师,在使用手机测试的时候,缺陷附件想附上截图.视频,需要从手机把图片.视频发送到拷贝或发送到电脑,非常麻烦. 所以想到使用投屏软件,把手机的屏幕投屏到电脑,便可以直接在电脑上 ...
- manjaro下使用scrcpy安卓设备投屏
scrcpy 安卓版本要大于等于 5.0 安装scrcpy及安卓工具包 yay -S scrcpy-git android-tools 打开手机 开发者模式->USB调试,将手机通过数据线连接电 ...
- 使用Scrcpy投屏
下载Scrcpy: https://wwt.lanzouw.com/iAzie07bz85c官网地址: https://github.com/Genymobile/scrcpy 记录当前下载位置: 手 ...
- Xamarin.Forms 开发资源集合(复制)
复制:https://www.cnblogs.com/mschen/p/10199997.html 收集整理了下 Xamarin.Forms 的学习参考资料,分享给大家,稍后会不断补充: UI样式 S ...
随机推荐
- h5py学习(一)核心概念
因pandas的to_hdf5函数有bug TypeError: object of type 'int' has no len(),写dataframe数据出现了报错,遂决定直接使用h5py来写数据 ...
- 工程师突击:SAP ABAP实用程序开发攻略.pdf
工程师突击:SAP ABAP实用程序开发攻略.pdf 有需要的联系 wx :erpworld
- constexpr和const
const表示一个变量的值不能改变,这个值可以使运行期间得到的const int sz = get_size(); constexpr是提示编译器,该值可以在编译期间就计算出来,并进行替换,不用等到运 ...
- PHP表单验证内容是否为空的实现代码
<!doctype html> <html> <head> <meta http-equiv="conent-type" conten ...
- RNN,LSTM,BERT
目录 RNN LSTM 计算公式 参数量计算 self-attention bert 论文 源码 问题 问题:bert中进行ner为什么没有使用crf:使用DL进行序列标注问题的时候CRF是必备嘛(t ...
- 【2】locust性能测试原理分析+登录测试脚本+总结
login_per_test1.py #对登录功能进行单点性能测试(一组测试数据)#发送首页请求,通过locust进行性能测试from locust import HttpLocust,task,T ...
- AtCoder Beginner Contest 272 - G - Yet Another mod M
随机 + 数论 题意 Submission #35524126 - AtCoder Beginner Contest 272 给一个长度为 \(n\;(1<=n<=5000)\) 的数组 ...
- VUE学习-编译到浏览器
vue文件时怎样编译运行到浏览器的 http://www.manongjc.com/article/21832.html 通过vue-loader,解析.vue文件,在webpack解析,拆解vue组 ...
- .NET 7介绍及环境准备
环境要求 VS2022 17.4+
- 在 C# 中调用FastReport 设计窗口
因为引入FastReport中的控件时报错,在网上又搜不到相应的解决办法 所以在这里动态添加 首先在创建的项目中引入FastReport.dll //创建一个空的报表 Report report = ...