123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532 |
- .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 "\-b, \-\-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 8000000.
- .TP
- .BI "\-\-codec " name
- Select a video codec (h264, h265 or av1).
- .TP
- .BI "\-\-codec\-options " key\fR[:\fItype\fR]=\fIvalue\fR[,...]
- Set a list of comma-separated key:type=value options for the device 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 "\-\-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 display id to mirror.
- The list of possible display ids can be listed by "adb shell dumpsys display"
- (search "mDisplayId=" in the output).
- 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
- .BI "\-\-encoder " name
- Use a specific MediaCodec encoder (must be a H.264 encoder).
- .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 \-f, \-\-fullscreen
- Start in fullscreen.
- .TP
- .B \-h, \-\-help
- Print this help.
- .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
- \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 "\-\-max\-fps " value
- Limit the framerate of screen capture (officially supported since Android 10, but may work on earlier versions).
- .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
- .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 \-n, \-\-no\-control
- Disable device control (mirror the device in read\-only).
- .TP
- .B \-N, \-\-no\-display
- Do not display device (only when screen recording is enabled).
- .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 \-\-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
- .B \-\-raw\-key\-events
- Inject key events for all input keys, and ignore text events.
- .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
- .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
- .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
- .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
- .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
- .B \-S, \-\-turn\-screen\-off
- Turn the device screen off immediately.
- .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 "\-\-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
- .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 "\-V, \-\-verbosity " value
- Set the log level ("verbose", "debug", "info", "warn" or "error").
- Default is "info" for release builds, "debug" for debug builds.
- .TP
- .B \-v, \-\-version
- Print the version of scrcpy.
- .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\-2022
- .MT rom@rom1v.com
- Romain Vimont
- .ME
- Licensed under the Apache License, Version 2.0.
- .SH WWW
- .UR https://github.com/Genymobile/scrcpy
- .UE
|