Skip to main content
Version: next

Versions and features

This page only lists features implemented in each version of the server (e.g., capture video and audio) and whether they are supported by Tango. Some versions are skipped since they don't contain server-side changes.

Some features in Scrcpy are solely implemented by the client (e.g. simulate multi-touch using keyboard modifiers), so they are not listed here.

Generally, the latest version should be used, as they contain bug fixes and new features. However, if you're using Scrcpy on old devices, an older version might be more stable.

Legends

  • (5/10): 5 out of 10 features in this version are supported
  • ✅: Supported
  • ⛔: Not supported
  • (Breaking): A breaking change. Some new options are not marked as breaking changes even if they contain protocol changes, as the old client can still work with the new server when the new options are not used.

v3.0 (9/10)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v3.0ScrcpyOptions3_0AdbScrcpyOptions2_1

New options

  • ✅ (Breaking) Remove --lock-video-orientation
  • ✅ More flexible video capture orientation (--capture-orientation)
  • ✅ Free rotation (--angle)
  • ✅ Set screen off timeout (--screen-off-timeout)
  • ✅ Create and mirror new virtual displays (--new-display)
  • ✅ Turn off virtual display system decorations (--no-vd-system-decorations)
  • ⛔ List apps (--list-apps) (output parsing not implemented)

Protocol changes

  • ✅ (Breaking) --list-encoders output format change
  • ✅ Add start app control message
  • ✅ Add restart video capture control message

v2.7 (2/2)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v2.7ScrcpyOptions2_7AdbScrcpyOptions2_1

Protocol changes

  • ✅ (Breaking) Add name field to UHID create control message
  • ✅ (Breaking) Support UHID destroy control message

v2.6 (2/2)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v2.6ScrcpyOptions2_6AdbScrcpyOptions2_1

New options

  • ✅ Audio playback capture (--audio-source=playback)
  • ✅ Audio duplication (--audio-dup)

v2.4 (2/2)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v2.5ScrcpyOptions2_4AdbScrcpyOptions2_1
v2.4ScrcpyOptions2_4AdbScrcpyOptions2_1

New options

  • ✅ UHID Keyboard (--keyboard=uhid/-K)
  • ✅ UHID Mouse (--mouse=uhid/-M)

v2.3 (1/1)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v2.3.1ScrcpyOptions2_3AdbScrcpyOptions2_1
v2.3ScrcpyOptions2_3AdbScrcpyOptions2_1

New options

  • ✅ FLAC audio codec (--audio-codec=flac)

v2.2 (7/9)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v2.2ScrcpyOptions2_2AdbScrcpyOptions2_1

New options

  • Mirror cameras
    • --video-source=camera
    • --camera-id
    • --camera-facing
    • --camera-ar
    • --camera-size
    • --camera-fps
    • --camera-high-speed
  • List cameras
    • --list-cameras (output parsing not implemented)
    • --list-camera-sizes (output parsing not implemented)
note

Although we contributed the camera feature to Scrcpy, the final implementation is different from our internal code.

Implement these features in Tango is not a priority, as we are using the internal implementation.

v2.1 (2/2)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v2.1.1ScrcpyOptions2_1AdbScrcpyOptions2_1
v2.1ScrcpyOptions2_1AdbScrcpyOptions2_1

New options

  • ✅ Option to disable screen capture (only mirror audio) (--no-video)
  • ✅ Capture microphone (--audio-source=mic)

v2.0 (15/15)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v2.0ScrcpyOptions2_0AdbScrcpyOptions2_0

New options

  • ✅ Unique ID for each instance (--scid)
  • New video codecs
    • --video-codec=h265
    • --video-codec=av1
  • Rename video codec options
    • --bitrate -> --video-bitrate
    • --codec-options -> --video-codec-options
    • --encoder -> --video-encoder
  • Capture internal audio
    • --no-audio
    • --audio-codec=opus
    • --audio-codec=aac
    • --audio-codec=raw
    • --audio-bitrate
    • --audio-codec-options
    • --audio-encoder
  • ✅ List encoders (--list-encoders)
  • ✅ Official option to list displays (--list-displays)

Protocol changes

  • ✅ (Breaking) Fix --forward-all-clicks for Chrome

v1.25 (1/1)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.25ScrcpyOptions1_25AdbScrcpyOptions1_22

Protocol changes

  • ✅ (Breaking) High-precision scrolling

v1.24 (1/1)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.24ScrcpyOptions1_24AdbScrcpyOptions1_22

New options

  • ✅ Option to not wake up device on connection (--no-power-on)

v1.23 (2/2)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.23ScrcpyOptions1_23AdbScrcpyOptions1_22

New options

  • ✅ Option to not clean up on exit (--no-cleanup)

Protocol changes

  • ✅ (Breaking) Metadata for video key frames

v1.22 (5/5)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.22ScrcpyOptions1_22AdbScrcpyOptions1_22

New options

  • ✅ Option to not try lower resolution on encoder error (--no-downsize-on-error)
  • ✅ Option to not send device metadata
  • ✅ Option to not send dummy byte

Protocol changes

  • ✅ (Breaking) Skip control socket when control is disabled
  • ✅ (Breaking) Pass buttons to scroll events

v1.21 (3/3)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.21ScrcpyOptions1_21AdbScrcpyOptions1_16

New options

  • ✅ Option to disable clipboard synchronization (--no-clipboard-autosync)

Protocol changes

  • ✅ (Breaking) New server argument format
  • ✅ (Breaking) Response for set clipboard request

v1.18 (5/5)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.20ScrcpyOptions1_18AdbScrcpyOptions1_16
v1.19ScrcpyOptions1_18AdbScrcpyOptions1_16
v1.18ScrcpyOptions1_18AdbScrcpyOptions1_16

New options

  • ✅ Lock video orientation to initial value (--lock-video-orientation=initial)
  • ✅ Option to lock device on exit (--power-off-on-close)

Protocol changes

  • ✅ (Breaking) Command to expand settings panel
  • ✅ (Breaking) List video encoder output format change
  • ✅ (Breaking) Support long-press back button

v1.17 (1/1)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.17ScrcpyOptions1_17AdbScrcpyOptions1_16

New options

  • ✅ Option for video encoder (--encoder)

v1.15 and lower (20/20)

Official release notes

Scrcpy version@yume-chan/scrcpy version@yume-chan/adb-scrcpy version
v1.16ScrcpyOptions1_15AdbScrcpyOptions1_16
v1.15.1ScrcpyOptions1_15AdbScrcpyOptions1_16
v1.15ScrcpyOptions1_15AdbScrcpyOptions1_16
Older versionsNot supportedNot supported

New options

  • ✅ Option to keep screen off (--turn-screen-off)
  • ✅ Stay awake while plugged in (--stay-awake)
  • ✅ Max video resolution (--max-size)
  • ✅ Max video bitrate (--bitrate)
  • ✅ Max video frame rate (--max-fps)
  • ✅ Lock video orientation (--lock-video-orientation)
  • ✅ Crop video (--crop)
  • ✅ Video codec options (--codec-options)
  • ✅ Option to not send frame metadata
  • ✅ Choose display to mirror (--display)
    • ✅ List displays (--display=-1)
  • ✅ Enable show touches (--show-touches)

Protocol changes

  • ✅ Parse video stream
  • ✅ Use forward tunnel (--tunnel-forward)
  • Control
    • ✅ Option to disable control (mirror-only) (--no-control)
    • ✅ Inject touch events
    • ✅ Inject key events
    • ✅ Inject back/power button
    • ✅ Inject mouse wheel events
    • ✅ Set device clipboard