v1.10
Genymobile/scrcpyv1.10Aug 4, 2019by rom1v
AI Summary
This release focuses on performance improvements, specifically reducing video latency by one frame and introducing asynchronous recording to prevent blocking. It also introduces macOS-specific shortcuts and fixes for Android Q screen management.
Key Highlights
- Reduced video latency by one frame (approx. 35ms) through H.264 stream parsing optimization.
- Asynchronous recording implementation to ensure decoding is not blocked by file I/O.
- MacOS shortcuts updated to use Cmd instead of Ctrl for better native feel.
- Improved support for turning screen off on Android Q devices.
- Added options for custom window titles and changing push targets.
New Features
- Asynchronous recording
- Custom window title option
- Change push target option
- Turn screen off for Android Q devices
Full Release Notes
_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):  ### 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](https://github.com/Genymobile/scrcpy#shortcuts).