Go to file
Romain Vimont a7cf4daf3b Avoid negative average buffering
The assumption that underflow and overbuffering are caused by jitter
(and that the delay between the producer and consumer will be caught up)
does not always hold.

For example, if the consumer does not consume at the expected rate (the
SDL callback is not called often enough, which is an audio output
issue), many samples will be dropped due to overbuffering, decreasing
the average buffering indefinitely.

Prevent the average buffering to become negative to limit the
consequences of an unexpected behavior.

PR #4572 <https://github.com/Genymobile/scrcpy/pull/4572>
2024-02-17 16:09:38 +01:00
.github/ISSUE_TEMPLATE
app Avoid negative average buffering 2024-02-17 16:09:38 +01:00
assets
config Upgrade Android checkstyle to 10.12.5 2023-11-15 21:13:12 +01:00
doc Simulate tilt multitouch event by pressing Shift 2023-12-15 22:12:07 +01:00
gradle/wrapper Upgrade AGP (8.1.3) and Gradle to 8.4 2023-11-15 21:13:12 +01:00
server Configure clean up actions dynamically 2024-02-17 15:49:08 +01:00
.gitignore Add scrcpy-server to .gitignore 2023-10-21 09:01:50 +02:00
FAQ.md Fix documentation link in FAQ 2023-03-28 08:32:07 +02:00
LICENSE Happy new year 2023! 2023-03-12 02:04:58 +01:00
README.md Update links to v2.3.1 2023-12-02 12:39:05 +01:00
build.gradle Upgrade AGP (8.1.3) and Gradle to 8.4 2023-11-15 21:13:12 +01:00
bump_version
cross_win32.txt Improve crossbuild 2023-11-25 21:06:37 +01:00
cross_win64.txt Improve crossbuild 2023-11-25 21:06:37 +01:00
gradle.properties
gradlew
gradlew.bat
install_release.sh Update links to v2.3.1 2023-12-02 12:39:05 +01:00
meson.build Remove useless run script 2024-01-26 13:13:55 +01:00
meson_options.txt
release.mk Upgrade sdl (2.28.5) for Windows 2023-11-25 21:06:45 +01:00
release.sh
run Fix icon path in ./run 2022-03-30 14:00:05 +02:00
settings.gradle

README.md

scrcpy (v2.3.1)

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.

screenshot

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:

Prerequisites

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.

Get the app

User documentation

The application provides a lot of features and configuration options. They are documented in the following pages:

Resources

Articles

Contact

If you encounter a bug, please read the FAQ first, then open an issue.

For general questions or discussions, you can also use:

Donate

I'm @rom1v, the author and maintainer of scrcpy.

If you appreciate this application, you can support my open source work:

Licence

Copyright (C) 2018 Genymobile
Copyright (C) 2018-2023 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.