News

18 Apr 2025

[Release] Stable release 3.6 out now

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 & 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 & 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.