Strom is a GStreamer media pipeline engine with a visual, web-based GUI. At its core it builds, runs, and manages real-time media pipelines; the node-based editor lets you design and control complex media flows without writing code.
Used by Open Live: Strom is a standalone GStreamer flow engine, but Open Live — an open-source live production platform with Open Live Studio as its web-based production interface — uses Strom as a media backend, driving it over its REST and WebSocket APIs. See docs/OPEN_LIVE_SETUP.md for running your own Strom instance for Open Live.
Visual pipeline editor showing a simple test flow
- Visual Pipeline Editor - Node-based graph editor in your browser
- Real-time Control - Start, stop, and monitor pipelines via REST API or WebSocket
- Element Discovery - Browse and configure any installed GStreamer element
- Reusable Blocks - Pre-built inputs, outputs, and processing blocks (mixers, encoders, WebRTC, AES67, SRT, NDI, DeckLink, …)
- Vision Mixer - Broadcast-style PVW/PGM video switcher with web control UI
- Audio Mixer - Digital mixing console with channel processing, aux sends, groups, and metering
- WebRTC / AES67 / SRT / NDI / DeckLink - Wide protocol and hardware I/O coverage
- HTML Rendering - Render web pages as video sources using CEF (via
strom-fullDocker image) - gst-launch Import/Export - Import existing
gst-launch-1.0commands or export flows - System Monitoring - Real-time CPU, memory, and GPU usage graphs
- Authentication - Optional session login or API keys
- MCP Integration - Control pipelines with AI assistants (Claude, etc.)
- Native or Web - Run as a desktop app or a web service
Browse the full set of built-in blocks and their properties in the app's element palette and inspector.
curl -sSL https://raw.githubusercontent.com/Eyevinn/strom/main/install.sh | bashThe interactive installer detects your OS, downloads the latest release, and installs GStreamer dependencies. Then run strom and open http://localhost:8080.
docker run -p 8080:8080 -v $(pwd)/data:/data eyevinntechnology/strom:latestUse eyevinntechnology/strom-full:latest for the image with HTML rendering (CEF). Access the web UI at http://localhost:8080.
- Pre-built binaries (Linux, macOS, Windows MSI) — see GitHub Releases.
- Docker / Docker Compose (production, GPU, reverse proxy) — see docs/DOCKER.md and docs/DOCKER_GPU_SETUP.md.
- Build from source — see docs/DEVELOPMENT.md.
- Deploy for Open Live — see docs/OPEN_LIVE_SETUP.md.
- Open
http://localhost:8080. - Drag elements from the palette onto the canvas and connect their pads.
- Configure properties in the inspector, then click Start.
For interactive API docs, visit http://localhost:8080/swagger-ui.
- Documentation index — everything, organized by topic.
- FAQ — short answers to common questions.
Quick links: Open Live setup · Docker · GPU setup · Authentication · Vision Mixer · Audio Mixer · MCP · Development · Changelog
┌─────────────────────────────────┐
│ Frontend (egui → WebAssembly) │
│ - Visual flow editor │
│ - Element palette │
│ - Property inspector │
└────────────┬────────────────────┘
│ REST + WebSocket/SSE
┌────────────▼────────────────────┐
│ Backend (Rust + Axum) │
│ - Flow manager │
│ - GStreamer integration │
│ - Block registry (AES67, ...) │
│ - Storage (JSON or PostgreSQL) │
└─────────────────────────────────┘
Workspace members:
strom-types- Shared domain models and API typesstrom- Server with GStreamer pipeline managementstrom-frontend- egui UI (compiles to WASM or native)strom-mcp-server- Model Context Protocol server for AI integration
Configure via config file, CLI arguments, or environment variables (in priority order):
--port 8080 # or STROM_PORT=8080
--data-dir /path/to/data # or STROM_DATA_DIR=...
--database-url postgresql://... # or STROM_DATABASE_URL=... (production)Copy .strom.toml.example to .strom.toml for all options. Key topics have dedicated guides: storage, authentication, and HTTPS/TLS (built-in --tls-cert/--tls-key with hot-reload, or a reverse proxy). See docs/DEVELOPMENT.md for the full option list.
- REST + WebSocket/SSE API, with interactive OpenAPI docs at
/swagger-ui. WS /api/wsandGET /api/eventsfor real-time state and pipeline events.- gst-launch import/export via
POST /api/gst-launch/parseand/export. - Model Context Protocol at
/api/mcp(HTTP) or thestrom-mcp-serverbinary (stdio) — see docs/MCP.md.
Strom is written by Claude Code. The codebase is authored by AI, not hand-written by humans — that's intentional, and it's also why the code (not the docs) is the source of truth for how things work.
We welcome feature requests, ideas, and pull requests — ideally AI-written, in the same spirit. Open a GitHub Discussion, file a feature request, or send a PR.
See docs/CONTRIBUTING.md and docs/DEVELOPMENT.md. CI runs tests and builds binaries for Linux, Windows, macOS, and ARM64, and publishes Docker images on release.
MIT OR Apache-2.0
The name Strom comes from "Ström" — Swedish for "stream".