Genymobile/scrcpy: Display and control your Android device · GitHub
scrcpy is a free, open-source application that mirrors Android devices to a computer via USB or TCP/IP, allowing control via keyboard and mouse without requiring root access or device installation. It delivers high performance (30-120fps), low latency (35-70ms), and works on Linux, Windows, and macOS with minimal overhead.
- Supports Android 5.0+ with no root access required
- Achieves 30-120fps with 35-70ms latency and ~1 second startup time
- Features audio forwarding (Android 11+), gamepad control, camera access, and screen recording
- Offers multiple video codecs including H.265 for better quality at lower bitrates
- Free and open-source under Apache 2.0 license with no ads, accounts, or internet dependency
Full extracted text
Warning 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 " scr een c o py " This application mirrors Android devices (video and audio) connected via USB or TCP/IP and allows control using the computer's keyboard and mouse. It does not require root access or an app installed on the device. 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: 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 (especially Xiaomi), you might get the following error: Injecting input events requires the caller (or the source of the instrumentation, if any) to have the INJECT_EVENTS permission. In that case, you 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 Start VLC in a new virtual display (separate from the device display): scrcpy --new-display=1920x1080 --start-app=org.videolan.vlc Start VLC in a new flex display using H.265 with a bitrate of 16 Mbps, while keeping the display active so it does not turn off: scrcpy --new-display -x --keep-active --start-app=org.videolan.vlc --video-codec=h265 -b16M 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): Control the device using gamepads plugged into the computer: scrcpy --gamepad=uhid scrcpy -G # short version The application provides a lot of features and configuration options. They are documented in the following pages: You can open an issue for bug reports, feature requests or general questions. For bug reports, please read the FAQ first, you might find a solution to your problem immediately. You can also use: I'm @rom1v , the author and maintainer of scrcpy . If you appreciate this application, you can support my open source work : Copyright (C) 2018 Genymobile Copyright (C) 2018-2026 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.