News
[News] Exhibiting at IBC2025
Hey everyone!
Like every year, the MistServer team will be exhibiting at IBC2025!
If you're planning on attending, be sure to drop by and say hi.
We’ll be happy to share our latest updates, upcoming plans or even steal a few great ideas from you if you've got them.
Note: IBC will charge for tickets unless you use a customer code.
Feel free to use ours: IBC6310
. You’ll need this near the end of the signup process.
Using the code will make entry free, but also forward the information you enter during signup to us. We will send you a single "thank you" email and then throw that data away.
Here are just a few of the things we’ll be showcasing:
Presentation: Building your own media pipeline powered by Open Source software
Speaker: Jaron Viëtor
Day: Sunday 14 Sep
Time: 12:45-13:00
Location: Hall 5 (5.A28)
Modular streaming platform powered by MistServer
Most streaming platforms lock you into their ecosystem. We do things differently and give you the keys.
MistServer is fully open source, and not only can you self-host your own platform, we actually recommend it.
Run and own everything yourself, yet be able to count on our team for support, advice and custom development.
Broadcast quality & encoding
MistServer has always focused on stream repackaging and internet distribution,
resulting in a robust server that supports nearly every streaming protocol.
However, one area we've been limited in is raw video signals and encoding.
That’s about to change. This year, we're introducing support for raw video signals such as SDI, NDI and (USB) webcams, along with encoding and decoding capabilities.
This means you can now build a complete studio-to-studio or studio-to-server contribution setup using just MistServer.
Updates & improvements
One of our most common questions: What’s new? Fortunately, our changelog has the details, but feel free to ask us in person anyway. We’re always happy to talk shop!
[Release] Stable release 3.8 out now!
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.
[Release] Stable release 3.7 out now!
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©=0&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.
[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.
[Release] Bugfix release 3.5.1
Hey Everyone, we've got some bugfixes and added features in this release. Most notable getting Firefox fast again & 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 & 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!