Skip to content

Releases: DDVTECH/mistserver

3.1 release

24 Jun 23:00

Choose a tag to compare

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.

3.0 stable release

14 Feb 15:09

Choose a tag to compare

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!

2.18.1

11 Jan 14:45

Choose a tag to compare

Removed forgotten debug message

2.14.2

30 Nov 23:02

Choose a tag to compare

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!

2.13

30 Nov 22:43

Choose a tag to compare

Hello everyone! Stable release 2.13 of MistServer is now available!
The full change log is available here.
Our Pro-edition customers with active licenses will receive a new build notification in their e-mail automatically.

Here are some highlights:

  • (Pro-only) Subtitle support: sideloaded srt input, HLS output, DASH output, MP4 input & output
  • (Pro-only) Significantly improved recording and scheduled pushes system
  • Most core systems now support proxy servers, HTTP Basic/Digest authentication and HTTPS
  • (Pro-only) Triggers and HLS pull input likewise support all of the above now
  • Fixes for Facebook and YouTube support
  • TS-based inputs now support timestamp rollover properly and repeatedly
  • Fixed CVE-2017-16884, discovered by hyp3rlinx / apparitionsec
  • Many other small fixes/improvements/etc. See changelog for full list!