End

adb scrcpy 无线投屏

博文地址


目录

scrcpy

This application provides display and control of Android devices connected via USB or over TCP/IP. It does not require any root access. It works on GNU/Linux, Windows and macOS.

strcpy:copies a string
scrcpy:copies a screen

adb shell ip route | awk '{print $9}'  # 获取手机的 ip【192.168.100.31】
adb tcpip 5555                         # 手机端启用 tcpip,且指定端口
adb connect 192.168.100.31:5555        # 电脑端连接指定 ip:端口
scrcpy -S --always-on-top              # 开始投屏,关闭屏幕,窗口最前

简介

本应用专注于:

  • 轻量:原生,仅显示设备屏幕
  • 性能:30~120fps,取决于设备
  • 质量:分辨率可达 1920×1080 或更高
  • 低延迟:35~70ms
  • 快速启动:最快 1 秒内即可显示第一帧
  • 无侵入性:不会在设备上遗留任何程序
  • 用户利益:无需帐号,无广告,无需联网
  • 自由:自由和开源软件

功能:

  • 屏幕录制
  • 镜像时关闭设备屏幕
  • 双向复制粘贴
  • 可配置显示质量

系统要求

  • 安卓设备最低需要支持 API 21 (Android 5.0)
  • 确保设备已开启 adb 调试
  • 在某些设备上,还需要开启额外的选项以使用鼠标和键盘进行控制

安装及使用

choco install scrcpy    # 通过 Chocolatey 安装,路径【C:\ProgramData\chocolatey\lib\scrcpy\tools】
scoop install scrcpy    # 通过 Scoop 安装
where adb               # 获取当前电脑可以直接使用的 adb.exe 的位置

scrcpy -v               # 查看版本
scrcpy --help           # 查看参数列表
scrcpy                  # 连接安卓设备后执行

scrcpy -s 0123456789abcdef    # 【--serial】通过序列号连接指定的本地设备
scrcpy -s 192.168.0.1:5555    # 通过 ip 连接指定的远程设备
autoadb scrcpy -s '{}'        # 在设备连接时自动启动,需要使用 AutoAdb
  • 可以设置环境变量 ADB:使用指定的 adb
    • D:\_dev\AndroidSDK\platform-tools\adb.exe
    • C:\ProgramData\chocolatey\bin\adb.exe
  • 可以设置环境变量 SCRCPY_SERVER_PATH:To override the path of the scrcpy-server file
  • 可以设置环境变量 SCRCPY_ICON_PATH:To override the icon

可以同时启动多个 scrcpy 实例以同时显示多个设备的画面

快捷键

scrcpy --shortcut-mod=rctrl              # 修改快捷键的修饰键,使用右 Ctrl 键
scrcpy --shortcut-mod=lctrl+lalt,lsuper  # 使用左 Ctrl 键 + 左 Alt 键,或 Super 键(即 Windows或Cmd键)
  • 旋转窗口:ALT + ←/→
  • 全屏状态切换(Full):ALT + F
  • 横竖屏切换(Rotate):ALT + R
  • 在关闭设备屏幕的状态下进行镜像:ALT + O
  • 重新打开屏幕:ALT + Shift + O
  • 电源事件:ALT + P
  • 将窗口大小重置为1:1:ALT + G
  • 将窗口大小重置为消除黑边:ALT + W,或 双击黑边
  • 返回桌面(Home):ALT + H,或单击中键
  • 返回(Back):ALT + B,或单击右键(在屏幕熄灭时点击鼠标右键将点亮屏幕)
  • 切换应用(Switch):ALT + S
  • 菜单(Menu):ALT + M,有菜单时才会响应(例如微信)
  • 音量调节:ALT + ↑/↓
  • 电源(Power):ALT + P
  • 展开通知栏(notification):ALT + N
  • 收起通知栏:ALT + Shift + N
  • 双指缩放:Ctrl + 按住并移动鼠标

功能介绍

采集设置

scrcpy -m 1024          # 【--max-size】降低镜像的分辨率,限制宽高到某个值,另一边会被按比例缩小
scrcpy -b 2M            # 【--bit-rate】修改码率,默认是 8 Mbps
scrcpy -b2M -m1024      # 【--bit-rate 2M --max-size 1024】同时降低码率和分辨率
scrcpy --max-fps 15     # 限制采集的帧率,从 Android 10 开始才被官方支持
scrcpy --crop w:h:x:y   # 只镜像屏幕上以 (x,y) 为原点的 w*k 像素的部分

scrcpy --lock-video-orientation          # 锁定屏幕方向为初始方向
scrcpy --lock-video-orientation=0        # 0 = 自然方向,n = 逆时针旋转 n*90°
scrcpy --encoder OMX.google.h264.encoder # 手动选择其它编码器
scrcpy --encoder _    # 列出可用的编码器(指定一个不存在的编码器名称时,错误信息中会列出所有可用编码器)

屏幕录制

scrcpy -r file.mkv          # 【--record】在镜像的同时录制视频
scrcpy -Nr file.mkv         # 【--no-display --record】仅录制,不显示镜像,按 Ctrl+C 停止
scrcpy --display-buffer=50  # 为显示增加 50 毫秒的缓冲,会增加延迟,但可以减少抖动

无线连接

Scrcpy 使用 adb 与设备通信,并且 adb 支持通过 TCP/IP 连接到设备:

  • 将设备和电脑连接至同一 Wi-Fi (或同一局域网)
  • 打开 设置 → 关于手机 → 状态信息,获取设备的 IP 地址
  • 启用设备的网络 adb 功能: adb tcpip 5555
  • 断开设备的 USB 连接
  • 连接到您的设备:adb connect ip:5555
  • 正常运行 scrcpy
adb shell ip route | awk '{print $9}'  # 获取手机的 ip【192.168.100.31】
adb tcpip 5555                         # 手机端启用 tcpip,且指定端口
adb connect 192.168.100.31:5555        # 电脑端连接指定 ip:端口
scrcpy                                 # 开始投屏

窗口设置

scrcpy --window-title Title    # 窗口标题(中文可能乱码),默认为设备型号
scrcpy --window-borderless     # 禁用窗口边框(没有最大、最新、关闭按钮)
scrcpy --always-on-top         # 保持窗口在最前
scrcpy --rotation 1            # 旋转窗口,0 = 无旋转,n = 逆时针旋转 n*90°,可通过【ALT + ←/→】旋转
scrcpy -f                      # 【--fullscreen】全屏启动,我的设备全屏启动后会绿屏,可通过【ALT + F】切换
scrcpy --window-x 100 --window-y 100 --window-width 800 --window-height 600  # 指定初始的窗口位置和大小

scrcpy 中有三类旋转方向:

  • --rotationALT + ←/→:只旋转窗口,不旋转应用。这只影响显示,不影响录制
  • --lock-video-orientation:改变设备传输到电脑的画面的朝向,会影响录制
  • ALT + R:横竖屏切换,只有前台应用程序支持请求的朝向,才会响应该请求

其他设置

scrcpy -n          # 【--no-control】禁用电脑对设备的控制,如键盘输入、鼠标事件和文件拖放
scrcpy --display 1 # 如果设备有多个显示屏,可以选择要镜像的显示屏
adb shell dumpsys display | grep mDisplayId=   # 列出所有显示屏的 id

scrcpy --disable-screensaver  # 关闭电脑上开启的屏幕保护
scrcpy --power-off-on-close   # scrcpy 退出时关闭设备屏幕

scrcpy -t   # 【--show-touches】显示手指在屏幕上的触摸痕迹,在启动时开启退出时恢复,控制的是开发者选项中的开关
scrcpy -w   # 【--stay-awake】阻止设备在连接时一段时间后休眠,scrcpy 关闭时会恢复设备原来的设置
scrcpy -S   # 【--turn-screen-off】在关闭设备屏幕的状态下进行镜像,或者【ALT + O】
scrcpy -Sw  # 【--turn-screen-off --stay-awake】关闭设备并阻止设备休眠

输入控制

  • 复制粘贴:
    • 安卓剪贴板变化时,其内容都会 自动同步到电脑的剪贴板
    • 可以使用ALT + C/V/X将电脑剪贴板的内容复制/粘贴/剪贴至设备,同时将内容 同步到设备的剪贴板
    • 也可以使用ALT + Shift + V将电脑的剪贴板内容注入到设备的剪贴板(会通过发出一串按键事件完成)
  • 将 APK 文件拖放到 scrcpy 窗口会自动安装 APK
  • 将非 APK 文件拖放至 scrcpy 窗口会推送文件到设备的 /sdcard/Download/
scrcpy --no-key-repeat       # 按住一个按键不放时,禁止生成多个重复按键事件
scrcpy --forward-all-clicks  # 禁用右键和中键的默认事件
scrcpy --prefer-text         # 禁用默认使用的 按键事件 来输入字母,改为使用 文本事件

scrcpy --push-target=/sdcard/Movies/   # 在启动时修改文件拖放时保存的目标目录
scrcpy -K  # 【--hid-keyboard】禁用虚拟键盘、使用物理键盘模拟(HID),仅支持USB连接以及Linux平台

2018-12-6

posted @ 2018-12-06 11:19  白乾涛  阅读(1368)  评论(0编辑  收藏  举报