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.

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.

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 our own libraries statically linked ARM board edge appliance cloud VM bare metal no runtime to install nothing to provision around it
Native binaries built on our own libraries, mostly linked in 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 · AJA NDI over the LAN 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
origin balancer edge node edge node failed node viewer viewer viewer viewer viewer viewer
MistServer’s own balancer, for a cluster of MistServer nodes.

Up next

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

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.

Native S3

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

DRM

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

Low-latency CMAF and DASH

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

Automatic TLS certificates

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

MPTS

Proper support for multi-program transport streams.

One-click cloud deployments

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

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.

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.

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.

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.