scrcpy 1.13 has been released with some important new features, including option to lock the video orientation, shortcuts to rotate the display, and trilinear filtering which should improve the display quality when the scrcpy window is much smaller than the Android device display.
New to scrcpy? This is an application that can be used to display, record and control Android devices connected via USB or wirelessly, from a macOS, Windows or Linux desktop. The application focuses on performance and quality, offering 30~60 FPS with a resolution of 1920×1080 or more, and low latency.
The communication between the server (Android device in this case) and client (desktop computer) is done via a socket over an adb tunnel. The server streams H.264 video of the device screen, passing it to the client to decode and display it, without buffering in order to minimize latency. The mouse and keyboard events are captured and transmitted to the server, which injects them to the Android device.
It’s important to note that audio forwarding doesn’t work, this being a limitation of the Android Open Accessory Protocol.
After adding the ability to switch between portrait and landscape mode without changing the phone orientation in the previous release (using
Ctrl + r), scrcpy 1.13 adds two new options related to orientation: an option to lock the video orientation, and shortcuts to rotate display in steps of 90°.
scrcpy --lock-video-orientation 0
scrcpy --lock-video-orientation 1
scrcpy --lock-video-orientation 2
scrcpy --lock-video-orientation 3
To change the display rotation you can use a keyboard shortcut. Rotate the display 90° counterclockwise using
Ctrl + ←, and rotate the display 90° clockwise using
Ctrl + →.
It’s worth noting that this only affects the display, the recording remaining unaffected.
Another important new feature in scrcpy 1.13 is trilinear filtering. Prior to this release, if the scrcpy window was much smaller than the Android device display, the visual quality was quite low. With this release though, the quality in such conditions should be much better.
This is a screenshot from the scrcpy 1.13 release notes (so not taken by me) which shows the quality before and after:
Do note that this quality downscaling (trilinear filtering) requires OpenGL 3.0+ or OpenGL ES 2.0+, so it’s not available everywhere. It’s not supported on macOS, and on Windows you’ll need to force the use of OpenGL instead of Direct3D by launching scrcpy using:
In case you want to disable this feature when it’s enabled automatically (on Linux), launch scrcpy with
More changes in scrcpy 1.13:
- Add the ability to mirror secondary displays, for example when using Samsung DeX. This is done with a new flag
--display 1. The secondary display may only be controlled if the device runs at least Android 10. Also, sometimes the second display shows as a black screen, and at this time there’s no known solution for this.
- Add an option to change capture FPS for Android versions older than 10 (
- Window position values can now be negative (
--window-y) which should help when positioning the window on setups with multiple displays
- Use another local port if 27183 is not available (you can now specify a port range, e.g.
-p 27183:27186). This should make it possible to wirelessly connect and display 2 or more Android devices at the same time
- Forward NumPad keys when NumLock is disabled
- Fix issues when directory contains non-ASCII chars on Windows
- Fix possible BufferUnderflowException on touch event
- Upgrade FFmpeg to 4.2.2 and SDL to 2.0.12 in Windows releases
You may also like:
Before using scrcpy, take a look at its requirements:
- Android 5.0 or newer device
- ADB debugging needs to be enabled on the Android device
- On some devices you may also need to enable an additional “USB debugging (Security settings)” option to be able to control the Android device from your desktop computer.
- Android device connected to your computer via USB (or wirelessly, with ADB over TCP/IP)
There are scrcpy binaries for Windows, macOS and some Linux distributions.
Scrcpy is available in the Debian testing and sid, and Ubuntu 20.04 repositories, but it has not yet been updated to the latest version. If you want to use the previous version (1.12) you can install it using:
sudo apt install scrcpy
Scrcpy is also available for Gentoo, on AUR for Arch Linux / Manjaro, and there’s also a scrcpy snap package (see here how to install it) that you can use to install the tool on any Linux distribution that supports Snap. Only the AUR package has been updated to the latest scrcpy 1.13 version at the time I’m writing this though.
You can also build scrcpy from source – this article has instructions for building the latest scrcpy on Debian, Ubuntu (and Ubuntu-based Linux distributions like Linux Mint, Zorin OS, Pop!_OS, etc.) and Fedora.
To use scrcpy, connect your Android device to your computer via USB, then run scrcpy in a terminal:
When running scrcpy for the first time make sure the Android device screen is unlocked, and that you authorize scrcpy (click OK on the Android device when asked for authorization)! If you didn’t authorize it quick enough, close scrcpy (
Ctrl + c) and try again.