diff --git a/README.md b/README.md index 661bf5e6..1b00edb4 100644 --- a/README.md +++ b/README.md @@ -86,43 +86,141 @@ It accepts command-line arguments, listed by: scrcpy --help ``` -For example, to decrease video bitrate to 2Mbps (default is 8Mbps): +## Features + + +### Reduce size + +Sometimes, it is useful to mirror an Android device at a lower definition to +increase performances. + +To limit both width and height to some value (e.g. 1024): ```bash -scrcpy -b 2M +scrcpy --max-size 1024 +scrcpy -m 1024 # short version ``` -To limit the video dimensions (e.g. if the device is 2540×1440, but the host -screen is smaller, or cannot decode such a high definition): +The other dimension is computed to that the device aspect-ratio is preserved. +That way, a device in 1920×1080 will be mirrored at 1024×576. + + +### Change bit-rate + +The default bit-rate is 8Mbps. To change the video bitrate (e.g. to 2Mbps): ```bash -scrcpy -m 1024 +scrcpy --bit-rate 2M +scrcpy -b 2M # short version ``` -The device screen may be cropped to mirror only part of the screen: + +### Crop + +The device screen may be cropped to mirror only part of the screen. + +This is useful for example to mirror only 1 eye of the Oculus Go: ```bash -scrcpy -c 1224:1440:0:0 # 1224x1440 at offset (0,0) +scrcpy --crop 1224:1440:0:0 # 1224x1440 at offset (0,0) +scrcpy -c 1224:1440:0:0 # short version ``` -If several devices are listed in `adb devices`, you must specify the _serial_: +If `--max-size` is also specified, resizing is applied after cropping. + + +### Wireless + +_Scrcpy_ uses `adb` to communicate with the device, and `adb` can [connect] to a +device over TCP/IP: + +1. Connect the device to the same Wi-Fi as your computer. +2. Get your device IP address (in Settings → About phone → Status). +3. Enable adb over TCP/IP on your device: `adb tcpip 5555`. +4. Unplug your device. +5. Connect to your device: `adb connect DEVICE_IP:5555` _(replace `DEVICE_IP`)_. +6. Run `scrcpy` as usual. + +It may be useful to decrease the bit-rate and the definition: ```bash -scrcpy -s 0123456789abcdef +scrcpy --bit-rate 2M --max-size 800 +scrcpy -b2M -m800 # short version ``` -To show physical touches while scrcpy is running: +[connect]: https://developer.android.com/studio/command-line/adb.html#wireless + + +### Record screen + +It is possible to record the screen while mirroring: ```bash -scrcpy -t +scrcpy --record file.mp4 +scrcpy -r file.mp4 +``` + +"Skipped frames" are recorded, even if they are not displayed in real time (for +performance reasons). Frames are _timestamped_ on the device, so [packet delay +variation] does not impact the recorded file. + +[packet delay variation]: https://en.wikipedia.org/wiki/Packet_delay_variation + + +### Multi-devices + +If several devices are listed in `adb devices`, you must specify the _serial_: + +```bash +scrcpy --serial 0123456789abcdef +scrcpy -s 0123456789abcdef # short version ``` +You can start several instances of _scrcpy_ for several devices. + + +### Fullscreen + The app may be started directly in fullscreen: +```bash +scrcpy --fullscreen +scrcpy -f # short version ``` -scrcpy -f + +Fullscreen can then be toggled dynamically with `Ctrl`+`f`. + + +### Show touches + +For presentations, it may be useful to show physical touches (on the physical +device). + +Android provides this feature in _Developers options_. + +_Scrcpy_ provides an option to enable this feature on start and disable on exit: + +```bash +scrcpy --show-touches +scrcpy -t ``` +Note that it only shows _physical_ touches (with the finger on the device). + + +### Forward audio + +Audio is not forwarded by _scrcpy_. + +There is a limited solution using [AOA], implemented in the [`audio`] branch. If +you are interested, see [issue 14]. + + +[AOA]: https://source.android.com/devices/accessories/aoa2 +[`audio`]: https://github.com/Genymobile/scrcpy/commits/audio +[issue 14]: https://github.com/Genymobile/scrcpy/issues/14 + + ## Shortcuts | Action | Shortcut |