Instead of connecting client/server ADBs it will use remote ADB in order to communicate with the Android device. scrcpy-server
port will be tunneled through SSH too automatically.
ssh-scrcpy
is the new command instead ofscrcpy
.- New usage:
ssh-scrcpy user@host [OPTIONS]
. - By default,
ssh-scrcpy
will try to connect throughSSH
tolocalhost
. - Requires to have a persistent SSH connection, you can enable it in
ssh_config
.
File /etc/ssh/ssh_config
ControlMaster auto
ControlPath /tmp/%u-%r@%h-%p
ControlPersist 6000000
ServerAliveInterval 1
ServerAliveCountMax 2
This GitHub repo (https://github.com/Genymobile/scrcpy) is the only official
source for the project. Do not download releases from random websites, even if
their name contains scrcpy
.
pronounced "screen copy"
This application mirrors Android devices (video and audio) connected via USB or over TCP/IP, and allows to control the device with the keyboard and the mouse of the computer. It does not require any root access. It works on Linux, Windows and macOS.
It focuses on:
- lightness: native, displays only the device screen
- performance: 30~120fps, depending on the device
- quality: 1920×1080 or above
- low latency: 35~70ms
- low startup time: ~1 second to display the first image
- non-intrusiveness: nothing is left installed on the Android device
- user benefits: no account, no ads, no internet required
- freedom: free and open source software
Its features include:
- audio forwarding (Android 11+)
- recording
- mirroring with Android device screen off
- copy-paste in both directions
- configurable quality
- camera mirroring (Android 12+)
- mirroring as a webcam (V4L2) (Linux-only)
- physical keyboard and mouse simulation (HID)
- OTG mode
- and more…
The Android device requires at least API 21 (Android 5.0).
Audio forwarding is supported for API >= 30 (Android 11+).
Make sure you enabled USB debugging on your device(s).
On some devices, you also need to enable an additional option USB debugging (Security Settings)
(this is an item different from USB debugging
)
to control it using a keyboard and mouse. Rebooting the device is necessary once
this option is set.
Note that USB debugging is not required to run scrcpy in OTG mode.
There are a lot of options, documented in separate pages. Here are just some common examples.
-
Capture the screen in H.265 (better quality), limit the size to 1920, limit the frame rate to 60fps, disable audio, and control the device by simulating a physical keyboard:
scrcpy --video-codec=h265 --max-size=1920 --max-fps=60 --no-audio --keyboard=uhid scrcpy --video-codec=h265 -m1920 --max-fps=60 --no-audio -K # short version
-
Record the device camera in H.265 at 1920x1080 (and microphone) to an MP4 file:
scrcpy --video-source=camera --video-codec=h265 --camera-size=1920x1080 --record=file.mp4
-
Capture the device front camera and expose it as a webcam on the computer (on Linux):
scrcpy --video-source=camera --camera-size=1920x1080 --camera-facing=front --v4l2-sink=/dev/video2 --no-playback
-
Control the device without mirroring by simulating a physical keyboard and mouse (USB debugging not required):
scrcpy --otg
The application provides a lot of features and configuration options. They are documented in the following pages:
- Connection
- Video
- Audio
- Control
- Keyboard
- Mouse
- Device
- Window
- Recording
- Tunnels
- OTG
- Camera
- Video4Linux
- Shortcuts
If the connection randomly drops, run your scrcpy
command to reconnect. If it
says there are no devices/emulators found, try running adb connect DEVICE_IP:5555
again, and then scrcpy
as usual. If it still says there are
none found, try running adb disconnect
, and then run those two commands again.
- FAQ
- Translations (not necessarily up to date)
- Build instructions
- Developers
If you encounter a bug, please read the FAQ first, then open an issue.
For general questions or discussions, you can also use:
- Reddit:
r/scrcpy
- Twitter:
@scrcpy_app
scrcpy -e # like adb -e scrcpy --select-tcpip # long version
## Donate
I'm [@rom1v](https://github.com/rom1v), the author and maintainer of _scrcpy_.
If you appreciate this application, you can [support my open source
work][donate]:
- [GitHub Sponsors](https://github.com/sponsors/rom1v)
- [Liberapay](https://liberapay.com/rom1v/)
- [PayPal](https://paypal.me/rom2v)
[donate]: https://blog.rom1v.com/about/#support-my-open-source-work
## Licence
Copyright (C) 2018 Genymobile
Copyright (C) 2018-2024 Romain Vimont
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.