21 Dec 2023

[Release] MistServer 3.3 stable release

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.