Skip to main content
MistServer MistServer

What MistServer actually does

An open source media server we have been building since 2009. This is what it does today, and what is coming, starting with an interface where you draw the pipeline instead of configuring it.

Shipping today

In the builds you can download right now.

Any in, any out

MistServer reads the protocols your encoders and cameras send, and serves the ones your viewers and partners ask for. It repackages between them as the stream passes through, so there is no separate transmuxing step to run.

  • Contribution and delivery protocols are both just settings
  • One ingest can feed many outputs at the same time
  • Passthrough for platforms that need the original signal
SRT · RIST RTMP · RTSP SDI · NDI files · S3 MistServer HLS · DASH WebRTC WebCodecs SRT · MPEG-TS contribution delivery repackaged on the fly contribution SRT · RIST RTMP · RTSP SDI · NDI files · S3 MistServer HLS · DASH WebRTC WebCodecs SRT · MPEG-TS delivery
One ingest, many outputs, repackaged as it passes through.

SCTE-35 cue insertion

Insert timed ad-break cues into a live stream while it is running. A JSON request creates an SCTE-35 metadata track and MistServer carries the marker into its MPEG-TS outputs.

  • Create splice-out markers from a small JSON request
  • Carried in TS over UDP, TCP, SRT and RIST
  • Cue metadata travels alongside the audio and video
JSON request splice_out · 60s live programme MistServer SCTE-35 track TS · UDP/TCP SRT RIST cue programme timeline
A JSON instruction becomes a timed cue carried beside the programme in each TS-based output.

Record, restream, clip and rewind

The same output engine can send a stream to another platform or write it to a file. Rules start those jobs automatically, a live buffer gives viewers instant rewind, and time-range parameters turn any available section into a clip.

  • Push to RTMP, SRT, RIST, WHIP, unicast or multicast targets
  • Automatic and scheduled recording with retry rules
  • In-memory rewind or disk-backed DVR for longer windows
  • Generate or download clips by media time or wall-clock time
live stream MistServer live buffer platform / CDN automatic push recording file or segments DVR playback seek behind live clip start + duration one output engine manual · automatic · scheduled · API-driven live stream MistServer live buffer platform / CDN automatic push recording file or segments DVR playback seek behind live clip start + duration automatic or API-driven
One live buffer can feed destinations, recordings, rewindable playback and time-bounded clips.

Separate processes, shared memory

Each input, output and processing step is its own process. They share memory and nothing else, so one of them falling over does not take the server with it.

  • A crashed output leaves the others running
  • Restart or replace one component without touching the rest
  • Work spreads across cores
every stage is its own process input process shared memory the only thing in common output process output process crashed output restarted on its own; viewers on the others never notice processing
A fault stays where it happened. Nothing else in the pipeline goes down with it.

Runs on modest hardware

MistServer is native code built on our own libraries rather than a deep dependency tree, and most of what it needs is linked in statically. Installing it is small, and it is as comfortable on an ARM board or an appliance as on a rack server.

  • No runtime, interpreter or framework to install first
  • Runs well on ARM and embedded hardware
  • The same software across all of them
MistServer few dependencies mostly statically linked ARM board edge appliance cloud VM bare metal no runtime to install nothing to provision around it
Native binaries with a deliberately small dependency set, mostly linked statically.

Wildcard streams

Set up a family of streams once instead of adding them one at a time. Anything matching the pattern starts when it starts sending, and goes away when it stops.

  • One entry covers any number of live streams
  • Serve a whole folder of files from a single entry
  • Nothing to add when a new encoder shows up
one configuration live+ live+cam-01 live+cam-02 live+studio-b live+anything no per-stream setup created and removed on demand
Set up a family of streams once. New ones appear when they start sending.

SDI and NDI

SDI and NDI go in and out of MistServer directly. A feed can arrive on a cable and leave over IP, or the other way round, without a gateway box in between.

  • DeckLink SDI on request today
  • AJA in the preview build, Dektec after that
  • NDI in and out across the production LAN
baseband SDI DeckLink on request NDI preview on request MistServer IP SRT · RIST · RTMP HLS · DASH WebRTC · WebCodecs both directions, in the same server
Baseband and IP meet in the server, with no gateway box in between.

Composer

Combine and mix audio and video into a single output. Grids, picture in picture, alpha layers and fallbacks, all changed while the stream is running.

  • Multi-camera grids and picture in picture
  • Alpha layering for overlays and graphics
  • Switch to a standby source when an input drops
CAM 01 CAM 02 slides overlay · alpha Composer live layout CAM 01 02 slides + overlay one output
Combine sources into one output: grids, picture-in-picture, alpha layers and automatic fallback, changed live without restarting the stream.

Encoding

An encoder built on libav that runs inside MistServer and covers the modern formats, in hardware or in software. It handles raw pixels as well as encoded ones, which is what SDI work needs.

  • Hardware and software encoding from the same configuration
  • Audio too: AAC to Opus lets one source feed both HLS and WebRTC
  • Raw and encoded pixel handling for SDI to IP
source any codec MistServer encoder libav hardware or software 1080p 720p 480p AAC · Opus raw pixels, for SDI
Built on libav, running inside MistServer. It also moves between raw and encoded pixels, which is what lets SDI and IP meet.

WebCodecs player

A player that passes codec data straight to the browser decoder. Much less to set up than WebRTC, latency in the same range, and it works over protocols WebRTC cannot use.

  • Simpler to implement than WebRTC
  • Latency in the same range
  • One of several options inside the player
MistServer WebSocket WebCodecs screen no container to unwrap hardware decoding, WebRTC-class latency, far less to deploy
Codec data goes straight to the browser decoder over an ordinary WebSocket.

Management interface and API

Everything MistServer does sits behind one JSON API, and the built-in web interface is a client of that same API. Anything you can click, you can script.

  • Streams, push targets, processes and clustering from either
  • A web interface built in, with no extra service to deploy
  • Served over HTTPS, with admin traffic kept out of viewer counts
web interface your scripts one JSON API over HTTPS MistServer anything you can click, you can script
The interface is a client of the same API your scripts use.

Load balancing and failover

MistServer includes a balancer for a group of MistServer nodes. It points each viewer at a healthy node near them, and takes a failed one out of rotation without disconnecting anyone.

  • Origin and edge are the same binary
  • Viewers routed by health and location
  • A node can fail without taking its viewers with it
balancer coordination only node 1 origin / edge node 2 origin / edge node 3 · failed origin / edge viewer viewer viewer viewer viewer viewer
The balancer coordinates; media flows directly between viewers and interchangeable MistServer nodes.
request hook allow rewrite reject

Automation and access control

Hooks fire at ingest, playback, stream, recording and server lifecycle events. They can notify another system or block while your code approves, rejects, reroutes or rewrites what MistServer does next.

  • Call an HTTP endpoint or any local executable
  • JWTs, stream keys and session-aware viewer checks
  • Rewrite incoming pushes, playback names and stream sources
  • Custom variables and external writers for unusual workflows
sessions streams live status API WebSocket Prometheus

Monitoring and live statistics

Inspect streams, tracks, viewers, inputs and outputs while they are live. Read recent statistics through the API, follow status over WebSocket, or scrape the built-in Prometheus endpoint for long-term monitoring.

  • Prometheus-compatible metrics and published Grafana dashboards
  • Event webhooks for stream and connection changes
  • A live connections panel that can terminate a stuck session
raw MPEG-TS pass + demux raw TS A/V tracks metadata

Raw TS passthrough and demuxing

Keep an MPEG transport stream byte-for-byte intact for a downstream system while an optional demuxer exposes its audio, video and metadata tracks to the rest of MistServer at the same time.

  • Preserve private data and signalling MistServer does not interpret
  • Use the untouched multiplex and the parsed tracks side by side
  • Inspect and route individual tracks without giving up passthrough
files folders playlists MistServer VoD linear any output

Files, folders and playlists

Serve on-demand media from local storage, HTTP or S3-compatible sources through the same delivery protocols as live streams. A folder can become a catalogue and a playlist can run as a linear channel.

  • MP4, HLS, Matroska, Ogg, audio and transport-stream inputs
  • One folder-backed stream covers a whole library
  • Run files and playlists in simulated-live mode

Up next

Built and working their way to release. These reach the regular releases over the coming months, and we can hand you a build sooner if you need one.

Pipeline editor

A new management interface built around a canvas. Drop in a source, connect it to processing and destinations, and apply. MistServer writes the stream, process and push configuration for you, and every card shows whether it is live, idle or failing. You never have to open the rest of the interface.

  • Templates for the common jobs: stream to viewers, restream to a platform, record a camera, transcribe, detect, multiview
  • Presets and a guided setup for every part, so YouTube is a title and a stream key
  • A review before every apply, with the restarts it will cause spelled out
  • The interface in English, German and Spanish
Pipelines · camera-delivery Save Review & apply RTSP camera cam1 1080p · H264 · live Encode 720p H264 · 2 Mb/s + Opus for WebRTC YouTube Live RTMPS · stream key Browser player HLS · WebRTC drop to add a destination no config files: connect the cards and apply Pipelines Review & apply RTSP camera cam1 1080p · H264 Encode 720p H264 · 2 Mb/s YouTube Live RTMPS · stream key Browser player HLS · WebRTC drop to add connect the cards and apply
A source, a processing step and destinations on a canvas. Connect them, apply, and MistServer writes the configuration. Live status shows on every card.

Caching

Caching for ingest and for segmented output. On ingest it makes segmented inputs more reliable. On output it serves segments that have not changed rather than building them again for every connection.

  • Segmented ingests survive a hiccup
  • Unchanged segments are served, not rebuilt
  • Biggest win when many connections want the same thing
without caching segment rebuild #1 rebuild #2 rebuild #3 rebuild #4 the same work again for every connection with caching segment cache built once connection connection connection connection served, not recomputed
Built once and handed out, instead of rebuilt for every connection that asks.

Device management

Cameras and capture devices are found automatically and managed from MistServer, with control travelling alongside the video instead of through a separate system.

  • ONVIF, VISCA, NDI, SDI and local A/V devices
  • On Axis cameras it can run on the camera itself
  • PTZ from an operator or from a script
ONVIF · VISCA NDI · SDI local A/V auto-detected devices MistServer media in PTZ control pan · tilt · zoom viewers operator or automation on Axis hardware it can run on the camera itself
Cameras are managed, not just ingested. ONVIF, VISCA and Axis control rides alongside the media path, so pan, tilt and zoom are part of the same system.

AI processing

Models run against the stream on your own machine and return their results as metadata. The model pack covers detection, segmentation, pose, depth, faces, moderation, audio analysis, OCR and transcription.

  • Parakeet for transcription, YOLO for detection
  • Moderation, face recognition, OCR and audio analysis
  • Runs locally through ONNX
live stream audio + video MistServer frame access frames metadata ONNX, on your box detection · pose faces · moderation transcription · OCR no per-frame API bill, nothing leaves the machine
Models run locally through ONNX and hand their results back as stream metadata.
more inputs existing cues SCTE-35 more outputs richer cues

Expanded SCTE-35

Broader cue handling beyond today's splice-out insertion for push inputs and TS-based outputs. The next step is to carry and create SCTE-35 across more of the ingest and delivery path.

  • Move beyond the current push-input limitation
  • Support more input and output combinations
  • Handle more than today's basic splice-out cue
recording archive native writer S3 storage

Native S3

Send recordings and archives straight to object storage, with no folder-watching script sitting in between.

live VoD CMAF + DRM encrypted licensed playback

DRM

Multi-DRM for CMAF delivery, so protected content does not need a packaging chain of its own.

live stream small chunks LL-HLS LL-DASH

Low-latency CMAF and DASH

Work on the low-latency CMAF and DASH delivery paths.

MistServer ACME certificate renewal

Automatic TLS certificates

MistServer requests and renews its own certificates, so there is no proxy in front of it purely for TLS.

programme A programme B programme C multiplex one MPTS

MPTS

Proper support for multi-program transport streams.

marketplace cloud image MistServer node

One-click cloud deployments

Cloud images and marketplace listings, so bringing up a node is a few clicks.

video frame sampler thumbnail sprite sheet

Thumbnails and sprite sheets

A better thumbnailer, and sprite sheets for scrub previews in your player.

Further out

Committed to, and further down the road.

asset library VoD pipeline shared assets edge nodes

VoD pipeline

Funded by an NLnet grant. Bringing on-demand up to the standard live already enjoys, including sharing assets between nodes so a VoD setup takes far less wiring.

audio video API bridge model stack metadata

OpenAI-compatible API

Point MistServer at any provider or stack that speaks the OpenAI API, for teams who would rather not run models on their own hardware.

publisher QUIC relay relay relay viewers

HTTP/3 and Media over QUIC

A shared protocol that gives a CDN enough understanding of a stream to relay it. Publish once, and relays fan it out.

Ready when you are

Tell us what you are building

If something here lines up with what you are working on, we would like to hear about it.