123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697 |
- .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, flac 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:
- <https://d.android.com/reference/android/media/MediaFormat>
- .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 \fB\-\-list\-encoders\fR.
- .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 "\-\-camera\-ar " ar
- Select the camera size by its aspect ratio (+/- 10%).
- Possible values are "sensor" (use the camera sensor aspect ratio), "\fInum\fR:\fIden\fR" (e.g. "4:3") and "\fIvalue\fR" (e.g. "1.6").
- .TP
- .B \-\-camera\-high\-speed
- Enable high-speed camera capture mode.
- This mode is restricted to specific resolutions and frame rates, listed by \fB\-\-list\-camera\-sizes\fR.
- .TP
- .BI "\-\-camera\-id " id
- Specify the device camera id to mirror.
- The available camera ids can be listed by \fB\-\-list\-cameras\fR.
- .TP
- .BI "\-\-camera\-facing " facing
- Select the device camera by its facing direction.
- Possible values are "front", "back" and "external".
- .TP
- .BI "\-\-camera\-fps " fps
- Specify the camera capture frame rate.
- If not specified, Android's default frame rate (30 fps) is used.
- .TP
- .BI "\-\-camera\-size " width\fRx\fIheight
- Specify an explicit camera capture size.
- .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\-buffer " ms
- Add a buffering delay (in milliseconds) before displaying. This increases latency to compensate for jitter.
- Default is 0 (no buffering).
- .TP
- .BI "\-\-display\-id " id
- Specify the device display id to mirror.
- The available display ids can be listed by \fB\-\-list\-displays\fR.
- Default is 0.
- .TP
- .BI "\-\-display\-orientation " value
- Set the initial display orientation.
- Possible values are 0, 90, 180, 270, flip0, flip90, flip180 and flip270. The number represents the clockwise rotation in degrees; the "flip" keyword applies a horizontal flip before the rotation.
- Default is 0.
- .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\-camera\-sizes
- List the valid camera capture sizes.
- .TP
- .B \-\-list\-cameras
- List cameras available on the device.
- .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 capture video orientation to \fIvalue\fR.
- Possible values are "unlocked", "initial" (locked to the initial orientation), 0, 90, 180, and 270. The values represent the clockwise rotation from the natural device orientation, in degrees.
- 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 \fB\-\-no\-video\-playback \-\-no\-audio\-playback\fR).
- .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
- .BI "\-\-orientation " value
- Same as --display-orientation=value --record-orientation=value.
- .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
- \fB\-\-pause\-on\-exit\fR[=\fImode\fR]
- Configure pause on exit. Possible values are "true" (always pause on exit), "false" (never pause on exit) and "if-error" (pause only if an error occured).
- This is useful to prevent the terminal window from automatically closing, so that error messages can be read.
- Default is "false".
- Passing the option without argument is equivalent to passing "true".
- .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.
- .TP
- .B \-\-raw\-key\-events
- Inject key events for all input keys, and ignore text events.
- .TP
- .BI "\-\-record\-format " format
- Force recording format (mp4, mkv, m4a, mka, opus, aac, flac or wav).
- .TP
- .BI "\-\-record\-orientation " value
- Set the record orientation.
- Possible values are 0, 90, 180 and 270. The number represents the clockwise rotation in degrees.
- Default is 0.
- .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".
- <https://wiki.libsdl.org/SDL_HINT_RENDER_DRIVER>
- .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 "\-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 \fB\-\-force\-adb\-forward\fR.
- 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 \fB\-\-force\-adb\-forward\fR.
- 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:
- <https://d.android.com/reference/android/media/MediaFormat>
- .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 \fB\-\-list\-encoders\fR.
- .TP
- .BI "\-\-video\-source " source
- Select the video source (display or camera).
- Camera mirroring requires Android 12+.
- Default is display.
- .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+Shift+Left, MOD+Shift+Right
- Flip display horizontally
- .TP
- .B MOD+Shift+Up, MOD+Shift+Down
- Flip display vertically
- .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 (\fB-s\fR, \fB-d\fR, \fB-e\fR or \fB\-\-tcpip=\fIaddr\fR) 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 <https://github.com/Genymobile/scrcpy/issues>.
- .SH COPYRIGHT
- Copyright \(co 2018 Genymobile <https://www.genymobile.com>
- Copyright \(co 2018\-2023 Romain Vimont <rom@rom1v.com>
- Licensed under the Apache License, Version 2.0.
- .SH WWW
- <https://github.com/Genymobile/scrcpy>
|