News

13 Jul 2026

[Release] Feature release 3.11 out now!

3.11 Feature release notes Hey Everyone! Summer time is a perfect time to sit inside and update your media server software! We've got a new player/protocol combination, added an optional demuxer for rawTS streams, fixed our Resume support and improved the server...

3.11 Feature release notes

Hey Everyone!

Summer time is a perfect time to sit inside and update your media server software! We've got a new player/protocol combination, added an optional demuxer for rawTS streams, fixed our Resume support and improved the server in general.

As always, the full changelog is available as well. Downloads are available here

Raw Webcodecs player added

We've now got a new protocol/player combination for viewers, it's the webcodecs player. This is based on the new webcodecs technique and should perform much better than MediaSourceExtensions. In case this doesn't ring any bells, just see it as a new low latency player and try it out! Don't forget to activate the WSRAW protocol within the protocol panel to use it!

New default track selection algorithm: Optimal

Instead of picking the last added video or audio track MistServer will now default to picking the "best" track. It uses a heuristic to determine what is most likely the "most quality in the least amount of bytes".

TS-Demuxer process added MistProcTSDemux

This is a TS-demuxer process you can add to Raw/passthrough TS stream to also add the default MistServer demuxing. This allows you to use a rawTS stream as both exactly as received, but also see what's happening or, if you're happy with the demuxed process, use the demuxed stream. To use the rawts portion you will have to push out using ?meta=rawts once a demuxer has been added.

PUSH_INPUT_CLOSE trigger

A new trigger has been added to use for when a push input stops pushing.

Resume support fixes

Resume support has been properly fixed, it should now perform as intended once again and the feature has been extended to processes as well, meaning a process that stops and continues can resume on the previous track.

New Source selectors

There's 3 new generic track selectors to use when selecting tracks when pushing out or pulling from MistServer, source for the original quality, first for the very first matching video/audio/metadata track and last for the last matching video/audio/metadata track. There's one additional video specific selector mono for monochrome video tracks.

Connections panel

The MistServer interface now has a connections panel which shows any input, output and viewer connection currently active or known to MistServer. You can view the information available or even kill the connection.

Added /ws/stream/STREAMNAME API

This is a websocket that gives information about specific streams, including hidden from the public-facing stream information endpoints. It's been added to the status/preview panels.

Playback player default selection

We've added several defaults for the playback focus, such as latency, time to first frame, balanced and custom. This determines the order of protocols attempted for playback by the meta-player.

Player now has cover, coverv and coverh as values for fillSpace

This gives a bit more control on how the player will be shown or what should be filled up completely.

Plus:

  • Streams showing the fallback option automatically restore the non-fallback stream when possible

  • RTMP pushes can use the diminished flag to disable Enhanced RTMP specifically

  • MistProcAV can only select audio for audio tracks, video for video tracks.

  • Both spec-conformant RTSP Setup calls and non-conformant RTSP setup calls should now be supported

  • Improved PES alignment handling for H264 and H265 tracks (thanks Taiwan22!)

  • Auto detection for sampling rate & channel count for AAC init data

  • several other bugfixes and improvements

read moreless
30 Jan 2026

[Release] Feature release 3.10 out now!

3.10 Feature release notes Hey Everyone! We worked hard on this release as we wanted it done before FOSDEM2026, since we'll be demoing our newest feature and wanted to make sure it is available immediately. This release comes with the MistProcComposer, a tool...

3.10 Feature release notes

Hey Everyone! We worked hard on this release as we wanted it done before FOSDEM2026, since we'll be demoing our newest feature and wanted to make sure it is available immediately.

This release comes with the MistProcComposer, a tool to mix, match, create overlays, watermarks, failovers and sync streams within MistServer! We're quite proud of this feature and hope you'll enjoy it as well.

As always, the full changelog is available as well.

MistProcComposer

A new type of input process that can mix multiple raw streams together and (optionally) synchronize them. Create multiviews, failovers, picture-in-picture, overlays, and much more with ease! More details available at the documentation.

Behaviour change: Raw tracks now by default mask from viewers, but not processes

This is done to make sure the MistProcComposer can reach the raw tracks and it makes sense to use it for processing in general.

NOSESS environment option

You can now run MistServer binaries with the NOSESS environment option to disable the session system.

Added support for RTP with fragmented AAC audio packets.

No more warnings about using IPv4 on an IPv6 capable system

MistServer should now correctly bind the correct socket type without switching back all the time.

WS/MP4 now allows tracks 1.5s away from the most live track instead of 250ms.

WS/MP4 would refuse to load in anything futher than 250ms away from the most live track, this was a bit aggressive for some slower transcoding processes.

MistProcAV improvements

We've improved the stability for MistProcAV and added better hardware support for Nvidia. A bigger overhaul is still on the way, but it should provide a much more stable and low latency experience already.

RECORDING_END trigger/webhook would sometimes be 1 second off

The RECORDING_END trigger/webhook would sometimes be 1 second off in its naming sense when used with $second or $datetime when write access was slow. This has now been corrected.

Various other bugfixes & stability improvements

Fixed incorrect auto-detection for E-RTMP support at certain Black Magic Design devices

This caused RTMP to not work as the devices did not support E-RTMP, however this is now correctly recognized.

read moreless
27 Nov 2025

[Release] Bugfix release 3.9.2

Bugfix 3.9.2 Release notes Hey Everyone, we've got a surprise 3.9.2 release as there were a few issues that we found quite necessary to patch and a few extras that we had ready to go that didn't quite pass testing before...

Bugfix 3.9.2 Release notes

Hey Everyone, we've got a surprise 3.9.2 release as there were a few issues that we found quite necessary to patch and a few extras that we had ready to go that didn't quite pass testing before 3.9.1. The changelog will is also available.

Proxied IP addresses are now correctly passed again (regression introduced in 3.9).

Proxied IP addresses always passed on the address of the proxy instead of the proxied address. This has been fixed.

API port will now also consider X-Forwarded-For to consider traffic non-local.

This makes a reverse proxy for the API port require a login as well. Instead of only X-Real-IP. This is actually something we thought we had implemented, but apparently only did so for the non-API ports.

RIST profile setting can now be set.

RIST ignored the simple profile, this can now be set again correctly.

Wildcard Support for certificates, fixed default certificate fallback

Wildcard certificates weren't properly recognized and wouldn't match the wildcard portion. If no match can be found the fallback is to go to the first certificate that is set up.

An Alpine-based Dockerfile is now part of the main repository.

This can be used to create a MistServer docker image from the source code, making it easier for our users to create their own docker images. Though the usage is likely clear if you're familiar with Docker expect the documentation to be updated next week at the latest.

The HTML output now supports several new URL parameters.

Fillspace is now the default, which makes the player take up the maximum space it is allowed to. dev and muted no longer need a value, they only need to be passed. The documentation has been updated to reflect the changes.

read moreless
25 Nov 2025

[Release] Bugfix release 3.9.1 out now

Bugfix 3.9.1 Release notes Hey everyone, bugfix release 3.9.1 is now available. We've found a few things we wanted changed, but not enough to consider as a full release. If you want to know more we recommend looking at the full...

Bugfix 3.9.1 Release notes

Hey everyone, bugfix release 3.9.1 is now available. We've found a few things we wanted changed, but not enough to consider as a full release. If you want to know more we recommend looking at the full changelog.

Downloads can be found here.

Noteworthy Changes

Logout API call

There's a new API call to log out, which forces a clear of the authentication state of an API connection. This is necessary for browsers that can re-use previous connections even after log out

Track-ID based track selector

You can now use the track id (or pid) of a track within a stream. This works for video, audio and metadata. It can be done by adding an i# as selection. For example selecting the video track 256 you can use ?video=i256 for more information see track selectors.

Improvement EFPS / EFPKS

The effective frames per second and effective frames per kilo second have been improved to be caucluated over time rather than a single measure. This makes them far more accurate, though it can take up to 10 seconds before it's done measuring.

Metadata improvement

Stream health information now includes the track index and the (effective) frames per second.

Shared memory statistics in capabilities API call

Shared memory statistics are now available in the capabilities API call. Visible on the server stats page

Simulate live option is removed from the interface

This was an option that was never meant to be user-facing rather set automatically depending on the input used. Most notable playlist inputs, the option has been removed as it can cause unexpected/wrong behaviour if set wrongly.

Bugfix: JWK memory leak

There was a memory leak if JWKs were loaded from an URL. This has been patched.

Bugfix: DTSC memory leak

DTSC output could cause a minor memory leak when connections did not have enough bandwidth.

Bugfix: UDP API no longer respons to requests coming from its own listening port. This could sometimes happen and caused 100% CPU usage due to a loop.

Push statistics no longer accidentally pick up non-push SRT connections

Several other bugfixes and improvements.

read moreless
31 Oct 2025

[Release] Stable 3.9 Release out now

Stable 3.9 Release notes Hey everyone, we've just released our 3.9 update! It brings some exciting new features such as Enhanced RTMP (E-RTMP), native JWT support, and some very basic SCTE35 support for TS-based outputs. All in all there's quite a...

Stable 3.9 Release notes

Hey everyone, we've just released our 3.9 update! It brings some exciting new features such as Enhanced RTMP (E-RTMP), native JWT support, and some very basic SCTE35 support for TS-based outputs. All in all there's quite a few changes, so you might want to go through the full changelog.

Downloads can be found here.

Noteworthy Changes

Enhanced RTMP (E-RTMP) following 2.0 Specification

The full Enhanced RTMP V2 specification is now supported by MistServer allowing all features to be used. The upgrade happens automatically when needed and connections will automatically upgrade should the other side be capable of it as well. Both input and output support all aspects of the specification.

JWT support (JSON Web Tokens)

JWT support is now included in MistServer, which is a great method to bind multiple applications/platforms together with a unified authorization method. Currently you can only use JWTs to stream into MistServer or pull streams from MistServer. There are plans to add support for accessing the MistServer API (and web interface) as well. You can find the JWT developer documentation in our online documentation. A basic integration example can be found here.

WHEP player now included in meta-player

WHEP WebRTC output can now be played directly in the MistServer Meta-player. Of course this is in addition to WebRTC using Websockets for signaling: both methods will be supported going forward.

Meta-player keyboard controls

We've added keyboard controls to the meta-player. Various playback features such as pause, play, speed up, speed down can be done through the keyboard. Controls will be enabled by default unless "keyControls":false is set.

Stream processes automatically masked from other processes

Tracks created by stream processes will now default to being masked for other processes. This was changed since most users do not expect to re-use the result of, say, a transcode for other processes. Keep this in mind should you create a track that is meant as a source for another process, as you will have to change your configuration to oppose the new default.

RTMP improvements

RTMP push outputs can now gracefully or gracelessly disconnect. A graceless disconnect is not informing the other side that the stream is about to end, which can trigger recovery logic on the other side. Graceful disconnect means informing the other side of the stream end as before. When pushing RTMP out you can now override all aspects of the target URL by the host, application and stream URL parameters. This allows the usage of non-default URLs that might not be parsed correctly otherwise. You can also use the keepts parameter to keep the stream's internal timestamps unchanged instead of normalizing them to start from 0 when pushing out.

Jitter / Latency improvements

We've made our jitter/latency handler more aggressive in trying to lower the latency as much as possible if the connection stability allows for it.

Very basic SCTE-35 support for TS-based outputs

Basic support for creating SCTE-35 markers in TS-based outputs from JSON instructions. Sending in a simple JSON post towards MistServers meta channels will create a SCTE-35 marker which will be inserted in TS based outputs.

You can add SCTE-35 markers by sending in a JSON post towards:

http://mistserver:httpport/streamname.json?meta=SCTE35 With Content-Type set to application/json and a POST body of {"splice_out":DURATION} where duration is in milliseconds. The splice-out point will be inserted immediately.

PLAY_REWRITE trigger

A new trigger that lets you change which stream is loaded for any request, letting you overwrite the URL format arbitrarily in the same way that PUSH_REWRITE already lets you do for incoming pushes.

You can now use ! as negated track selector

Using ! at the start of a track selector is now shorthand for all,!: selecting all tracks that do not match with the given selector. For example video=!h264 would match every video track except for h264-encoded tracks.

MistUtilHealth utility intended for automated Docker container health checks

A new MistUtil has been added: MistUtilHealth. It behaves in a way compatible with Docker container health checks, and will soon be automatically used for our standard Docker containers.

Effective frames per second track property

Effective frames per second property has been added that contains the measured FPS rather than the one signaled in the track metadata. The new property can be found in all places the "regular" frames per second property can also be found.

Pushing improvements

Live push outputs now have a latency measurement, which is how close to the theoretically perfect live point the push is currently sending data from. (This makes it effectively an "internal" latency measurement, rather than "end to end" latency measurement.) A waitkey URL parameter can now be used to wait for the next keyframe before starting a push output, to minimize latency even further.

Live input improvements

Live streams can now configure a "max track idle time", which is how long a track can be idle before it is dropped. Before, this time was synchronized to the "DVR window" setting. They can be independently configured now.

Updated to mbedtls 3.6.5

We've upgraded our own builds and the meson subproject (for compiling yourself) to the latest mbedtls 3.6.5 stable release.

Fixed support for multiple SSL certificates/keys

You can set multiple certificates/keys for a single MistOutHTTPS and/or MistOutRTMPS listening port now. This allows you to serve multiple domains from a single port, even if you need to use more than one certificate to serve them (automatic TLS SNI support).

Various other improvements and bugfixes

We've massively improved the RTMP input and output protocols and done various other changes that improve compatibility with other platforms as well as bugfixes. Full details in the changelog!

read moreless
Latest 2026 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012