# genymobile/scrcpy

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/genymobile-scrcpy).**

143,637 stars · 13,247 forks · C · Apache-2.0

## Links

- GitHub: https://github.com/Genymobile/scrcpy
- awesome-repositories: https://awesome-repositories.com/repository/genymobile-scrcpy.md

## Topics

`android` `c` `ffmpeg` `libav` `mirroring` `recording` `screen` `sdl2`

## Description

This project provides a desktop-based interface for remote control and screen mirroring of Android devices. It functions by establishing a persistent, multiplexed communication channel over the Android Debug Bridge, allowing for the transmission of raw binary data streams between a host computer and a connected mobile device.

The tool distinguishes itself by injecting a lightweight binary into the mobile runtime to access system-level APIs for direct screen buffer capture and input event injection. By translating desktop mouse and keyboard signals into native Linux kernel events, it enables responsive interaction with the mobile interface without the overhead of hardware emulation. It further ensures performance through hardware-accelerated video decoding on the host and synchronized audio-visual streaming, which maintains temporal alignment between the device output and the desktop display.

Beyond basic mirroring, the project supports comprehensive remote device management and debugging workflows. It utilizes zero-copy capture techniques and socket-based binary transport to minimize latency, facilitating tasks such as mobile application quality assurance and real-time hardware monitoring.

The software is distributed as a command-line utility that operates across multiple desktop platforms.

## Tags

### Networking & Communication

- [Android Remote Control Interfaces](https://awesome-repositories.com/f/networking-communication/remote-access-control/android-remote-control-interfaces.md) — Facilitates full remote interaction by mirroring mobile displays and injecting input events through USB or network connections.
- [Binary Media Streams](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/streaming-architectures/binary-media-streams.md) — Delivers raw video and audio frames over persistent socket connections to ensure low-latency transmission.
- [ADB Tunneling Protocols](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/distributed-computing/communication-protocols/embedded-browser-bridge-protocols/adb-tunneling-protocols.md) — Creates a persistent, bidirectional communication channel over the Android Debug Bridge to transport raw binary data streams.
- [Synchronous Media Streams](https://awesome-repositories.com/f/networking-communication/communication-protocols-architectures/streaming-architectures/synchronous-media-streams.md) — Transmits audio and video packets over a unified connection to maintain temporal alignment during real-time streaming.

### Graphics & Multimedia

- [Cross-Platform](https://awesome-repositories.com/f/graphics-multimedia/streaming-distribution/screen-mirroring/cross-platform.md) — Displays mobile screens on desktop environments for real-time monitoring and demonstration purposes.
- [Synchronous Audio Streams](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing-workflows/stream-content-distribution/synchronous-audio-streams.md) — Captures device-side audio output via system APIs and forwards it for synchronized playback on the host machine.
- [Hardware-Accelerated Decoders](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-manipulation/media-processing-workflows/stream-content-distribution/hardware-accelerated-decoders.md) — Leverages host-side GPU resources to render high-bitrate video streams while minimizing CPU overhead.
- [Zero-Copy Frame Capture](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/zero-copy-frame-capture.md) — Accesses mobile display surfaces directly through system-level APIs to reduce latency and resource consumption.

### Hardware & IoT

- [Input Simulation Bridges](https://awesome-repositories.com/f/hardware-iot/design-lifecycle-management/hardware-engineering-management/hardware-management/input-simulation-bridges.md) — Converts desktop peripheral actions into native mobile input signals to enable direct hardware manipulation.
- [Remote Mobile Management Tools](https://awesome-repositories.com/f/hardware-iot/design-lifecycle-management/hardware-engineering-management/hardware-management/remote-mobile-management-tools.md) — Streamlines administrative and development workflows by allowing full control of mobile hardware from a desktop environment.

### Development Tools & Productivity

- [Remote Input Simulation](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/input-automation/remote-input-simulation.md) — Maps desktop keyboard and mouse movements to remote mobile signals for responsive, low-latency control.

### Testing & Quality Assurance

- [HID Event Emulators](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/user-interaction-simulation/hid-event-emulators.md) — Translates host-side peripheral signals into low-level HID events to allow precise remote interaction with mobile interfaces.

### DevOps & Infrastructure

- [Agent Injection Frameworks](https://awesome-repositories.com/f/devops-infrastructure/execution-environments/agent-injection-frameworks.md) — Deploys a lightweight binary to mobile devices to capture screen buffers and inject inputs via system-level APIs.

### User Interface & Experience

- [Native Input Mappers](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/input-handling/native-input-mappers.md) — Converts desktop peripheral signals into kernel-level input events for touch and keyboard interaction on mobile devices.

### Part of an Awesome List

- [System Utilities](https://awesome-repositories.com/f/awesome-lists/devops/system-utilities.md) — Utility to mirror and control Android devices via USB.
- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Android screen mirroring and control tool.
- [Development Tooling](https://awesome-repositories.com/f/awesome-lists/devtools/development-tooling.md) — Tool for displaying and controlling Android devices.
- [Development Tools](https://awesome-repositories.com/f/awesome-lists/devtools/development-tools.md) — Displays and controls Android devices via USB or TCP/IP.
- [Mobile Device Management and Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/mobile-device-management-and-utilities.md) — Displays and controls Android devices via USB or TCP/IP.
- [Virtualization and Containers](https://awesome-repositories.com/f/awesome-lists/devtools/virtualization-and-containers.md) — Displays and controls Android devices over USB or TCP/IP.
- [Miscellaneous Tools](https://awesome-repositories.com/f/awesome-lists/more/miscellaneous-tools.md) — Tool for displaying and controlling Android devices.

### Mobile Development

- [Mobile Device Control Utilities](https://awesome-repositories.com/f/mobile-development/mobile-utilities/mobile-device-control-utilities.md) — Enables command-line interaction and interface management for mobile hardware from a remote host.
