Skip to main content

Overview

Scrcpy for Android provides several configuration options to customize your screen mirroring experience. All settings are automatically saved and restored between sessions.

Video Resolution

Select the streaming resolution based on your network bandwidth and device capabilities.

Available Resolutions

The following resolution options are available from the Resolution dropdown:
1920x1080
resolution
Full HD - Best quality, requires strong network connection
1600x720
resolution
HD+ - Good balance between quality and performance
1280x720
resolution
HD - Standard high definition
1200x540
resolution
qHD - Lower bandwidth usage
960x720
resolution
4:3 aspect ratio option
800x448
resolution
Compact - Good for slower connections
640x360
resolution
Minimum - Lowest bandwidth usage
The app automatically adjusts the resolution for landscape vs. portrait orientation. The larger dimension is applied to the longer side of the screen.

Bitrate Settings

Bitrate controls the video quality and compression level. Higher bitrates provide better quality but require more bandwidth.

Available Bitrates

Highest quality - Requires excellent network
Recommended for: Local network, 5GHz Wi-Fi
For remote connections over the internet, start with 1 or 2 Mbps and increase if the connection is stable.

Delay Control

Delay control manages the buffering and synchronization between video frames. Lower delay provides more responsive interaction but may cause stuttering on slower connections.

Delay Options

  • Most stable option
  • Best for slower or unstable connections
  • Provides smooth playback with slight lag
  • Automatically drops frames when delay exceeds threshold
The delay value determines the maximum acceptable time difference between the current time and the frame timestamp. Frames that exceed this delay are dropped to maintain real-time performance.

Viewing Mode (No Control)

Enable this option to disable all touch input on the remote device. When enabled:
  • Touch events are not sent to the remote device
  • You can only view the screen, not interact with it
  • Navigation buttons are automatically disabled
  • Useful for presentations or monitoring
// From MainActivity.java:412
if (!PreUtils.get(context, Constant.CONTROL_NO, false)) {
    surfaceView.setOnTouchListener((view, event) => 
        scrcpy.touchevent(event, landscape, 
                         surfaceView.getWidth(), 
                         surfaceView.getHeight()));
}
Control whether to display on-screen navigation buttons (Back, Home, App Switch).

Bottom Control Button Option

  • Displays a navigation bar at the bottom (portrait) or side (landscape)
  • Provides Back, Home, and App Switcher buttons
  • Navigation bar takes up 96 pixels (adjusted for multiples of 8)
  • Useful if target device has gesture navigation
  • Full screen view without on-screen buttons
  • You can use swipe-up gesture to access local device navbar
  • Touch area uses entire screen
Navigation buttons are automatically disabled when “Viewing mode (no control)” is enabled.

Button Mappings

  • Back Button (<): Sends KEYCODE_BACK
  • Home Button (o): Sends KEYCODE_HOME
  • App Switch (=): Sends KEYCODE_APP_SWITCH

Settings Persistence

All configuration settings are automatically saved using SharedPreferences:
SettingPreference Key
Resolutionspinner_resolution
Bitratespinner_bitrate
Delay Controldelay_control
Viewing Modeno_control
Navigation Buttonscontrol_nav
Remote Addresscontrol_remote_addr
Settings are preserved even after closing the app and will be restored on the next launch.

Local Network

  • Resolution: 1920x1080 or 1280x720
  • Bitrate: 6 Mbps or 4 Mbps
  • Delay: Medium (60ms) or Low (30ms)

Remote Network

  • Resolution: 1200x540 or 800x448
  • Bitrate: 2 Mbps or 1 Mbps
  • Delay: High (100ms)

Presentation Mode

  • Resolution: 1920x1080
  • Bitrate: 6 Mbps
  • Viewing mode: Enabled
  • Navigation buttons: Disabled

Low Bandwidth

  • Resolution: 640x360
  • Bitrate: 1 Mbps
  • Delay: High (100ms)

Next Steps

Control Features

Learn about touch controls and interaction

Troubleshooting

Optimize performance and solve issues

Build docs developers (and LLMs) love