Skip to content

@rom1v rom1v released this Dec 10, 2019 · 10 commits to master since this release

Hotfix for v1.12:

  • Fix bit-rate parsing when "long" is 32 bits (#995)

A bug introduced in v1.12 could prevent to set a custom bit-rate (scrcpy -b 12m).

In practice, the bug only happened on the Windows release (compiled with mingw32), and possibly on other 32 bits systems.

Assets 7

@rom1v rom1v released this Dec 9, 2019 · 13 commits to master since this release

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


scrcpy v1.12

Changes since v1.11:

  • Add shortcut (Ctrl+r) to rotate device screen (#11)
  • Respect scrolling configuration on macOS (#966)
  • Initialize Application object (fix crashes on some devices) (#940)
  • Restore the .jar extension on the device (fix crashes on some
    devices) (#944)
  • Inject mouse events with a virtual device id (fix crashes on some
    devices) (#962)
  • Refuse to push server if it points to a directory (#956)

Highlights

This is a small release: one feature and some fixes.

Shortcut to rotate device screen

It is now possible to rotate the device screen (switch between portrait and landscape modes): Ctrl+r.

Note that it rotates only if the application in foreground supports the requested orientation.

Fix natural scrolling

On macOS, the scroll direction can be configured, but was not respected by scrcpy. (#966)

Device crashes fixes

Some changes introduced in v1.10 caused crashes on some devices (#940 and #944, impacting many users). Another bug crashing an Android TV box have been fixed (#962).

Assets 7

@rom1v rom1v released this Nov 19, 2019 · 59 commits to master since this release

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


scrcpy v1.11

Changes since v1.10:

  • Add support for touchscreens/multitouch (#22, #865)
  • Add --max-fps to limit the frame rate (Android 10 only) (#488)
  • Add options to set an initial window size and position (#762)
  • Add option to disable window decorations (#762)
  • Add --prefer-text option (#650)
  • Add manpage
  • Fix copy-paste on Android 10 devices (#796)
  • Fix "turn screen off" on Android 10 devices (#835)
  • Fix clicks not working in some games (#635)
  • Fix device rotation while the window is maximized (#750)
  • Fix scrcpy-noconsole.exe (#691)
  • Fix HiDPI support (#829)
  • Fix segfault on empty file recorded (#918)
  • Fix recorded video to avoid crashes in Adobe Premiere (#702)
  • Fix segfault on recording with old FFmpeg versions (#707)
  • Fix several crashes on some devices (like Meizu) (#240, #365, #921)
  • Upgrade FFmpeg to 4.2.1 in Windows releases
  • Upgrade platform-tools to 29.0.5 (adb) in Windows releases

Highlights

Touchscreen / multitouch

On a computer with a touchscreen, scrcpy now allows to control the device using several fingers, for example to zoom an image or a map.

Android 10

Several features (copy-paste, turn screen off) had been adapted to work on Android 10.

In addition, a new option --max-fps have been added to limit the mirroring frame rate (only works on Android 10). This may help with wireless or remote control (for example over an SSH tunnel).

More devices supported

Some devices (typically Meizu phones) did not work due to crashes in their ROM when running scrcpy. Workarounds have been implemented to make them work.

Assets 7

@rom1v rom1v released this Aug 4, 2019 · 147 commits to master since this release

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


scrcpy v1.10

Changes since v1.9:

  • Reduce latency by 1 frame (#646)
  • Record asynchronously
  • Use Cmd instead of Ctrl for shortcuts on macOS when possible (#642)
  • Add option to set a custom window title (#120, #614)
  • Add option to change the push target (#659)
  • Make --turn-screen-off work for Android Q devices (#586, #587)
  • Prevent to turn screen off if no control (#608)
  • Upgrade FFmpeg to 4.1.4 in Windows releases
  • Upgrade platform-tools to 29.0.2 (adb) in Windows releases
  • Upgrade SDL to 2.0.10 in Windows releases

Highlights

Reduced latency

One major goal of scrcpy is to mirror Android devices with minimal latency.

However, the way the H.264 video stream was parsed by FFmpeg introduced a latency of one frame. As a consequence, a frame was not sent to the decoder before the next one was (partially) received.

In this release, this part has been rewritten so that a frame is decoded as soon as it is received, by taking advantage of the knowledge of packet boundaries on the device side.

As detailed in #646, this effectively reduces the latency by one frame. For example, in 800x448 (-m 800), the end-to-end latency can be as low as one frame (for a video at 30 fps, about ~35ms):

448x800_30fps_lowlatency

Asynchronous recording

Recording the video stream (with scrcpy --record file.mkv) while mirroring consists in muxing, on the computer side, the H.264 packets in an MKV or MP4 container (without reencoding).

For simplicity, this muxing was done by the thread receiving the stream and feeding the decoder. In practice, it worked well enough, but whenever writing the file took too much time (during a blocking I/O call), this delayed the decoding of the following frames.

For maximum performance even when recording is enabled, the recorder now uses a dedicated thread.

macOS shortcuts

Mac users reported that Cmd was more natural than Ctrl for scrcpy shortcuts. Many shortcuts have been changed: see shortcuts.

Assets 7

@rom1v rom1v released this Jun 11, 2019 · 197 commits to master since this release

scrcpy v1.9

Changes since v1.8:

  • Add feature to turn screen off while mirroring (#175)
  • Add device-to-computer clipboard copy (#145)
  • Add computer-to-device clipboard copy (#413)
  • Find scrcpy-server.jar in the correct directory on Windows
  • Fix mouse focus clickthrough
  • Do not minimize the window on focus loss (#554)
  • Disable X11 compositor bypass (#522)
  • Continue text injection on failed character (#509)
  • Bind Home key to MOVE_HOME instead of HOME screen (#555)
  • Do not crash if expanding/collapsing panels is not supported (#506)
  • Do not power on the device if --no-control is set
  • Improve framerate counting
  • Add runtime option to render expired frames (i.e. not skip frames)
  • Downgrade SDL to 2.0.8 in Windows releases (#425)
  • Upgrade FFmpeg to 4.1.3 in Windows releases
  • Upgrade platform-tools to 29.0.1 (adb) in Windows releases

Highlights

Here are some highlights of the changes introduced by scrcpy 1.9.

Turn device screen off

Many users requested to turn the device screen off while mirroring (#145).

It is now possible at any time, by pressing Ctrl+o. To turn it back on, just use the POWER button (or Ctrl+p), once to switch off the (mirrored) device, once again to turn both the physical and mirroring on.

To turn the device screen off on start:

scrcpy --turn-screen-off
scrcpy -S

Copy-paste in both directions

It was already possible to copy-paste from the computer to the Android device (Ctrl+v), by injecting the text character by character (with all the limitations of text injection).

Now, it is also possible to copy the Android device clipboard (Ctrl+c) to paste it on the computer.

In addition, Ctrl+Shift+v allow to copy the computer clipboard to the device, but without pasting it, so that it can then be pasted manually on Android. That way, the clipboard content is not broken by text injection, so it can be used to transmit any text with special characters (an UTF-8 stream).

Windows PATH simplification

On all platforms except Windows, the absolute path of scrcpy-server.jar is hardcoded (typically to /usr/share/scrcpy/scrcpy-server.jar), so it is straightforward to know its path.

On Windows however, the server path may not be constant, so the build is "portable": scrcpy-server.jar is expected to be in the same directory as scrcpy.exe. Concretely, to push the server to the device, scrcpy just executed:

adb push scrcpy-server.jar /data/local/tmp/

The problem is that scrcpy-server.jar is searched in the current directory, which is not necessarily the same as the scrcpy directory. Typically, if you added the scrcpy directory in your PATH to call scrcpy from anywhere, the current directory could be anything. This was very annoying and confusing (you had to set the environment variable SCRCPY_SERVER_PATH as a workaround).

Now, on Windows, the server path will be built based on the scrcpy executable path, so it works out-of-the-box.

Mouse focus clickthrough

When scrcpy doesn't have focus, it needed one click to get focus, and another click to actually "click" on the device.

Mouse focus clickthrough was enabled in earlier versions, but a stupid regression broke it in v1.8. It has been fixed.

Assets 7

@rom1v rom1v released this Mar 7, 2019 · 312 commits to master since this release

scrcpy v1.8

Changes since v1.7:

  • Add shortcut to expand/collapse device notification panel (#392)
  • Add option --no-display to record without mirroring (#418)
  • Add option --no-control to mirror in read-only
Assets 7

@rom1v rom1v released this Feb 16, 2019 · 345 commits to master since this release

scrcpy v1.7

Changes since v1.6:

  • Support recording to MKV
  • Add "always on top" option (#391, #412)
  • Fix mp4 headers produced by recording (#351, #416)
  • Fix mouse events deserialization (comment in #350)
  • Fix file push with non-ASCII chars on Windows (#422)
Assets 7

@rom1v rom1v released this Jan 20, 2019 · 365 commits to master since this release

scrcpy v1.6

Changes since v1.5:

  • Mirror secure content (#36)
  • Fix warning "Invalid return value 0 for stream protocol" (#333)
  • Correctly handle mouse events outside device screen (#353, #357)
  • Avoid empty arguments not correctly handled on some devices (#337)
  • Keep screensaver enabled while scrcpy is running (#380)
  • Update FFmpeg to 4.1 included in Windows releases
Assets 7

@rom1v rom1v released this Nov 12, 2018 · 387 commits to master since this release

scrcpy v1.5-fixversion

Changes since v1.5 initial release:

  • Bump version to 1.5 (as shown by scrcpy --version) (#332)

Changes since v1.4:

  • Add screen recording (#21, #292)
  • Fix "push file" with spaces on Windows (#288)
  • Workaround for Os.write() bug on Android 5.0.x (#291)
  • Replace volume shortcuts on MacOS (#300)
  • Update SDL to 2.0.9 included in Windows releases
Assets 7

@rom1v rom1v released this Nov 11, 2018 · 389 commits to master since this release

scrcpy v1.5

Changes since v1.4:

  • Add screen recording (#21, #292)
  • Fix "push file" with spaces on Windows (#288)
  • Workaround for Os.write() bug on Android 5.0.x (#291)
  • Replace volume shortcuts on MacOS (#300)
  • Update SDL to 2.0.9 included in Windows releases
Assets 7
You can’t perform that action at this time.