News
[Release] Bugfix release 3.11.1 out now
Hey Everyone,
3.11.1 bugfix release notes
We noticed a small, but significant issue for those using HTTPS with certificates. Plus we had ran into some small problem with our 32-bit builds, they would no longer compile for CentOS7. We had to do several updates. Now we need: Kernel 4.15 or higher, glibc 2.27 or higher and require glibc++ 3.4.25 or higher.
This roughly translates to Ubuntu18.04 and higher. Still pretty good!
As always, the full changelog is available as well. Downloads are available here
- Bugfix: Player now once again remember mute status of the player across reloads
- Bugfix: Player debug information that was left in by accident was removed
- Bugfix: Player adaptive bit rate fix
- Bugfix: Fixed multiple HTTP(S) entries not showing up in the stream info JSON
- Bugfix: Removed protocol scoring information from the info JSON output if the build is a release build (debug builds still have it), removed spammy track sorting debug messages
- Bugfix: Improved display of FPS values in the Admin interface
[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 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
diminishedflag to disable Enhanced RTMP specificallyMistProcAV 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
[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 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.
[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 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.
[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 changelog.
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.