Skip to content

scrcpy v1.13

Compare
Choose a tag to compare
@rom1v rom1v released this 29 Apr 21:09
· 1732 commits to master since this release
v1.13

To receive a notification on new releases, click on Watch > Releases only on the top.


scrcpy v1.13

Changes since v1.12.1:

  • Add option to lock video orientation (#218, #1151)
  • Add shortcuts to rotate the display (#218, #1274)
  • Mirror secondary displays (#397, #898, #1177, #1238)
  • Enable trilinear filtering when possible (#40, #1284)
  • Add --render-driver parameter (#1284)
  • Accept --max-fps before Android 10 (#488)
  • Accept negative window position (#1242)
  • Use another local port if 27183 is not available (#945, #951)
  • Forward NumPad keys when NumLock is disabled (#1188)
  • Fix issues when directory contains non-ASCII chars on Windows (#1002)
  • Do not print irrelevant workarounds errors (#994)
  • Fix possible BufferUnderflowException on touch event (#1245)
  • Upgrade FFmpeg to 4.2.2 in Windows releases
  • Upgrade SDL to 2.0.12 in Windows releases

Highlights

Rotation

The previous release (v1.12) added Ctrl+r to request the device to switch between portrait and landscape.

This release adds two additional rotation features, which do not change the device orientation:

  • an option to lock the video orientation
  • shortcuts to rotate display at any time

Lock video orientation

The parameter --lock-video-orientation changes the mirroring orientation:

scrcpy --lock-video-orientation 0   # natural orientation
scrcpy --lock-video-orientation 1   # 90° counterclockwise
scrcpy --lock-video-orientation 2   # 180°
scrcpy --lock-video-orientation 3   # 90° clockwise

The locked orientation affects the recording, and never changes across the session.

Display rotation

New shortcuts are introduced to rotate the display at any time:

  • Ctrl+ (left) rotates the display 90° counterclockwise
  • Ctrl+ (right) rotates the display 90° clockwise

This affects only the display, not the recording.

The initial value may also be provided on start via --rotation. Possible values are 0, 1, 2 and 3 (having the same meaning as that of --lock-video-orientation).

Multi-display

Some devices may expose secondary displays, like Samsung DeX (#397). To mirror them, a new flag --display has been added:

scrcpy --display 1

Limitations

The secondary display may only be controlled if the device runs at least Android 10 (otherwise it is mirrored in read-only).

Sometimes, mirroring the secondary display just shows a black screen (if some flag called FLAG_SUPPORTS_PROTECTED_BUFFERS is set for the display). There is no known solution for now (see discussions #898 and #1177).

Downscaling quality (trilinear filtering)

If the scrcpy window is far smaller (in pixels) than the Android device, visual quality can be very low (#40, #1284).

To improve the quality, trilinear filtering is enabled when possible (OpenGL 3.0+ or OpenGL ES 2.0+):

mipmaps

(see this comment for more details)

Mipmapping is automatically enabled if the rendering is done by OpenGL 3.0+ or OpenGL ES 2.0+.

On Windows, you may want to force OpenGL (instead of Direct3D) to benefit from this improvement:

scrcpy --render-driver=opengl

On macOS, it is not supported (there is no OpenGL 3.0).

To force-disable mipmaps even on supported versions of OpenGL, use --no-mipmaps.