Hey Everyone!
Stable release of MistServer 3.12 is out now! As always full changelog is available here.
Should you want our prebuild binaries, the downloads are available here.
I do think we can say to expect a 3.13 soon as well, since we have a few upcoming features that didn't quite make this patch but are nearing completion as well.
Major highlights are:
CMAF improvements
We've been experiencing a few problems with our CMAF based HLS and DASH outputs, so we've done a clean sweep and they should now be much more reliable with their low latency segments fully operational. We did notice that native HTML5 playback within Chromebased browsers seems to be somewhat unstable, this is most likely because HLS playback is technically still in development on non-Apple devices. For now we'd recommend using HLS.js or Videojs.
TLS & Proxy forwarding for the API
This is exciting for two reasons, we finally officially support the API over TLS connections if set up and every connection over the admin port is now proxy forwarded. The proxy forward allows us to set up any viewing connection from the admin panel to bypass access control, creating a truly "admin" experience.
MistServer also supports passing on the SSL keylogfile in order to debug SSL connections if you add this as a boot parameter from the start:
SSLKEYLOGFILE=/path/to/sshkeylogfile MistController -x /path/to/cert.pem -X /path/to/key.pem
Templates
Templates are a bit of an advanced feature within MistServer, but we're quite sure people will like it once they get used to it. With templates you can "save" stream configurations, stream processes and push settings, to then later apply in other cases.
This allows for saving certain encoding settings or new "defaults" for live streams and applying them easily. You can also copy over settings from one MistServer to another by copying the template and applying it once.
Push input support for progressive MPEG-TS and MKV over HTTP(s) PUT
You can now push progressive MPEG-TS or Matroska streams to MistServer over HTTP PUT.
LibSRT updates & patch
We've added a patch to LibSRT to easier see what side of the connection stopped the connection, this allows for better insight on which side of the connection closed first. This patch is optional and can be force-enabled with the following build flag: SRTSHUTDOWN=true.
We've also changed one libSRT default parameter: maxbw , by design this defaults to -1 however this is not recommended for live usage as it can mean the recovery bandwidth can increase unbounded. We've set this default to 0 instead, which means it is now limited to 25% of the input bandwidth. When calculating bandwidth used for SRT keep in mind that this bandwidth is on top of the inputbw used, so expect streams to take 100-125% of their inputbw. Of course you can manually revert to the previous default of -1 if you so choose.
LibRist support fixed
LibRist had an incompatible setting with mbedTLS as internal library, which caused issues having it be build as a subproject for MistServer. We've patched this incompatibility, so libRist should once again build out of the box without problems.
DTSC pull improvements
DTSC pull is now event-based, making it much more reactive compared to before. Additionally when combined with our load balancer it will now set the new "noinput" parameter, which causes the origin side it pulls from to never spin up a not-yet-active stream (preventing loops) as well as auto-detect when the origin changes and shut down and restart to ensure it's always pulling from the right server. This improves stream replication reliability in general and error-state recovery speed in particular.
Various other bugfixes and improvements
For the full list of improvements and bugfixes we recommend reading the changelog.