To receive a notification on new releases, click on Watch > Releases only on the top.
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
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):
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.
Mac users reported that
Cmd was more natural than
Ctrl for scrcpy shortcuts. Many shortcuts have been changed: see shortcuts.