Scrcpy, the free tool that puts your Android phone’s screen in a window on your desktop, just got its biggest update in years. Version 5.0 adds hardware-accelerated video decoding, which means your CPU does a lot less work while you’re mirroring. If you’ve used scrcpy before and found it chewed through battery on a laptop, this release is worth the ten minutes it takes to update.
What you need: a Windows or Linux PC, an Android phone running Android 5.0 or later, a USB cable that actually carries data (not a charge-only one), and about 10 minutes. Add 5 minutes if you want to set up wireless mirroring afterwards.
What’s actually new in scrcpy 5.0
The previous big release was v4.1. Scrcpy 5.0, pushed out by developer Romain Vimont and the Genymobile team, is built around one headline change: hardware decoding (#7057, #7001, #1894, #1672) and improved video buffering. In plain terms, the video stream coming off your phone used to be decoded entirely in software, burning CPU cycles. Now it’s handed to your graphics hardware instead.
Genymobile’s own release notes say decoding is faster, CPU usage drops by 10 times, and power consumption is lower. That’s a vendor figure, not an independent benchmark, but it lines up with what OMG! Ubuntu found when testing the release, which reported benchmarks showing up to a 10x drop in CPU usage on the host device.

Hardware decoding is on by default, but you can still force it off or pick a specific backend. Use –hwdec=auto for hardware decoding if possible (the default), –hwdec=disabled for software decoding, –hwdec=vaapi for VA-API on Linux, or –hwdec=d3d11va for Windows. If the hardware path fails for any reason, scrcpy quietly falls back: with –hwdec=auto, or when the option isn’t passed at all, scrcpy falls back to software decoding if the hardware decoder can’t handle the stream.
The release also carries a pile of smaller fixes. It capture all audio usages in audio playback capture mode, uses ANDROID_SERIAL in OTG mode, adds Windows ARM64 releases, fixes dropped keys in UHID for some keyboard layouts, fixes AltGr forwarding on some layouts, and upgrades platform-tools (adb) to 37.0.1, FFmpeg to 9.0.2, SDL to 3.4.18, and dav1d to 1.5.4. There’s also a new flag for people who stream games through their phone: an option for broader audio capture (–audio-dup) to fix missing game audio, while preserving existing media-only behaviour when no flag is passed.
Scrcpy 4.1 vs 5.0 at a glance
| Feature | scrcpy 4.1 | scrcpy 5.0 |
|---|---|---|
| Video decoding | Software only | Hardware-accelerated by default, software fallback |
| Reported CPU load vs previous version | Baseline | Up to 10x lower (vendor figure) |
| Windows on ARM64 | Not supported | Official build added |
| Game audio capture | Media-only audio | –audio-dup flag for broader capture |
| Bundled adb / FFmpeg / SDL / dav1d | Older bundled builds | 37.0.1 / 9.0.2 / 3.4.18 / 1.5.4 |
Install scrcpy on Windows
The quickest route is a package manager. Open PowerShell or Windows Terminal and run one of these, depending on what you already have installed: winget install –exact Genymobile.scrcpy, or from Chocolatey choco install scrcpy and choco install adb if you don’t have it yet, or from Scoop scoop install scrcpy and scoop install adb.
One thing to check before you rely on winget: at the time of writing, the public winget listing still shows an older build. The package page for the winget entry lists Publisher Genymobile, Version 4.1, Package ID Genymobile.scrcpy. Package managers usually catch up with a new release within a few days, so if you want 5.0 immediately, skip the package manager and grab the ZIP straight from the GitHub releases page instead, then extract it to a folder and run scrcpy from a terminal inside that folder.
Install scrcpy on Linux
On Debian and Ubuntu, the simplest command is apt install scrcpy, for Debian/Ubuntu-based distributions, and on Fedora or RHEL it’s sudo dnf install scrcpy. There’s a catch on Ubuntu specifically: the version sitting in the default repos lags behind upstream. As OMG! Ubuntu put it, Linux users have more choices since older versions of scrcpy are available to install from the Ubuntu repos, and while those versions won’t have the hardware decoding features, they still work.
If you want 5.0 specifically and you’re on Ubuntu, the Snap Store build is your best bet, though it needs a moment to roll out. The unofficial scrcpy snap on the Snap Store will be updated to v5.0 shortly. If you don’t want to wait, the maintainer has opened a testing channel: you can test the new version by switching to the candidate risk channel with sudo snap refresh –channel candidate scrcpy, and if no major blockers turn up, it gets promoted to stable.
Hardware decoding on Linux rides on VA-API, which usually needs one extra package. On Ubuntu, using the VA-API hwdec requires the va-driver-all package to be installed, if it isn’t already. Run sudo apt install va-driver-all before you bother troubleshooting anything else. Without it, the feature doesn’t break, it just quietly does nothing: using the VA-API hardware decoder on Ubuntu requires installing the va-driver-all package, and without it, scrcpy 5.0 falls back to software decoding automatically, so the feature still works but without the CPU savings.
Enable USB debugging on your phone
This part hasn’t changed and still trips people up. Here’s the exact path, verified against the current Android developer options menu:
- Open Settings and go to About phone.
- Find the build number entry and tap it seven times. Go to Settings → About Phone → tap Build Number 7 times → go back to Settings → Developer Options → enable USB Debugging.
- Go back to the main Settings screen, open System (or Additional settings on some phones), then Developer options.
- Scroll down and switch on USB debugging. Confirm the warning dialog if one appears.
On Xiaomi phones running MIUI or HyperOS, there’s a second toggle buried nearby, and it’s easy to miss. If scrcpy connects but your taps and keystrokes don’t register, go back into Developer options and switch on USB debugging (Security settings) as well, then reboot the phone before trying again.
First connection and confirming hardware decoding is working
- Plug the phone into the PC with a data-capable USB cable.
- On the phone, pull down the notification shade and set the USB mode to File Transfer (MTP), not Charging only. Set USB mode to File Transfer (MTP), not Charging only.
- A dialog pops up on the phone asking to allow USB debugging. If your phone displays an “Allow USB debugging?” prompt, unlock the phone and tap Allow. Tick the box to remember the computer if it’s yours.
- Open a terminal on the PC and type
scrcpy, then press Enter. The phone’s screen should appear in a window within a second or two. - To check which decoder scrcpy picked, close it and run
scrcpy -V verbose. The log lines near the top name the active video decoder. If you want to force a specific one instead of trusting auto-detection, add the flag yourself, for examplescrcpy --hwdec=d3d11vaon Windows orscrcpy --hwdec=vaapion Linux.
Going wireless
Once the USB connection works, you can drop the cable entirely. The easiest method lets scrcpy handle everything: scrcpy –tcpip with the phone plugged in via USB finds its IP address, enables TCP/IP mode, and connects, then you unplug the cable. To reconnect to a device already listening, use scrcpy –tcpip=192.168.1.42, or scrcpy –tcpip=+192.168.1.42 to force a fresh reconnection.
If you’d rather drive it manually, or the automatic version fails, the underlying steps are: run adb tcpip 5555, unplug the USB cable, run adb connect DEVICE_IP:5555, run scrcpy, and when finished run adb disconnect. Wireless mirroring adds noticeable latency compared with USB, so it’s fine for checking notifications or giving a quick demo, less fine for anything that needs tight timing like a game.
Common problems and fixes
| Problem | Likely cause | Fix |
|---|---|---|
| “adb: no devices/emulators found” | USB debugging off, bad cable, or missing driver | Go to Settings > Developer Options > USB Debugging and turn it on; swap to a data-rated cable and reinstall the ADB driver if needed. |
| Mirroring is laggy or your CPU fan spins up | Hardware decoder not engaged, or bitrate too high for the link | Reduce the video resolution and bitrate by running scrcpy –max-size 800 –video-bit-rate 2M, and on Linux confirm va-driver-all is installed. |
| Taps and keystrokes don’t register on a Xiaomi phone | MIUI/HyperOS blocks input until a second toggle is enabled | Enable “USB Debugging (Security Settings)” in Developer Options in addition to standard USB Debugging, then reboot the device. |
| Wireless connect says “connection refused” | Wireless debugging is listening on a different port than scrcpy expects | Wireless debugging can run on a different port than 5555, so run adb tcpip 5555 manually to set it before scrcpy –tcpip will succeed. |
| Hardware decoding never seems to activate on Ubuntu | Missing VA-API driver package | Run sudo apt install va-driver-all, then reconnect the phone and relaunch scrcpy. |
What this means for you
If you already use scrcpy for ADB debugging, testing apps without an emulator, or just checking messages on a bigger screen, updating costs nothing and the CPU savings are real even if the “10x” figure is Genymobile’s own marketing number. On Windows, grab the GitHub ZIP now rather than waiting for winget to catch up, since the listed package was still on 4.1 at the time of writing. On Ubuntu, skip the apt repo, it’s stuck on an old build, and either wait a few days for the snap to update or use the candidate channel if you want 5.0 today. Either way, remember the one extra step Linux users need that Windows users don’t: installing va-driver-all, or the hardware decoding this whole update is about will silently never turn on.
Sources
- OMG! Ubuntu: Scrcpy 5.0 adds hardware decoding for Android mirroring
- GitHub: Release scrcpy 5.0 · Genymobile/scrcpy
- GitHub: Call for testing: scrcpy 5.0 · brlin-tw/scrcpy-snap
- scrcpy.org: Download SCRCPY – Latest Version for Windows, macOS & Linux
- scrcpy.pro: Scrcpy Setup Guide for Windows, Mac & Linux
- scrcpy.pro: How to Use Scrcpy: Complete Guide for Windows, Mac & Linux
- winstall.app: Install scrcpy with WinGet
- viarotel.eu.org: scrcpy on Windows reference
- ADB Handbook: scrcpy guide: control and record Android from your desktop
- Software House: Scrcpy 101: The Ultimate Guide to Downloading, Configuring, and Mastering Android Mirroring

