Overview
Discover what makes MistServer powerful
MistServer is a **public‑domain, full‑featured streaming media toolkit** that turns any Linux or Windows host into a low‑latency OTT platform. At its core it receives, transcodes, repackages and delivers media over modern transport protocols such as **RIST, SRT, WebRTC (WHIP), HLS/DASH**, and classic RTMP/HTTP‑Live‑Streaming. The architecture is deliberately modular: a lightweight **controller** (`MistController`) orchestrates independent binaries (e.g., `MistInput`, `MistOutput`, `MistFilter`) that expose a uniform JSON‑over‑TCP API on port 4242. This design lets developers drop or replace components without touching the core, enabling rapid experimentation and custom pipelines.
Language & Build
Core Runtime
Transport Layer
FFmpeg
Overview
MistServer is a public‑domain, full‑featured streaming media toolkit that turns any Linux or Windows host into a low‑latency OTT platform. At its core it receives, transcodes, repackages and delivers media over modern transport protocols such as RIST, SRT, WebRTC (WHIP), HLS/DASH, and classic RTMP/HTTP‑Live‑Streaming. The architecture is deliberately modular: a lightweight controller (MistController) orchestrates independent binaries (e.g., MistInput, MistOutput, MistFilter) that expose a uniform JSON‑over‑TCP API on port 4242. This design lets developers drop or replace components without touching the core, enabling rapid experimentation and custom pipelines.
Architecture & Technical Stack
- Language & Build – The entire codebase is written in C++17, compiled with Meson/Ninja. Meson’s wrap system pulls in all dependencies (FFmpeg, GStreamer, libRIST, libSRT) automatically; if a system‑wide library is present it will be preferred, reducing build times.
- Core Runtime –
MistControllerscans its directory for binaries named with theMist*prefix, loads them as shared objects (or executes them as separate processes), and discovers available inputs, outputs and filters. Each component registers itself via a tiny internal service‑registry, allowing the controller to expose a consolidated REST‑like API. - Transport Layer – The toolkit bundles mature open‑source libraries:
- FFmpeg for decoding/encoding and container handling.
- libRIST & libSRT for low‑latency, error‑correction transport.
- WebRTC/WHIP stack for browser‑based ingestion and delivery.
- Optional HLS/DASH muxers for long‑term storage or CDN push.
- Data Plane – Media streams are passed as packetized buffers (e.g., AVPacket) between components via shared memory or zero‑copy queues, minimizing CPU overhead. The API accepts JSON commands; responses are also JSON, making integration with orchestration tools trivial.
Core Capabilities & APIs
- Dynamic Pipelines – Build arbitrary ingest‑to‑delivery chains (e.g., OBS → RIST → WebRTC) by composing inputs, filters, and outputs via the API.
- Live & VOD – Supports live transcoding to multiple bitrates, as well as on‑demand playback from local or remote storage.
- Token & ACL – Built‑in simple token authentication for stream keys and IP‑based access control.
- Analytics Hooks – Exposes metrics (RTCP stats, packet loss) that can be forwarded to VictoriaMetrics/Grafana or custom dashboards.
- Webhooks & Event Bus – Emits events (stream start/stop, error) that can trigger external scripts or CI pipelines.
Deployment & Infrastructure
- Self‑Hosting – Runs on any x86_64 or ARM64 host; requires only a recent C++ runtime and the optional libraries. The controller can be daemonized with systemd, Docker, or Kubernetes (sidecar pattern).
- Containerization – Official Docker images are available on the website; they expose port 4242 and mount a persistent config directory. For Kubernetes, the controller can be deployed as a StatefulSet with PVCs for storage and ConfigMaps for API secrets.
- Scalability – Horizontal scaling is achieved by running multiple controller instances behind a load balancer, each managing its own set of inputs/outputs. RIST/SRT streams can be multicast across nodes, reducing bandwidth.
Integration & Extensibility
- Plugin System – Any binary that follows the
Mist*naming convention and implements the expected API is automatically discovered. This allows third‑party developers to ship custom encoders, DRM wrappers, or analytics collectors without modifying core code. - Scripting Hooks – The API accepts shell commands or Python scripts (via
MistScript) for ad‑hoc processing, enabling rapid prototyping. - Web UI – A lightweight React/Bootstrap interface runs on port 4242, exposing all API endpoints and providing a convenient test harness.
- Open Source Licensing – Public domain release removes licensing friction, making it ideal for embedded or commercial deployments where closed‑source components would be problematic.
Developer Experience
- Documentation – The online manual (https://docs.mistserver.org) covers installation, API reference, protocol guides, and integration tutorials. Code examples are provided in JSON and curl syntax.
- Community & Support – While the project is still maturing, an active mailing list and GitHub issue tracker facilitate quick feedback. The developer portal offers pre‑built binaries, changelogs, and a FAQ for common integration pitfalls.
- Configuration – All settings are exposed via the API; no hard‑coded config files mean CI/CD pipelines can generate runtime parameters on the fly.
Use Cases
- Enterprise OTT Platforms – Companies can spin up a private streaming server that ingests from OBS, re‑packages to RIST/SRT for internal delivery, and pushes WebRTC streams to web clients.
- Event Production – Live events can be encoded once and distributed over multiple protocols (SRT for studio links, WebRTC for mobile viewers) with a single MistServer instance.
- Edge Streaming
Open SourceReady to get started?
Join the community and start self-hosting MistServer today
Related Apps in other
Immich
Self‑hosted photo and video manager
Syncthing
Peer‑to‑peer file sync, no central server
Strapi
Open-source headless CMS for modern developers
reveal.js
Create stunning web‑based presentations with HTML, CSS and JavaScript
Stirling-PDF
Local web PDF editor with split, merge, convert and more
MinIO
Fast, S3-compatible object storage for AI and analytics
Weekly Views
Repository Health
Information
Explore More Apps
Tracks
Web-based GTD™ task manager built with Ruby on Rails
Gitit
Self-hosted other

Forgejo
Self-hosted lightweight code forge
plugNmeet
Self-hosted WebRTC video conferencing for any site
Multi Theft Auto: San Andreas
Open‑source multiplayer engine for GTA: San Andreas
Titra
Fast, intuitive time tracking for freelancers and teams