Skip to content

v1.0-beta

Latest

Choose a tag to compare

@venthereal venthereal released this 14 Apr 03:00
ff2dd60

ScrcpyGUI v1.0-beta

First stable release.

⚠️ Note: This is the final release based on Python. Moving forward, the entire codebase will be migrated to Rust for better performance and a more modern architecture.


What's New

🎬 Livestream

  • Platform Selector — Choose between YouTube, Twitch, or Facebook (no more Custom RTMP clutter).
  • Stream Key Field — Includes an inline show/hide toggle for privacy.
  • Dedicated Live Log — Livestream events are now separate from the global system log.
  • FFmpeg Log Filtering — Added info tags for bitrate/fps and red highlights for errors.
  • Fixed Black Screen — Corrected Xvfb virtual display initialization sequence before scrcpy capture starts.
  • Real-time Process Tracking — Monitor Xvfb status, scrcpy PID, and FFmpeg bitrate/resolution live.

📱 Mirror Tab

  • Cleaner Layout — Removed Video Encoder, Rotation, and Window Title options (titles are now automatically set based on the connected device name).
  • Audio Codec Selector — Support for opus, aac, flac, and raw (--audio-codec).
  • Show Touches — Added a checkbox to enable --show-touches on the device.
  • Split Audio — Record mode option to split video and audio into separate files via FFmpeg post-processing.

⚙️ Settings

  • UI Scale Fix — Resolved a missing hidpi_handler import that previously broke the "Re-detect" button.
  • Dependencies Panel — Changed to manual check only; no more annoying popups on startup.
  • Removed opencv-python — The camera overlay module has been removed to keep the app lightweight.

🔊 Audio

  • Smart --no-audio Handling — Automatically uses --no-audio-playback for scrcpy v2.1+ so audio stays on the device while the PC remains silent.
  • Auto Version Detection — Dynamically adjusts flags based on the installed scrcpy version for maximum compatibility.

🧹 Codebase

  • Completely removed the camera overlay module and opencv-python dependency.
  • Cleaned up dead imports and legacy dialogs.
  • Aligned module exports in ui/widgets/ and ui/dialogs/ with the current structure.

🛡️ Smart Flag Logic (Conflict Prevention)

To prevent crashes or command loops, the UI now automatically manages conflicting flags:

Checked Feature Automatically Unchecked Reason
Fullscreen Borderless, Always on top Fullscreen is inherently borderless and stays on top.
Borderless Fullscreen Windowed-mode specific; they cannot coexist with Fullscreen.
Turn screen off Stay awake Prevents the device screen from flickering or looping.
Stay awake Turn screen off Functions are contradictory; one keeps it on, the other turns it off.
View only Stay awake, Show Touches Stay-awake requires control permissions; Show Touches is useless without input.

Bug Fixes

Issue Fix
Black screen on livestream Fixed Xvfb + scrcpy startup sequence.
UI Scale button not working Added missing hidpi_handler import in tab_settings.py.
Crash on livestream build Fixed missing GRN (green text) import in tab_live.py.
Audio flag mismatch (scrcpy v2.1+) Replaced --no-audio with --no-audio-playback.
Log toolbar out of sync Moved the toolbar inside the frame_log_panel.

Report issues via GitHub Issues.