← Back to Blogs
HN Story

Exploring scrcpy v4.0: Dynamic Displays, Camera Control, and Performance Optimizations

May 14, 2026

Exploring scrcpy v4.0: Dynamic Displays, Camera Control, and Performance Optimizations

For developers, QA engineers, and power users, mirroring an Android device to a PC has long been a staple of the workflow. scrcpy (pronounced 'screen copy') remains one of the most respected tools in this space because it requires no root access and no app installation on the device. With the release of version 4.0, the project has introduced several high-impact features that move beyond simple mirroring into dynamic device interaction.

The Shift to SDL3

One of the most fundamental technical changes in v4.0 is the migration from SDL2 to SDL3. This is not merely a version bump; it allows scrcpy to leverage active maintenance and new APIs that were previously unavailable.

Most notably, SDL3 enables aspect-ratio locking during window resizing. Previously, users had to deal with black borders when resizing the window to maintain the content's proportions. Now, the window aspect ratio is preserved natively, providing a cleaner, more integrated feel. For those who prefer the legacy behavior, the --no-window-aspect-ratio-lock flag remains available.

Dynamic Virtual Displays with "Flex Display"

Perhaps the most powerful addition for power users is the Flex Display feature. By using the --flex-display (or -x) flag, users can create a virtual display that resizes dynamically along with the client window.

This transforms scrcpy from a static mirror into a flexible workspace. For example, you can launch a specific Android app (like Firefox or Settings) in its own window and resize that window to any dimension you need, and the Android system will adjust the app's layout accordingly.

Example Command: scrcpy --new-display=1024x768/160 --start-app=com.android.settings --flex-display

Enhanced Camera Control

Version 4.0 extends scrcpy's utility by adding dynamic control over the device's camera. Users can now manage the torch and zoom levels directly from their keyboard:

  • Torch: MOD+t to turn on, MOD+Shift+t to turn off.
  • Zoom: MOD+↑ to zoom in, MOD+↓ to zoom out.

These can also be configured at startup via --camera-torch and --camera-zoom flags, making scrcpy a viable tool for remote camera monitoring or specialized photography tasks.

Quality of Life and Performance Fixes

Beyond the headline features, v4.0 includes several critical refinements:

Preventing Device Sleep

  • The new --keep-active flag periodically signals user activity to the system. Unlike --stay-awake, this does not alter global system settings and works regardless of whether the device is plugged into power.

Visual Feedback

  • To eliminate confusion when a connection is lost, scrcpy now displays a disconnected icon for two seconds before the window closes, rather than simply vanishing, which often looked like a crash.

Technical Performance

  • Meta Quest Support: A workaround was implemented to fix flickering issues caused by recent Meta Quest firmware updates.
  • CPU Optimization: A fascinating bug was fixed regarding "denormal numbers." In previous versions, playing silence in an OPUS audio stream caused the decoder to produce tiny non-zero numbers, which slowed down resampling by roughly 40x. This was fixed upstream in FFmpeg.
  • UI Tweaks: The default background color is now dark gray (customizable via --background-color), and new shortcuts like F11 for fullscreen and MOD+q to quit have been added.

Community Perspectives

The community reaction to v4.0 has been overwhelmingly positive, with users highlighting the tool's seamless nature. One user noted its utility in extreme scenarios:

"The best way I found to get a stable connection... was to hang my phone at the top of a window using a salad bag, and share the phone connection to a computer via USB... I discovered far too late that my distro now has a scrcpy package, which makes enabling the sharing after all the setup conveniently from the computer."

While most users praise the "Just Works™" experience, some have noted edge-case issues, such as gesture-based navigation conflicts on specific Samsung devices, reminding us that the diversity of Android hardware continues to be a challenge for any mirroring tool.

Summary of Key Commands for v4.0

Feature Command/Shortcut Description
Flex Display --flex-display or -x Resizes virtual display with window
Keep Active --keep-active Prevents device from sleeping
Aspect Ratio Default (SDL3) Locks aspect ratio during resize
Camera Torch MOD+t / --camera-torch Toggles device flash
Camera Zoom MOD+↑ / MOD+↓ Controls camera zoom level

References

HN Stories