scrcpy is the most popular free tool for mirroring and controlling an Android phone from a PC. It's fast, open source and needs nothing installed on the phone. It was built for one device at a time, but with the right commands you can run it across a whole set of phones. This guide shows how, with copy-paste scripts for Windows, and where scrcpy stops scaling.
adb devices, then start one scrcpy window per serial: scrcpy -s SERIAL --max-size 800 --max-fps 30 --window-title SERIAL. The scripts below do that for every connected phone automatically.Install scrcpy on Windows
Either download the latest Windows release zip from the scrcpy GitHub page and unzip it (it includes adb), or install it with winget:
winget install --exact Genymobile.scrcpy
Every phone needs USB debugging turned on and the computer authorised. If you haven't done that yet, follow steps 1 and 2 in How to control multiple Android phones from one PC.
Pick a specific device
When more than one phone is connected, plain scrcpy fails with "more than one device". List the serials first:
adb devices
List of devices attached
R58M42ABCDE device
9A281FFAZ004LE device
192.168.1.21:5555 device
Then open a window for one of them:
scrcpy -s R58M42ABCDE
Shortcuts: -d picks the single USB device, -e the single TCP/IP (Wi-Fi) device.
Launch scrcpy on every phone with one script
Windows batch file (save as scrcpy-all.bat)
@echo off
rem Opens one scrcpy window per connected, authorised phone
for /f "skip=1 tokens=1,2" %%a in ('adb devices') do (
if "%%b"=="device" start "" scrcpy -s %%a --max-size 800 --max-fps 30 --no-audio --window-title "%%a"
)
PowerShell
adb devices | Select-String "\tdevice$" | ForEach-Object {
$serial = ($_ -split "\t")[0]
Start-Process scrcpy -ArgumentList "-s $serial --max-size 800 --max-fps 30 --no-audio --window-title $serial"
}
Both skip phones that are unauthorized or offline. The window title shows each phone's serial so you can tell them apart. Tip: stick a label with the last four characters of the serial on each phone.
Best flags for many windows
| Flag | What it does | Suggested value for many phones |
|---|---|---|
--max-size (-m) | Caps the longest side of the video | 600–800 |
--max-fps | Caps the frame rate | 15–30 |
--video-bit-rate (-b) | Video quality (default 8M) | 2M–4M |
--no-audio | Doesn't forward sound (scrcpy 2.0+) | On; 20 phones of audio is noise |
--turn-screen-off (-S) | Turns the phone's own screen off while mirroring | On, to save battery and heat |
--stay-awake (-w) | Keeps the phone awake while plugged in | On |
--window-title | Sets the window's title | The serial or a friendly name |
--no-control (-n) | View only, no input | For a "monitor" screen |
Wireless (Wi-Fi) mode
With the phone connected by USB and on the same Wi-Fi as the PC, run:
scrcpy -s R58M42ABCDE --tcpip
scrcpy switches the phone to TCP/IP, connects to it over Wi-Fi and starts mirroring; you can then unplug the cable. For a phone already listening on port 5555:
scrcpy --tcpip=192.168.1.21:5555
Wi-Fi is convenient for a few phones, but with many it adds lag, drops when phones sleep, and doesn't charge them. For a full rack, use USB and powered hubs.
Where scrcpy stops scaling
scrcpy is excellent for one to a handful of phones. Past roughly 5–10 devices the friction adds up:
- One window per phone. Twenty floating windows have to be arranged by hand every session.
- No one-to-many input. A tap on one phone isn't repeated on the others, so the same step has to be done N times.
- No grouping, workflows or scheduling. Anything repeatable needs separate ADB scripts (see ADB commands for multiple devices).
- CPU load grows with every window, since each one decodes its own video stream.
Outgrowing scrcpy windows?
RovaFlow shows every phone in one live screen wall and repeats your taps, swipes and typing across all selected phones. It also adds groups, no-code workflows, scheduling and mass APK install. Windows, real devices, one-time price.
See RovaFlow pricingFAQ
Can scrcpy control multiple devices at the same time?
Yes, but one window per device. Start scrcpy once for each phone with -s and the phone's serial number. Each window is controlled separately; scrcpy doesn't repeat one input on every phone.
How do I choose which phone scrcpy opens?
Run adb devices to list serial numbers, then start scrcpy with -s SERIAL (or --serial SERIAL). With exactly one USB device and one TCP/IP device you can also use -d for USB or -e for TCP/IP.
How many scrcpy windows can I run at once?
There is no fixed limit; your PC is the limit, because each window decodes a video stream. Lowering --max-size and --max-fps lets a typical PC run noticeably more windows.
Does scrcpy work over Wi-Fi?
Yes. Recent versions can switch a USB-connected phone to TCP/IP with scrcpy --tcpip, or connect to an address with scrcpy --tcpip=IP:5555. USB is more stable for many phones.