621 lines
15 KiB
Groff
621 lines
15 KiB
Groff
.TH "scrcpy" "1"
|
|
.SH NAME
|
|
scrcpy \- Display and control your Android device
|
|
|
|
|
|
.SH SYNOPSIS
|
|
.B scrcpy
|
|
.RI [ options ]
|
|
|
|
|
|
.SH DESCRIPTION
|
|
.B scrcpy
|
|
provides display and control of Android devices connected on USB (or over TCP/IP). It does not require any root access.
|
|
|
|
|
|
.SH OPTIONS
|
|
|
|
.TP
|
|
.B \-\-always\-on\-top
|
|
Make scrcpy window always on top (above other windows).
|
|
|
|
.TP
|
|
.BI "\-\-audio\-bit\-rate " value
|
|
Encode the audio at the given bit rate, expressed in bits/s. Unit suffixes are supported: '\fBK\fR' (x1000) and '\fBM\fR' (x1000000).
|
|
|
|
Default is 128K (128000).
|
|
|
|
.TP
|
|
.BI "\-\-audio\-buffer ms
|
|
Configure the audio buffering delay (in milliseconds).
|
|
|
|
Lower values decrease the latency, but increase the likelyhood of buffer underrun (causing audio glitches).
|
|
|
|
Default is 50.
|
|
|
|
.TP
|
|
.BI "\-\-audio\-codec " name
|
|
Select an audio codec (opus, aac or raw).
|
|
|
|
Default is opus.
|
|
|
|
.TP
|
|
.BI "\-\-audio\-codec\-options " key\fR[:\fItype\fR]=\fIvalue\fR[,...]
|
|
Set a list of comma-separated key:type=value options for the device audio encoder.
|
|
|
|
The possible values for 'type' are 'int' (default), 'long', 'float' and 'string'.
|
|
|
|
The list of possible codec options is available in the Android documentation
|
|
.UR https://d.android.com/reference/android/media/MediaFormat
|
|
.UE .
|
|
|
|
.TP
|
|
.BI "\-\-audio\-encoder " name
|
|
Use a specific MediaCodec audio encoder (depending on the codec provided by \fB\-\-audio\-codec\fR).
|
|
|
|
The available encoders can be listed by \-\-list\-encoders.
|
|
|
|
.TP
|
|
.BI "\-\-audio\-source " source
|
|
Select the audio source (output or mic).
|
|
|
|
Default is output.
|
|
|
|
.TP
|
|
.BI "\-\-audio\-output\-buffer ms
|
|
Configure the size of the SDL audio output buffer (in milliseconds).
|
|
|
|
If you get "robotic" audio playback, you should test with a higher value (10). Do not change this setting otherwise.
|
|
|
|
Default is 5.
|
|
|
|
.TP
|
|
.BI "\-b, \-\-video\-bit\-rate " value
|
|
Encode the video at the given bit rate, expressed in bits/s. Unit suffixes are supported: '\fBK\fR' (x1000) and '\fBM\fR' (x1000000).
|
|
|
|
Default is 8M (8000000).
|
|
|
|
.TP
|
|
.BI "\-\-crop " width\fR:\fIheight\fR:\fIx\fR:\fIy
|
|
Crop the device screen on the server.
|
|
|
|
The values are expressed in the device natural orientation (typically, portrait for a phone, landscape for a tablet). Any
|
|
.B \-\-max\-size
|
|
value is computed on the cropped size.
|
|
|
|
.TP
|
|
.B \-d, \-\-select\-usb
|
|
Use USB device (if there is exactly one, like adb -d).
|
|
|
|
Also see \fB\-e\fR (\fB\-\-select\-tcpip\fR).
|
|
|
|
.TP
|
|
.BI "\-\-disable-screensaver"
|
|
Disable screensaver while scrcpy is running.
|
|
|
|
.TP
|
|
.BI "\-\-display " id
|
|
Specify the device display id to mirror.
|
|
|
|
The available display ids can be listed by \-\-list\-displays.
|
|
|
|
Default is 0.
|
|
|
|
.TP
|
|
.BI "\-\-display\-buffer ms
|
|
Add a buffering delay (in milliseconds) before displaying. This increases latency to compensate for jitter.
|
|
|
|
Default is 0 (no buffering).
|
|
|
|
.TP
|
|
.B \-e, \-\-select\-tcpip
|
|
Use TCP/IP device (if there is exactly one, like adb -e).
|
|
|
|
Also see \fB\-d\fR (\fB\-\-select\-usb\fR).
|
|
|
|
.TP
|
|
.B \-f, \-\-fullscreen
|
|
Start in fullscreen.
|
|
|
|
.TP
|
|
.B \-\-force\-adb\-forward
|
|
Do not attempt to use "adb reverse" to connect to the device.
|
|
|
|
.TP
|
|
.B \-\-forward\-all\-clicks
|
|
By default, right-click triggers BACK (or POWER on) and middle-click triggers HOME. This option disables these shortcuts and forward the clicks to the device instead.
|
|
|
|
.TP
|
|
.B \-h, \-\-help
|
|
Print this help.
|
|
|
|
.TP
|
|
.B \-\-kill\-adb\-on\-close
|
|
Kill adb when scrcpy terminates.
|
|
|
|
.TP
|
|
.B \-K, \-\-hid\-keyboard
|
|
Simulate a physical keyboard by using HID over AOAv2.
|
|
|
|
This provides a better experience for IME users, and allows to generate non-ASCII characters, contrary to the default injection method.
|
|
|
|
It may only work over USB.
|
|
|
|
The keyboard layout must be configured (once and for all) on the device, via Settings -> System -> Languages and input -> Physical keyboard. This settings page can be started directly:
|
|
|
|
adb shell am start -a android.settings.HARD_KEYBOARD_SETTINGS
|
|
|
|
However, the option is only available when the HID keyboard is enabled (or a physical keyboard is connected).
|
|
|
|
Also see \fB\-\-hid\-mouse\fR.
|
|
|
|
.TP
|
|
.B \-\-legacy\-paste
|
|
Inject computer clipboard text as a sequence of key events on Ctrl+v (like MOD+Shift+v).
|
|
|
|
This is a workaround for some devices not behaving as expected when setting the device clipboard programmatically.
|
|
|
|
.TP
|
|
.B \-\-list\-encoders
|
|
List video and audio encoders available on the device.
|
|
|
|
.TP
|
|
.B \-\-list\-displays
|
|
List displays available on the device.
|
|
|
|
.TP
|
|
\fB\-\-lock\-video\-orientation\fR[=\fIvalue\fR]
|
|
Lock video orientation to \fIvalue\fR. Possible values are "unlocked", "initial" (locked to the initial orientation), 0, 1, 2 and 3. Natural device orientation is 0, and each increment adds a 90 degrees rotation counterclockwise.
|
|
|
|
Default is "unlocked".
|
|
|
|
Passing the option without argument is equivalent to passing "initial".
|
|
|
|
.TP
|
|
.BI "\-m, \-\-max\-size " value
|
|
Limit both the width and height of the video to \fIvalue\fR. The other dimension is computed so that the device aspect\-ratio is preserved.
|
|
|
|
Default is 0 (unlimited).
|
|
|
|
.TP
|
|
.B \-M, \-\-hid\-mouse
|
|
Simulate a physical mouse by using HID over AOAv2.
|
|
|
|
In this mode, the computer mouse is captured to control the device directly (relative mouse mode).
|
|
|
|
LAlt, LSuper or RSuper toggle the capture mode, to give control of the mouse back to the computer.
|
|
|
|
It may only work over USB.
|
|
|
|
Also see \fB\-\-hid\-keyboard\fR.
|
|
|
|
.TP
|
|
.BI "\-\-max\-fps " value
|
|
Limit the framerate of screen capture (officially supported since Android 10, but may work on earlier versions).
|
|
|
|
.TP
|
|
.B \-n, \-\-no\-control
|
|
Disable device control (mirror the device in read\-only).
|
|
|
|
.TP
|
|
.B \-N, \-\-no\-playback
|
|
Disable video and audio playback on the computer (equivalent to --no-video-playback --no-audio-playback).
|
|
|
|
.TP
|
|
.B \-\-no\-audio
|
|
Disable audio forwarding.
|
|
|
|
.TP
|
|
.B \-\-no\-audio\-playback
|
|
Disable audio playback on the computer.
|
|
|
|
.TP
|
|
.B \-\-no\-cleanup
|
|
By default, scrcpy removes the server binary from the device and restores the device state (show touches, stay awake and power mode) on exit.
|
|
|
|
This option disables this cleanup.
|
|
|
|
.TP
|
|
.B \-\-no\-clipboard\-autosync
|
|
By default, scrcpy automatically synchronizes the computer clipboard to the device clipboard before injecting Ctrl+v, and the device clipboard to the computer clipboard whenever it changes.
|
|
|
|
This option disables this automatic synchronization.
|
|
|
|
.TP
|
|
.B \-\-no\-downsize\-on\-error
|
|
By default, on MediaCodec error, scrcpy automatically tries again with a lower definition.
|
|
|
|
This option disables this behavior.
|
|
|
|
.TP
|
|
.B \-\-no\-key\-repeat
|
|
Do not forward repeated key events when a key is held down.
|
|
|
|
.TP
|
|
.B \-\-no\-mipmaps
|
|
If the renderer is OpenGL 3.0+ or OpenGL ES 2.0+, then mipmaps are automatically generated to improve downscaling quality. This option disables the generation of mipmaps.
|
|
|
|
.TP
|
|
.B \-\-no\-power\-on
|
|
Do not power on the device on start.
|
|
|
|
.TP
|
|
.B \-\-no\-video
|
|
Disable video forwarding.
|
|
|
|
.TP
|
|
.B \-\-no\-video\-playback
|
|
Disable video playback on the computer.
|
|
|
|
.TP
|
|
.B \-\-otg
|
|
Run in OTG mode: simulate physical keyboard and mouse, as if the computer keyboard and mouse were plugged directly to the device via an OTG cable.
|
|
|
|
In this mode, adb (USB debugging) is not necessary, and mirroring is disabled.
|
|
|
|
LAlt, LSuper or RSuper toggle the mouse capture mode, to give control of the mouse back to the computer.
|
|
|
|
If any of \fB\-\-hid\-keyboard\fR or \fB\-\-hid\-mouse\fR is set, only enable keyboard or mouse respectively, otherwise enable both.
|
|
|
|
It may only work over USB.
|
|
|
|
See \fB\-\-hid\-keyboard\fR and \fB\-\-hid\-mouse\fR.
|
|
|
|
.TP
|
|
.BI "\-p, \-\-port " port\fR[:\fIport\fR]
|
|
Set the TCP port (range) used by the client to listen.
|
|
|
|
Default is 27183:27199.
|
|
|
|
.TP
|
|
.B \-\-power\-off\-on\-close
|
|
Turn the device screen off when closing scrcpy.
|
|
|
|
.TP
|
|
.B \-\-prefer\-text
|
|
Inject alpha characters and space as text events instead of key events.
|
|
|
|
This avoids issues when combining multiple keys to enter special characters,
|
|
but breaks the expected behavior of alpha keys in games (typically WASD).
|
|
|
|
.TP
|
|
.B "\-\-print\-fps
|
|
Start FPS counter, to print framerate logs to the console. It can be started or stopped at any time with MOD+i.
|
|
|
|
.TP
|
|
.BI "\-\-push\-target " path
|
|
Set the target directory for pushing files to the device by drag & drop. It is passed as\-is to "adb push".
|
|
|
|
Default is "/sdcard/Download/".
|
|
|
|
.TP
|
|
.BI "\-r, \-\-record " file
|
|
Record screen to
|
|
.IR file .
|
|
|
|
The format is determined by the
|
|
.B \-\-record\-format
|
|
option if set, or by the file extension (.mp4 or .mkv).
|
|
|
|
.TP
|
|
.B \-\-raw\-key\-events
|
|
Inject key events for all input keys, and ignore text events.
|
|
|
|
.TP
|
|
.BI "\-\-record\-format " format
|
|
Force recording format (either mp4 or mkv).
|
|
|
|
.TP
|
|
.BI "\-\-render\-driver " name
|
|
Request SDL to use the given render driver (this is just a hint).
|
|
|
|
Supported names are currently "direct3d", "opengl", "opengles2", "opengles", "metal" and "software".
|
|
|
|
.UR https://wiki.libsdl.org/SDL_HINT_RENDER_DRIVER
|
|
.UE
|
|
|
|
.TP
|
|
.B \-\-require\-audio
|
|
By default, scrcpy mirrors only the video if audio capture fails on the device. This option makes scrcpy fail if audio is enabled but does not work.
|
|
|
|
.TP
|
|
.BI "\-\-rotation " value
|
|
Set the initial display rotation. Possibles values are 0, 1, 2 and 3. Each increment adds a 90 degrees rotation counterclockwise.
|
|
|
|
.TP
|
|
.BI "\-s, \-\-serial " number
|
|
The device serial number. Mandatory only if several devices are connected to adb.
|
|
|
|
.TP
|
|
.B \-S, \-\-turn\-screen\-off
|
|
Turn the device screen off immediately.
|
|
|
|
.TP
|
|
.BI "\-\-shortcut\-mod " key\fR[+...]][,...]
|
|
Specify the modifiers to use for scrcpy shortcuts. Possible keys are "lctrl", "rctrl", "lalt", "ralt", "lsuper" and "rsuper".
|
|
|
|
A shortcut can consist in several keys, separated by '+'. Several shortcuts can be specified, separated by ','.
|
|
|
|
For example, to use either LCtrl+LAlt or LSuper for scrcpy shortcuts, pass "lctrl+lalt,lsuper".
|
|
|
|
Default is "lalt,lsuper" (left-Alt or left-Super).
|
|
|
|
.TP
|
|
.B \-t, \-\-show\-touches
|
|
Enable "show touches" on start, restore the initial value on exit.
|
|
|
|
It only shows physical touches (not clicks from scrcpy).
|
|
|
|
.TP
|
|
.BI "\-\-tcpip\fR[=\fIip\fR[:\fIport\fR]]
|
|
Configure and reconnect the device over TCP/IP.
|
|
|
|
If a destination address is provided, then scrcpy connects to this address before starting. The device must listen on the given TCP port (default is 5555).
|
|
|
|
If no destination address is provided, then scrcpy attempts to find the IP address and adb port of the current device (typically connected over USB), enables TCP/IP mode if necessary, then connects to this address before starting.
|
|
|
|
.TP
|
|
.BI "\-\-time\-limit " seconds
|
|
Set the maximum mirroring time, in seconds.
|
|
|
|
.TP
|
|
.BI "\-\-tunnel\-host " ip
|
|
Set the IP address of the adb tunnel to reach the scrcpy server. This option automatically enables --force-adb-forward.
|
|
|
|
Default is localhost.
|
|
|
|
.TP
|
|
.BI "\-\-tunnel\-port " port
|
|
Set the TCP port of the adb tunnel to reach the scrcpy server. This option automatically enables --force-adb-forward.
|
|
|
|
Default is 0 (not forced): the local port used for establishing the tunnel will be used.
|
|
|
|
.TP
|
|
.B \-v, \-\-version
|
|
Print the version of scrcpy.
|
|
|
|
.TP
|
|
.BI "\-V, \-\-verbosity " value
|
|
Set the log level ("verbose", "debug", "info", "warn" or "error").
|
|
|
|
Default is "info" for release builds, "debug" for debug builds.
|
|
|
|
.TP
|
|
.BI "\-\-v4l2-sink " /dev/videoN
|
|
Output to v4l2loopback device.
|
|
|
|
It requires to lock the video orientation (see \fB\-\-lock\-video\-orientation\fR).
|
|
|
|
.TP
|
|
.BI "\-\-v4l2-buffer " ms
|
|
Add a buffering delay (in milliseconds) before pushing frames. This increases latency to compensate for jitter.
|
|
|
|
This option is similar to \fB\-\-display\-buffer\fR, but specific to V4L2 sink.
|
|
|
|
Default is 0 (no buffering).
|
|
|
|
.TP
|
|
.BI "\-\-video\-codec " name
|
|
Select a video codec (h264, h265 or av1).
|
|
|
|
Default is h264.
|
|
|
|
.TP
|
|
.BI "\-\-video\-codec\-options " key\fR[:\fItype\fR]=\fIvalue\fR[,...]
|
|
Set a list of comma-separated key:type=value options for the device video encoder.
|
|
|
|
The possible values for 'type' are 'int' (default), 'long', 'float' and 'string'.
|
|
|
|
The list of possible codec options is available in the Android documentation
|
|
.UR https://d.android.com/reference/android/media/MediaFormat
|
|
.UE .
|
|
|
|
.TP
|
|
.BI "\-\-video\-encoder " name
|
|
Use a specific MediaCodec video encoder (depending on the codec provided by \fB\-\-video\-codec\fR).
|
|
|
|
The available encoders can be listed by \-\-list\-encoders.
|
|
|
|
.TP
|
|
.B \-w, \-\-stay-awake
|
|
Keep the device on while scrcpy is running, when the device is plugged in.
|
|
|
|
.TP
|
|
.B \-\-window\-borderless
|
|
Disable window decorations (display borderless window).
|
|
|
|
.TP
|
|
.BI "\-\-window\-title " text
|
|
Set a custom window title.
|
|
|
|
.TP
|
|
.BI "\-\-window\-x " value
|
|
Set the initial window horizontal position.
|
|
|
|
Default is "auto".
|
|
|
|
.TP
|
|
.BI "\-\-window\-y " value
|
|
Set the initial window vertical position.
|
|
|
|
Default is "auto".
|
|
|
|
.TP
|
|
.BI "\-\-window\-width " value
|
|
Set the initial window width.
|
|
|
|
Default is 0 (automatic).
|
|
|
|
.TP
|
|
.BI "\-\-window\-height " value
|
|
Set the initial window height.
|
|
|
|
Default is 0 (automatic).
|
|
|
|
.SH EXIT STATUS
|
|
.B scrcpy
|
|
will exit with code 0 on normal program termination. If an initial
|
|
connection cannot be established, the exit code 1 will be returned. If the
|
|
device disconnects while a session is active, exit code 2 will be returned.
|
|
|
|
.SH SHORTCUTS
|
|
|
|
In the following list, MOD is the shortcut modifier. By default, it's (left)
|
|
Alt or (left) Super, but it can be configured by \fB\-\-shortcut\-mod\fR (see above).
|
|
|
|
.TP
|
|
.B MOD+f
|
|
Switch fullscreen mode
|
|
|
|
.TP
|
|
.B MOD+Left
|
|
Rotate display left
|
|
|
|
.TP
|
|
.B MOD+Right
|
|
Rotate display right
|
|
|
|
.TP
|
|
.B MOD+g
|
|
Resize window to 1:1 (pixel\-perfect)
|
|
|
|
.TP
|
|
.B MOD+w, Double\-click on black borders
|
|
Resize window to remove black borders
|
|
|
|
.TP
|
|
.B MOD+h, Home, Middle\-click
|
|
Click on HOME
|
|
|
|
.TP
|
|
.B MOD+b, MOD+Backspace, Right\-click (when screen is on)
|
|
Click on BACK
|
|
|
|
.TP
|
|
.B MOD+s
|
|
Click on APP_SWITCH
|
|
|
|
.TP
|
|
.B MOD+m
|
|
Click on MENU
|
|
|
|
.TP
|
|
.B MOD+Up
|
|
Click on VOLUME_UP
|
|
|
|
.TP
|
|
.B MOD+Down
|
|
Click on VOLUME_DOWN
|
|
|
|
.TP
|
|
.B MOD+p
|
|
Click on POWER (turn screen on/off)
|
|
|
|
.TP
|
|
.B Right\-click (when screen is off)
|
|
Turn screen on
|
|
|
|
.TP
|
|
.B MOD+o
|
|
Turn device screen off (keep mirroring)
|
|
|
|
.TP
|
|
.B MOD+Shift+o
|
|
Turn device screen on
|
|
|
|
.TP
|
|
.B MOD+r
|
|
Rotate device screen
|
|
|
|
.TP
|
|
.B MOD+n
|
|
Expand notification panel
|
|
|
|
.TP
|
|
.B MOD+Shift+n
|
|
Collapse notification panel
|
|
|
|
.TP
|
|
.B Mod+c
|
|
Copy to clipboard (inject COPY keycode, Android >= 7 only)
|
|
|
|
.TP
|
|
.B Mod+x
|
|
Cut to clipboard (inject CUT keycode, Android >= 7 only)
|
|
|
|
.TP
|
|
.B MOD+v
|
|
Copy computer clipboard to device, then paste (inject PASTE keycode, Android >= 7 only)
|
|
|
|
.TP
|
|
.B MOD+Shift+v
|
|
Inject computer clipboard text as a sequence of key events
|
|
|
|
.TP
|
|
.B MOD+i
|
|
Enable/disable FPS counter (print frames/second in logs)
|
|
|
|
.TP
|
|
.B Ctrl+click-and-move
|
|
Pinch-to-zoom from the center of the screen
|
|
|
|
.TP
|
|
.B Drag & drop APK file
|
|
Install APK from computer
|
|
|
|
.TP
|
|
.B Drag & drop non-APK file
|
|
Push file to device (see \fB\-\-push\-target\fR)
|
|
|
|
|
|
.SH Environment variables
|
|
|
|
.TP
|
|
.B ADB
|
|
Path to adb.
|
|
|
|
.TP
|
|
.B ANDROID_SERIAL
|
|
Device serial to use if no selector (-s, -d, -e or --tcpip=<addr>) is specified.
|
|
|
|
.TP
|
|
.B SCRCPY_ICON_PATH
|
|
Path to the program icon.
|
|
|
|
.TP
|
|
.B SCRCPY_SERVER_PATH
|
|
Path to the server binary.
|
|
|
|
|
|
.SH AUTHORS
|
|
.B scrcpy
|
|
is written by Romain Vimont.
|
|
|
|
This manual page was written by
|
|
.MT mmyangfl@gmail.com
|
|
Yangfl
|
|
.ME
|
|
for the Debian Project (and may be used by others).
|
|
|
|
|
|
.SH "REPORTING BUGS"
|
|
Report bugs to
|
|
.UR https://github.com/Genymobile/scrcpy/issues
|
|
.UE .
|
|
|
|
.SH COPYRIGHT
|
|
Copyright \(co 2018 Genymobile
|
|
.UR https://www.genymobile.com
|
|
Genymobile
|
|
.UE
|
|
|
|
Copyright \(co 2018\-2023
|
|
.MT rom@rom1v.com
|
|
Romain Vimont
|
|
.ME
|
|
|
|
Licensed under the Apache License, Version 2.0.
|
|
|
|
.SH WWW
|
|
.UR https://github.com/Genymobile/scrcpy
|
|
.UE
|