<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MistServer releases</title><link>http://mistserver.org</link><description>Notifications and summaries of MistServer version releases</description><language>en-US</language><atom:link href="https://news.mistserver.org/releases" rel="self" type="application/rss+xml" /><item>
  <title>Feature release 3.10 out now!</title>
  <description><![CDATA[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 &amp; 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.
]]></description>
  <link>https://news.mistserver.org/news/151/Feature+release+3.10+out+now%21</link>
  <guid>https://news.mistserver.org/news/151/Feature+release+3.10+out+now%21</guid>
  <pubDate>Fri, 30 Jan 2026 14:19:00 +0100</pubDate>
</item>
<item>
  <title>Bugfix release 3.9.2</title>
  <description><![CDATA[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.
]]></description>
  <link>https://news.mistserver.org/news/150/Bugfix+release+3.9.2</link>
  <guid>https://news.mistserver.org/news/150/Bugfix+release+3.9.2</guid>
  <pubDate>Thu, 27 Nov 2025 22:44:07 +0100</pubDate>
</item>
<item>
  <title>Bugfix release 3.9.1 out now</title>
  <description><![CDATA[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.
]]></description>
  <link>https://news.mistserver.org/news/149/Bugfix+release+3.9.1+out+now</link>
  <guid>https://news.mistserver.org/news/149/Bugfix+release+3.9.1+out+now</guid>
  <pubDate>Tue, 25 Nov 2025 14:30:55 +0100</pubDate>
</item>
<item>
  <title>Stable 3.9 Release out now</title>
  <description><![CDATA[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!
]]></description>
  <link>https://news.mistserver.org/news/148/Stable+3.9+Release+out+now</link>
  <guid>https://news.mistserver.org/news/148/Stable+3.9+Release+out+now</guid>
  <pubDate>Fri, 31 Oct 2025 13:00:23 +0100</pubDate>
</item>
<item>
  <title>Stable release 3.8 out now!</title>
  <description><![CDATA[Hey everyone, we've just released our 3.8 update! A long standing bug where ?stream=STREAMNAME got added to any HTTP output has been resolved. We've improved support for VP8/VP9/Opus and AV1 and made our UI much faster by making it eventbased rather than threaded.
We've also added methods to use tags and streamname(+wildcard) to make selections.

Downloads can be found here, and the full changelog can be found here.

Noteworthy Changes

HTTP-based URLs in triggers no longer contain ?stream=STREAMNAME

If one of your trigger handles expects this value to be in the URL you will need to update it accordingly. You can still parse the the unprocessed stream name from the URL yourself, or take the processed stream name from the rest of the trigger payload.

Auto-pushes can now be disabled based on specific tags or stream names used as inhibitor.

You can now specifically use #tags or streamname(+wildcard) to not activate the pushing logic

"inhibit":["live+example","#replicated"]

This would invalidate the live+example specifically and any live+wildcard stream with the #replicated tag for this push. 

Live stream processes can be disabled through tags and triggers

Similar to the auto-push function you can also select specific streams/tags to not start processes on.

Triggers can now be disabled based on specific tags or stream names.

This one is slightly different compared to processes and pushes. This functionality is in the Applies to field, which is why we've also added a method to unselect a specific #tag or streamname by adding ! in front of it: !#tag and !streamname(+wildcard). This selection will be ran from left to right and can re-activate certain streams to work again. For example first removing all live+wildcard through !live+ then specifically adding live+example to only work for live+example. 

DTSC-pulled streams are now automatically tagged with the #replicated tag

This makes it easier to both see which streams are coming from another Mistserver as source, but also to use them for process/pushing/recording logic.

VP8/VP9/Opus support in MP4 input/output

For VoDs that contained any of these codecs you will need to delete the matching DTSH file in order to see the tracks with these new codecs. The old DTSH files are usable, however only the "old" tracks will be used.

AV1 support in RTP (WebRTC, RTSP, SDP) and TS-based protocols (where available).

Note that the AV1 in TS specification is not finalized yet and our output implementation is technically incompatible (though the input implementation is fully compatible with both spec-compliant and our own output). Problems and incompatibilities might occur accordingly, but we do plan to be fully specification compliant in the near future. 
]]></description>
  <link>https://news.mistserver.org/news/145/Stable+release+3.8+out+now%21</link>
  <guid>https://news.mistserver.org/news/145/Stable+release+3.8+out+now%21</guid>
  <pubDate>Wed, 06 Aug 2025 21:00:35 +0100</pubDate>
</item>
<item>
  <title>Stable release 3.7 out now!</title>
  <description><![CDATA[Hey everyone, we've just released our 3.7 update! Some good improvements all around, new feature "stream keys" and WHIP push to other servers!

Downloads can be found here, and the full changelog can be found here.

Noteworthy Changes

New feature: Stream keys

Stream keys adds native support for the most common method of pushing live streams into MistServer. It allows you to set or generate a token for stream names and thus prevent the need for further customization or integration if this is your intended usage.

For more information please look at the documentation. Specifically the stream key documentation. 

New feature: WHIP push to other servers

You can now use WebRTC WHIP as a push option. You can do so through the following targets:


http: whip://example.com/publish
https: whips://example.com/publish


Should an authentication bearer token be needed you can add this through a parameter: ?auth=TOKEN


http: whip://example.com/publish?auth=TOKEN
https: whips://example.com/publish?auth=TOKEN


We have verified this implementation is cross-compatible with Cloudflare, Twitch and Pion (among others). 

New feature: HLS push to Youtube

MistServer now supports HLS push to Youtube specifically. When MistServer recognizes a Youtube puhs url it'll automatically adapt the push output to work. Links such as https://a.upload.youtube.com/http_upload_hls?cid=TOKEN&amp;copy=0&amp;file= that come from Youtube Studio can now be used directly as a push target without further configuration needed.

New feature: Shell-style string quoting and escaping

This has been a limitation for quite a while. MistServer has various places where it would run commands that you specify. However it did not implement shell-style string quoting and escaping. This made it impossible (for example) to put spaces in arguments. You should now be able to copy most commands directly into the MistServer fields that run commands, without having to worry about changing the format to something non-standard.

Pull-styled streams function better

Sometimes pull styled streams (dtsc or srt pull) would run stuttery, several improvements have been made.

Local-only UDP API auto-retries connection

In some environments MistServer would lose contact to its UDP API. This is now able to reconnect properly.
]]></description>
  <link>https://news.mistserver.org/news/143/Stable+release+3.7+out+now%21</link>
  <guid>https://news.mistserver.org/news/143/Stable+release+3.7+out+now%21</guid>
  <pubDate>Mon, 14 Jul 2025 14:00:34 +0100</pubDate>
</item>
<item>
  <title>Stable release 3.6 out now</title>
  <description><![CDATA[Edit: 21st of April 2025, Fixed an issue with the download links/scripts for Linux/ARM builds. Sorry about that!

Hey everyone, we've just released our 3.6 update! Most excitingly, we're finally back to having a unified version of MistServer across all platforms! It took quite a while, but we're finally there. A few final steps are still needed to bring them all to the same level of quality, but the biggest hurdle has been cleared.

Downloads can be found here, and the full changelog can be found here.

Noteworthy Changes

MistServer MacOS builds are available again

We've resumed our support for MacOS builds, and they are now available once more. They're full-featured and should be nearly identical to the Linux version, except they do not rely on shared memory. This results in only a slight performance hit.

MacOS builds may still complain on boot about having no available RAM, but that message can be safely ignored on that platform.

SRT working on Windows again

SRT should now work for both input and output once more. We managed to work around an issue caused by how Windows handles socket binding. The Windows builds use significantly more CPU time to serve SRT compared to the other platforms, but latency and the SRT protocol functionality itself are otherwise normal.

WebRTC on Windows

WebRTC on Windows is almost fully functional. Currently, it supports a single viewer simultaneously only due to a bug. We didn't want to delay the release for this, so it will be fixed in an upcoming patch.

WebRTC now has multi-path &amp; single socket support

WebRTC now supports migrating connections between mobile and Wi-Fi networks and can operate from a single listening socket. This means you only need to expose one port for WebRTC instead of the entire ephemeral range. It's especially helpful when running MistServer in virtualized environments like Docker/Kubernetes, where forwarding large port ranges is tricky.
The setup required to get WebRTC to work has also been made much more simple, and the default configuration should work out of the box for most people.

Tag support improved

The active_streams call now returns stream tags, and you can now start pushes using tags by specifying #some_tag instead of a stream name. Automatic pushes will not start inactive streams, but a single push command will.

Push outputs will now report their current file target in the push status API

Previously, if dynamic variables were used, the API would only show the variable name instead of the final file target. You had to wait until the RECORDING_END trigger to know the result. Now, the push status API displays the final file target, and updates in real-time for segmented pushes.

The autopush API now supports JSON objects

The automatic push commands push_auto_add, push_auto_remove, and push_auto_list have been updated to use JSON objects. The old format remains available for backward compatibility. We'll be updating our documentation to reflect this change.

Push interface improvements

The push interface now allows you to enable/disable automatic pushes. When disabled, they won't trigger a new push under any condition, although existing pushes remain active. This makes managing pushes easier and gives more control.

Additional improvements include:
- Quick filtering for showing &amp; stopping pushes
- Right-click options to edit, change, or stop pushes
- Clicking stream names to visit their preview pages
- Categorized push parameters and stream process options for a cleaner interface

Several other bugfixes and improvements

We've made various other minor changes to improve performance and user experience. We recommend checking the full changelog for the complete list.
]]></description>
  <link>https://news.mistserver.org/news/142/Stable+release+3.6+out+now</link>
  <guid>https://news.mistserver.org/news/142/Stable+release+3.6+out+now</guid>
  <pubDate>Fri, 18 Apr 2025 15:00:27 +0100</pubDate>
</item>
<item>
  <title>Bugfix release 3.5.1</title>
  <description><![CDATA[Hey Everyone, we've got some bugfixes and added features in this release. Most notable getting Firefox fast again &amp; fixing TS multicast input for IPv4.

Downloads can be found here, and the full changelog can be found here.

Noteworthy Changes

Firefox speed ups

We've noticed that the hexagon background of the new dark skin was slowing things down on Firefox. We've turned it off on Firefox for now.

TS UDP multicast input (IPv4)

TS over UDP multicast was broken as it was accidentally trying IPv6, we've fixed it.

Better tagging support

A small bugfix for the backend to allow triggers to see tags before a stream is live.

For the interface:
You can now set tags during stream creation, meaning a stream would inherit these tags when it becomes active. This works for both live &amp; VoD streams. 
We've also added support for pushing using tags. Instead of a stream name you can now select a tag by configuring a push for #tag. Any stream that has that tag active will then follow the push instructions given.

Mac Support

We've improved our MacOS support to now finally be compatible with MistServer 3.X versions. Expect a MacOS build showing up in the download page soon!
If you don't want to wait, compiling it yourself on a Mac should now work out of the box!
]]></description>
  <link>https://news.mistserver.org/news/141/Bugfix+release+3.5.1</link>
  <guid>https://news.mistserver.org/news/141/Bugfix+release+3.5.1</guid>
  <pubDate>Wed, 05 Feb 2025 18:55:48 +0100</pubDate>
</item>
<item>
  <title>Stable release 3.5</title>
  <description><![CDATA[Hey everyone, we've released the long awaited 3.5 update! We're quite happy with the changes and hope you'll enjoy them as well.

Downloads can be found here, and the full changelog can be found here.

Noteworthy Changes

Interface Updates

We've added the necessary web glitter and dark skin sleekness to ensure the interface is deemed "slightly prettier". The change isn't too different from our old interface; however, it's much easier on the eyes, and a few sections have been made more compact.
The biggest change is to the "Streams" page, where we have moved most of the subpanels under the new "Actions" button, which can also be accessed by right-clicking when the stream is highlighted.
Clicking on the stream name will bring you to the preview page, and hovering over the stream name will display the source.
Several other actions, such as stopping the stream, invalidating the sessions, or hard restarting through a "nuke stream" command, are available as well.

(f)MP4 Input Support

We have added fragmented MP4 support to our MP4 capabilities for both MP4 files and HLS (CMAF) streams. This means MistServer should now be compatible with almost all HLS URLs, unless the codecs within the HLS are unsupported.

(Haivision) SRT Updated &amp; Full-Featured Single Port Setup

SRT has been updated to version 1.5.4, and versioning has been added to the protocol in INFO-level messaging. The version will also appear in the protocol panel during setup.
We’ve also managed to update SRT to fully spawn separate processes using the same port, which increases both stability and efficiency.
To learn more, we recommend attending FOSDEM 2025 (February 1–2, 2025), where Jaron will explain how we achieved this and what the advantages are. Details can be found here. Once recordings are available, we’ll share them in a follow-up post.

Creation Time Added to MKV/WebM Outputs

This update makes it easier to identify the creation date of a recording and allows UTC timestamps within the recordings. It adds flexibility, especially when timing is important.

Windows Installer – Fixed Permissions for Microsoft Accounts

Windows users with Microsoft accounts previously experienced MistServer with partial permissions, leading to various issues during usage. We’ve rebuilt and properly configured the installer to resolve this problem.
If you use a Microsoft account, we recommend running the updated installer.

Various Small Updates &amp; Improvements

Several smaller improvements have been made to the code, resulting in better resource usage.

Known Issues: Windows UDP-Based Protocol Support Not Working

During updates to our UDP socket implementation, we encountered a limitation in Cygwin that breaks Windows support for the latest improvements. We are working on a fix to enable Windows to use WebRTC, SRT, and RTSP over UDP with a native Windows UDP socket implementation.
If SRT is critical for your setup, we recommend using our 3.4 build for Windows in the meantime!

New Guides Available

We’ve updated several guides in the online documentation, including:
- WebRTC Playback
- Adding GStreamer Encoding
- How to Generate Live Streams
- Example on Geo-IP Blocking  

We’ve also refreshed our documentation on starting Docker builds.
]]></description>
  <link>https://news.mistserver.org/news/140/Stable+release+3.5</link>
  <guid>https://news.mistserver.org/news/140/Stable+release+3.5</guid>
  <pubDate>Thu, 23 Jan 2025 15:00:00 +0100</pubDate>
</item>
<item>
  <title>Stable release 3.4</title>
  <description><![CDATA[Downloads can be found here and the full changelog can be found here.

Noteworthy changes

Windows builds!

We finally have releases of Windows builds for 3.X, starting with this version. The MistTray taskbar icon application has not yet been updated, so this release does not include it.
MistServer should now be ran using the MistServer Shell shortcut. This boots MistController in a shell window (which you can minimize to get it out of your way, or keep in view to see the logs in it). 

There will still be a few differences in the Windows builds compared to Linux (most notably: WebRTC is not functional in the Windows build right now), but future updates will incrementally get Windows and Linux builds to parity again.

Web interface: New stream status page

The stream status page is a new tool in the web admin interface to more effectively analyse the current state of a stream. It also allows the following actions:


Add tags
Stopping viewers
Stopping sessions
Nuking stream (forceful reset of the stream)
Look at the meta-data of the stream
Easily identify the live point for each track and their respective sync/delay
Creating/removing triggers
Starting/stopping pushes
Starting/stopping recordings


Raw pixel support

Usually you don't want to handle raw pixels in a modern media server, but in some cases it is unavoidable. MistServer now supports a new custom data structure optimized for raw video streams, and WebM/MKV-based inputs/outputs/processes have been updated to support raw pixels.

V4L2 Support (Linux only)

You can now use V4L2 to directly access webcams and other compatible devices with MistServer. Both raw pixel mode and (M)JPEG mode are supported.

RTMPS push input and pull output support

You can now set up RTMP with an SSL certificate to support incoming RTMPS connections. (Outgoing RTMPS connections have been supported for several versions already.)

WebRTC datatrack support

WebRTC (both WebSocket-based signalling and WHEP signalling) now have support for datatracks to receive JSON-based data track messages in sync with playback. Ingest support and trick play signalling over datatracks will follow at a later date.

New settings for processes

The restart behaviour can now be configured, allowing you to set how processes should respond to failure conditions. Stream processes can now be marked as inconsequential (meaning they will not impact when a stream is considered available).

Goodbye Cmake

Support for building MistServer using Cmake is now officially dropped. MistServer can only be build using Meson starting with this release.
]]></description>
  <link>https://news.mistserver.org/news/135/Stable+release+3.4</link>
  <guid>https://news.mistserver.org/news/135/Stable+release+3.4</guid>
  <pubDate>Wed, 31 Jul 2024 21:56:53 +0100</pubDate>
</item>
<item>
  <title>MistServer 3.3 stable release</title>
  <description><![CDATA[Stable release 3.3 is now available! Downloads can be found here and the full changelog can be found here.

Noteworthy changes

Improved (live) metadata track support

Metadata tracks (subtitles, JSON side band data, etc) are now properly supported end-to-end. There are new player APIs to request metadata tracks be given to a JavaScript function in-sync with playback. Metadata tracks can now be muxed to and demuxed from private data tracks in TS streams (including SRT and RIST) for effortless replication across systems.
A new "protocol" allows easy ingest of subtitles and JSON sideband data tracks over standard input or TCP socket.

Lower live streaming latency

We reworked the internals of our live streaming core code, lowering the minimum end-to-end latency between input and output from at least 1 frame on each track, to at least 1 frame on any track. Especially considering metadata tracks tend to be pretty sparse, this can make a massive difference in terms of latency - making it possible to achieve sub-second latency with less effort than ever before.

Clipping support

It is now possible to create short VoD clips on-demand from both VoD and live streams, in any/all supported output formats (including MP4, MKV, WebM, TS, FLV, etcetera).

Chromecast and video pop-out support

The built-in meta-player now supports playing back to and remote controlling Chromecast devices, as long as the player was loaded over HTTPS.
It is now also possible to use the video pop-out feature some browsers offer.

HLS DVR input now full-featured

It is now possible to use an ongoing HLS-format recording as source for a stream that then will support both live playback and seeking into the full DVR window of the recording. This also works with remote HLS streams, both VoD and live. For now, the HLS streams must use TS segments (fMP4/CMAF segment support will come in a future version).

Exit reasons

There is a set of new triggers and log messages that track why a process shut down / stopped, which greatly eases debugging and allows for more reliable tracking if an operation succeeded or failed.
]]></description>
  <link>https://news.mistserver.org/news/121/MistServer+3.3+stable+release</link>
  <guid>https://news.mistserver.org/news/121/MistServer+3.3+stable+release</guid>
  <pubDate>Thu, 21 Dec 2023 15:00:53 +0100</pubDate>
</item>
<item>
  <title>3.2.2 bugfix release</title>
  <description><![CDATA[Bugfix release 3.2.2 is now available! We've made several minor improvements that we deemed important enough to release, but did not warrant a full stable release. Downloads can be found here and the full changelog can be found here.

Changes


Feature: Support for AV1 codec in MP4 input and output
Bugfix: RTMP push output sent initial data with wrong timestamps, fixed
Bugfix: The new UDP packet pacing code accidentally broke WebRTC ingest, fixed
Bugfix: A rolling restart will no longer shut down a large percentage of segmented-protocol (e.g. HLS) viewers
Bugfix: Fix local file path DTSH writing (no longer written to a folder called "file:")
Bugfix: HTTP parser no longer chokes on reading an empty response body in non-chunked transfer modes
Bugfix: Incoming TS-SRT pushes set their UTC offset correctly now
Bugfix: Fixed track masking feature in MistProcMKVExec
Bugfix: If an TS-SRT push comes in and does not immediately send media data, no longer fails to receive the push
Bugfix: Packet jitter calculator no longer shared between inputs of single-process inputs (e.g. TS-SRT, TS-RIST)
Bugfix: Fixed output session shutting down while waiting for a pushdelay setting to be applied
Bugfix: SRT and RIST listening sockets no longer kill all connections when there is a viewer for a mid-shutdown stream connected over these protocols
Bugfix: Removed dead code in Meta-Player RAW WebSocket wrapper

]]></description>
  <link>https://news.mistserver.org/news/117/3.2.2+bugfix+release</link>
  <guid>https://news.mistserver.org/news/117/3.2.2+bugfix+release</guid>
  <pubDate>Wed, 26 Jul 2023 10:58:08 +0100</pubDate>
</item>
<item>
  <title>3.2.1 bugfix release</title>
  <description><![CDATA[Bugfix release 3.2.1 is now available! We've made several minor improvements that we deemed important enough to release, but did not warrant a full stable release. Downloads can be found here and the full changelog can be found here.

Noteworthy features / changes

Configuraton auto-saving and auto-reloading

MistServer used to only save when requested or upon a clean shut down. Now it will also save the configurations 1 minute after the last configuration change. The reasoning behind the original behaviour was to prevent anyone from making a change that crashes their system and having that saved to disk. This new feature still follows this reasoning, but instead of waiting for a clean shutdown it waits for a minute of stable operation. Alongside, the controller will now also auto-reload the config if it has changed on disk. We have made auto-read and auto-write the new default behaviour, should you wish to disable this you will need to add a new command-line parameter to MistController during start: --configrw off. It is also possible to only enable auto-read or auto-write separately, see --help for details.

Internal UDP API now properly detects IPv4/IPv6

Some systems have a functional IPv6 stack but no valid IPv6 localhost entry. This confused MistServer, as it tried to listen on IPv6 localhost but connect to IPv4 localhost. This change fixes problems with components that used the UDP API, like the Certbot integration, User Agent logging and trigger success logging.

Always-on mode changed internally

Changed "always on" behaviour to simulate always having a viewer rather than running on an entirely different code path. This fixes several problems with streams that were locked in a broken state, as this would now trigger a restart due to lack of data rather than staying online permanently.

Several other improvements

Several other improvements were made to MistServer, for a full overview please look at the full changelog.
]]></description>
  <link>https://news.mistserver.org/news/116/3.2.1+bugfix+release</link>
  <guid>https://news.mistserver.org/news/116/3.2.1+bugfix+release</guid>
  <pubDate>Mon, 10 Jul 2023 13:20:25 +0100</pubDate>
</item>
<item>
  <title>3.2 stable release</title>
  <description><![CDATA[Sorry for the long wait since 3.1, but 3.2 is now finally available! Downloads can be found here.

A big under-the-hood improvement in this release is full support for the Meson build system, which will take care of automatically building all the needed dependencies as well. If you're one of our users that likes building their own binaries, definitely take it for a spin! (Those that simply download builds from our website, you will not notice any difference.)

Official Windows and Mac releases are still not available for this version while we're in the middle of upgrading our build system, but users wanting a MacOS build can already compile from source from this version onward (3.2 code is fully MacOS compatible again).

We also temporarily reverted support for LLHLS (just plain HLS in this build), due to many reported issues with inter-track syncing. We hope to bring full support back somewhere in the coming months. For those that only need to use single-track playback (without adaptive bit rate), you can reach out to us for a 3.2 build that has LLHLS re-enabled, or simply keep using the 3.1 build of course.

The full changelog can be found here.

Noteworthy features

New sessions system

What: Until now, Mist has already had a concept of a “session”, but it was hardcoded to our predetermined definition: a session is considered to be a single view action, over a single protocol, a single IP address, and for a single stream name. This new sessions system makes this definition configurable, and splits out the session management into a new MistSession binary that collates connection stats into session stats, and passes those on to the rest of the system as a single thing.

Why: Somebody’s definition of “session” might not match ours, and the work of matching connections to sessions was quite a bit of strain on the MistController binary, which turned this into a single point of failure in the system. This change not only allows more use cases to work without needing to make changes to the code, but also speeds up the whole system and increases reliability and predictability.

Custom variables support

What: MistServer already supports using various variables in places, mostly covering the current date and time, stream name, etcetera. This functionality would add support for custom-defined variables, which may be either static or the result of running some command or calling some URL (similar to the trigger system) at a configurable interval.

Why: This makes re-using paths, hostnames, and other similar types of configuration while allowing them to change in the future easy. It's also a step up for another upcoming feature: the ability to use these variables to configure arbitrary recording times/intervals, allowing for much more powerful advance scheduling of recordings and pushes.

Scheduled Pushes

What: So far, MistServer's ability to "push" streams (which is a single concept that encompasses both recording to disk as well as sending the stream elsewhere over various protocols for replication) has been limited to two styles of pushes: Regular pushes, which are started whenever they are configured and disappear once they end. Automatic pushes, which are started whenever their corresponding stream is active, and automatically restarted as needed while the stream is still active/available, even if it fails or gets disconnect. The new scheduled pushes system lets you use arbitrary variable comparisons to determine when a push should and shouldn't be active, giving extra flexibility on top of and alongside the existing features.

Why: The perfect use case for this is a stream that may be active continuously, but only should be pushed out and/or recorded at set intervals or times. The flexibility of this new system lets you call out to external sources to set variables and then write rules to interpret those variables into a decision to push or not. For example, MistServer could be linked to a calendar that decides when pushes are active, or some kind of external toggle/switch system that can be polled for the current wanted state.

WebRTC WHIP/WHEP/WISH support

What: Support for WebRTC ingest using WHIP/WISH and egress using WHEP.

Why: Our WebRTC support required a proprietary WebSocket connection for signalling. This adds support for industry standard WHIP/WISH ingest and WHEP egress in addition to our existing signalling WebSocket (which is still supported, and usually preferred because it supports more features).
WHIP/WISH/WHEP can (for example) be interesting if there is an expected change in the IP address of the user, as it can survive such changes while the existing WebSocket-based method cannot.
]]></description>
  <link>https://news.mistserver.org/news/112/3.2+stable+release</link>
  <guid>https://news.mistserver.org/news/112/3.2+stable+release</guid>
  <pubDate>Sun, 16 Apr 2023 17:05:39 +0100</pubDate>
</item>
<item>
  <title>3.1 stable release</title>
  <description><![CDATA[The 3.1 release is upon us! Downloads can be found here.

First of all: apologies, this build is still Linux-only for now. While a lot of progress has been made on fixing MacOS and Windows compatibility in the past few months, it's not quite ready yet and we felt it prudent to release some of the fixes and features this release brings earlier rather than later.

This release also marks a new style of release post. We now mention noteworthy features with some text explaining what the feature is and why you'd want to use it, and of course the full changelog is still available as per usual.

Noteworthy features

TS-Based LLHLS

What: Support for Apple's LLHLS (Low Latency HTTP Live Streaming) protocol was already included in 3.0. However, that support is CMAF-based (the latest industry standard). HLS also supports an older TS-based segmenting method - this feature adds support for LLHLS in that format as well.

Why: This feature is useful for those that want/need to support LLHLS but are bound to using MPEG2-TS-based playback for some arbitrary reason (e.g. legacy device support, weird TVs they are using, etc).

Forward Error Correction

What: This adds support for ProMPEG Forward Error Correction to our MPEG2-TS-based output over UDP. FEC adds an additional layer of error correction packets on top of the normal packets, to allow for recovering from packet loss using parity data.

Why: Sometimes a connection can only be made over UDP, but there is a small amount of packet loss you want to correct for. This makes that possible. If you're not stuck using UDP, there are likely better solutions than this one.

Input SDP from file / Push output SDP to file

What: RTSP, WebRTC and SIP (VoIP) all use RTP-based transport for their media data. Some users want to bypass those signalling protocols and instead work with raw RTP over the network. The SDP input and output allows you to preconfigure the "handshake" normally done over the signalling protocol, so you can directly send or receive media without needing to do that handshake.

Why: This is especially useful when broadcasting multicast over, say, a company intranet - since the "handshake" should only be done once but there may be potentially infinite receivers in the network. They can all open the SDP file to receive the data needed to connect. Until this feature became available, multicast over the local network was not possible using RTP and only using raw UDP (in an MPEG2-TS transport). The support for SDP is not only multicast usecases, though - that is just the most noteworthy one.

AAC file input support

What: The AAC codec is already supported in Mist, but separate .aac files are not (they need to be inside some other container, instead). This update adds support for plain .aac files as a VoD input format.

Why: Because this is the most efficient/best format to store separate AAC files, and it wasn't supported yet. In addition, reading AAC files is needed to be able to replace AAC audio tracks with custom audio when pushing RTMP out, a feature that is also part of this release.

Support for overriding AAC audio in RTMP push output

What: If a stream contains AAC audio, this feature lets you replace the audio in a stream with a looped version of an external AAC audio file. The original audio is not transmitted.

Why: This was built to support the use case that the stream may contain audio material that causes e.g. Youtube or Twitch to block the stream (e.g. copyrighted songs etc), and you want to replace the audio track with a placeholder for sending a "lite" version of the stream to these platforms.

Split config support

What: The ability to split up the config file by section, so that each section can be loaded from a different file on the system.

Why: This makes it easier to set up a generic config that can be re-used and synced across multiple installs, while keeping some of the config stored separately for each install that won't be overwritten. It's also possible to make part of the config read-only and other parts read-write by setting file permissions of their respective files accordingly.

RIST support

What: RIST is a semi-reliable transport, similar to Haivision SRT, Zixi and BRT. This means that it makes a connection that cannot be controlled (e.g. over the public internet instead of private networks) fairly predictable in behaviour. This adds support for RIST push output and RIST pull input, both in both caller and callee modes. Unfortunately our build system does not yet support building the RIST library itself, so this feature is currently only available if you compile MistServer yourself.

Why: RIST is rapidly gaining popularity, and there is still no clear "winner" in the reliable transport protocols segment today. Mist aspires to connect anything to anything, so we try to support as many relevant protocols as possible.

HEVC/H265 support in browsers

What: Most browsers don't support decoding of H265/HEVC video streams through any method (with or without hardware acceleration). A notable exception is recent versions of iOS, but for the rest mobile and desktop browsers alike generally won't support this codec. It is, however, possible to transpile libde265 (a software-only decoding library for H265/HEVC) to javascript and "force" software-based decoding of the codec in-browser anyway. This adds support for playing back H265/HEVC feeds through this method.

Why: H265/HEVC has a much better compression ratio than H264/AVC does, which can be critical in ultra low bandwidth situations. Unfortunately, software decoding of H265/HEVC is fairly slow - so this works best for low framerate or low resolution streams. The player does automatically skip frames to stay roughly at real time speed if/as needed, though - so even full resolution playback should be acceptable quality. There is another downside: the player currently only supports video, no audio.
]]></description>
  <link>https://news.mistserver.org/news/110/3.1+stable+release</link>
  <guid>https://news.mistserver.org/news/110/3.1+stable+release</guid>
  <pubDate>Fri, 24 Jun 2022 22:47:54 +0100</pubDate>
</item>
<item>
  <title>Release notes summary 3.0</title>
  <description><![CDATA[Hey everyone,

After years of work on what would’ve been an “easy” 3 month project that went slightly out of scope we’re proud to announce the release of MistServer 3.0!

So, why 3.0? Basically we have redone the entire code base of MistServer making it impossible to do a rolling update from 2.X versions. This means upgrading will require dropping all current connections, as it needs to happen while MistServer is turned off. Your configuration, usage of MistServer and integration with other applications through triggers and the API will all stay the same. And of course once rebooted MistServer should behave just as you were used to, but with much lower latency.

All in all you should see improved performance and newly added features in the same old trusted interface. We have plans to upgrade the interface to something more modern as well, but we did not want to delay the 3.0 release any longer either. Perhaps more importantly we have made the decision to make all of the MistServer project fully open source without any restrictions! If you want to read more on why we did this, you can read more about it on our blog

Do note: the 3.0 release is only available for Linux-based systems at the moment. We will follow up with a 3.1 release soon that will also update the Windows and MacOS versions.
Do expect our next few updates to come faster!

Release highlights:


Everything, including previously Pro-only features, is now Public Domain software.
New protocols:


WebRTC (input and output)
WS/MP4 (output)
SRT (native support; input and output)
CMAF push (output)
LLHLS (output)

New live stream processing system feature, with:


Livepeer process
ffmpeg integration
generic MKV-based process for easy integration with practically any other software

Core buffer rewrite


Massive latency reduction (previously 1-2 sec, now 2-3 frames end-to-end)

A very long list of bug fixes and other improvements. See the full changelog for details!

]]></description>
  <link>https://news.mistserver.org/news/108/Release+notes+summary+3.0</link>
  <guid>https://news.mistserver.org/news/108/Release+notes+summary+3.0</guid>
  <pubDate>Mon, 14 Feb 2022 16:00:14 +0100</pubDate>
</item>
<item>
  <title>Stable release 2.18 of MistServer is now available!</title>
  <description><![CDATA[Hello everyone! Stable release 2.18 of MistServer is now available! The full changelog is available here and downloads are here. Our Pro edition customers with active licenses will receive a new build notification in their e-mail automatically.

It's been an especially long time as we've done a lot of preparation for a rather large overhaul of the MistServer core to boost performance and make our in/outputs a lot more flexible. Another smaller update containing smaller changes will follow soon™.

Here are some highlights:

Features:


Pro: Default stream and fallback options for any stream unable to load. Handy for "technical difficulties" or placeholders for intermittently live streams.
Pro: Advanced track selectors, allowing you to select a track based on additional specifications. (See updated manual for details.)
Pro: Playlist support (.pls files), for scheduling VoD content as pretend-live streams.
Added stream start time option to the .html output. The ?t=X GET parameter will allow you to start playback at any point, where X is time in seconds.
Added support for multiple public addresses, added support for "X-Mst-Path" HTTP header to override public address directly from HTTP proxies for improved reliability.


Improvements:


Pro: HLS live input is now multithreaded and supports decoding clearkey encryption.
Optimized speed of the HTTPS protocol and HTTP parsing code.
Meta player has improved UX for mobile users.
HTTP/RTSP headers are now case insensitive.


Bugfixes:


Pro: Fixed a TS input deadlock for unknown track types.
Pro: Fixed "always on" streams to no longer be stuck in that state.
Pro: Fixed RTMP_PUSH_REWRITE and PUSH_OUT_START triggers not ignoring responses in non-blocking mode
Certbot now correctly handles certificate renewals
Added a workaround for issue 2865, introduced in OBS version 25
Metaplayer fixed duplicate player problems, improved videojs/dashjs stability and several small improvements

]]></description>
  <link>https://news.mistserver.org/news/103/Stable+release+2.18+of+MistServer+is+now+available%21</link>
  <guid>https://news.mistserver.org/news/103/Stable+release+2.18+of+MistServer+is+now+available%21</guid>
  <pubDate>Wed, 07 Oct 2020 13:00:24 +0100</pubDate>
</item>
<item>
  <title>Stable release 2.17 now live!</title>
  <description><![CDATA[Hello everyone! Stable release 2.17 of MistServer is now available!
The full change log is available here and downloads are here.
Our Pro-edition customers with active licenses will receive a new build notification in their e-mail automatically.

Here are some highlights:


Added RTMPS push support for pushing to platforms that require it such as Facebook Live.
Added Adobe style authentication for RTMP(S)
Added an easier way to use Haivision SRT by allowing "srt://" as a source or push target
Added pushdelay parameter to all push outputs, allowing for a configurable delay of live streams
Certbot integration is now available for easier HTTPS setup (We'll highlight how to do this in an upcoming blog post)
Added HTTPS support in the Open Source version of MistServer
MP4 files are now supported in the Open Source versions

]]></description>
  <link>https://news.mistserver.org/news/99/Stable+release+2.17+now+live%21</link>
  <guid>https://news.mistserver.org/news/99/Stable+release+2.17+now+live%21</guid>
  <pubDate>Tue, 10 Sep 2019 13:38:08 +0100</pubDate>
</item>
<item>
  <title>Stable release 2.15 now available!</title>
  <description><![CDATA[Hello everyone! Stable release 2.15 of MistServer is now available!
The full change log is available here and downloads are here.
Our Pro-edition customers with active licenses will receive a new build notification in their e-mail automatically.

Here are some highlights:


Introducing our new and improved meta-player! Now with a redesigned user-friendlier interface, proper JS API and skinning support (both documented at length in the updated manual), and a slew of bug fixes.
RTP core code was rewritten, improving compatibility with IP cameras and preparing for an upcoming new protocol we're adding soon.
Many other small fixes/improvements/etc. See changelog for full list!

]]></description>
  <link>https://news.mistserver.org/news/96/Stable+release+2.15+now+available%21</link>
  <guid>https://news.mistserver.org/news/96/Stable+release+2.15+now+available%21</guid>
  <pubDate>Fri, 25 Jan 2019 23:56:32 +0100</pubDate>
</item>
<item>
  <title>Bugfix release 2.14.2 now available!</title>
  <description><![CDATA[Hello everyone! Bugfix release 2.14.2 of MistServer is now available!
The full change log is available here and downloads are here.
Our Pro-edition customers with active licenses will receive a new build notification in their e-mail automatically.

Here are some highlights:


Lock-free server configuration implementation, fixing several recurring CPU usage and locking issues that happened in the earlier 2.14 releases.
HTTP handler no longer uses unreliable peek() system call, also solving a potential trickle attack vulnerability.
Logging is more human-friendly
Statistics and viewer counter fixes
ARMv7 builds compile correctly again (sorry for breaking these!)
Many other small fixes/improvements/etc. See changelog for full list!

]]></description>
  <link>https://news.mistserver.org/news/93/Bugfix+release+2.14.2+now+available%21</link>
  <guid>https://news.mistserver.org/news/93/Bugfix+release+2.14.2+now+available%21</guid>
  <pubDate>Fri, 30 Nov 2018 23:55:22 +0100</pubDate>
</item>
</channel></rss>