GStreamer Glass is a Windows PowerShell WinForms frontend for building, inspecting, and running low-latency GStreamer streaming pipelines.
The project is designed to make advanced real-time streaming workflows easier to configure without hiding the underlying GStreamer pipeline. It focuses on low latency, direct control over pipeline behavior, and exposing settings that would otherwise require manually authoring long gst-launch-1.0 command lines.
- Build and run low-latency desktop, display, camera, audio, and scene-composition pipelines.
- Configure hardware and software video encoders, including codec, bitrate, rate control, GOP, latency, and recovery-related options.
- Stream through supported GStreamer transports such as direct WebRTC, WHIP, SRT, and RTSP.
- Configure unified or split audio and video pipelines and signaling paths.
- Preview capture sources and composed scenes before or during streaming.
- Edit the live broadcast's compositor scene — source placement, size, and opacity — while streaming, without restarting the pipeline (experimental).
- Record streams independently using configurable recording settings.
- Generate and inspect the resulting GStreamer command line before launch.
- Override the generated pipeline using validated custom
gst-launch-1.0arguments. - Configure capture devices, network adapters, WebRTC signaling, STUN and TURN behavior, retransmission, FEC, and related transport settings.
- Serve a browser-based WebRTC player with playback controls, connection diagnostics, stream statistics, PWA support, and configurable latency-management behavior.
- Terminate HTTPS/WSS locally with automatically issued Let's Encrypt certificates or a custom uploaded certificate, with plaintext transport available as an alternative to TLS.
- Require native, multi-account viewer login across the player and signaling sockets, with optional per-account TOTP two-factor authentication (and a "remember this device" option to skip repeated codes), live session revocation, automatic expiry redirects, and an option to preserve authenticated sessions across stream restarts.
- Preserve explicit control over active pipeline options: disabled settings should not silently modify the generated command line.
Running GStreamer Glass requires:
- GStreamer 1.28.X MSVC 64-bit runtime — install the official MSVC 64-bit runtime (or runtime + development) installer for Windows from the GStreamer project's own download page.
- A Windows x64-compatible system.
Building GStreamer Glass requires everything in Requirements above, plus:
- PowerShell.
- The
ps12exePowerShell module. - Inno Setup 6 or 7.
- A local clone of this repository.
Install ps12exe for the current user:
Install-Module ps12exe -Scope CurrentUserBefore building, open build.iss and update ProjectRoot to the full path of the local repository clone:
#define ProjectRoot "C:\Path\To\GStreamer-Glass"Run the complete build from the repository root:
.\build.ps1The build process:
- Reassembles the modular files under
src/intoout/GStreamer-Glass.ps1. - Compiles the generated PowerShell script into
out/GStreamer Glass.exe. - Runs
build.issthrough the Inno Setup command-line compiler. - Writes the versioned installer to the
out/directory.
The application version is read from $script:AppVersion in src/00-Setup.ps1. The installer configuration, included files, installation paths, shortcuts, and output filename remain managed by build.iss.
src/— active modular PowerShell source.tools/build-monolith.ps1— combines the modular source into the generated monolithic script.build.ps1— performs the complete application and installer build.build.iss— Inno Setup installer definition.gstwebrtc-api/— browser-based WebRTC player assets included with the installer.icons/— application and installer icon assets.out/— generated scripts, executables, and installer output.
- This repository was initially seeded from recovered project snapshots.
- Older point releases are preserved as a best-effort linear Git history.
- Later releases are preserved as a linear Git history.
- Historical releases and experimental checkpoints are retained to document the evolution of the application and its streaming behavior.
GStreamer Glass is a human-architected, AI-assisted project.
Project direction, design, integration, testing, review, and release decisions are performed by a human maintainer. AI assistance is reviewed and credited in applicable commit metadata for full transparency.
GStreamer Glass is licensed under the GNU Affero General Public License version 3 only (AGPL-3.0-only).
Modifications and redistributed versions must comply with the license, including the source-availability requirements that apply when modified versions are distributed or made available for users to interact with over a network.
GStreamer and other third-party components remain subject to their respective licenses.