DDVTech Updates MistServer, Claims Load Balancing Lead
DDVTech arrives at IBC with a raft of updates to the open source MistServer including Prometheus instrumentation, triggers, and a "meta-player."
The Netherlands-based company, which also markets itself as MistServer, comes armed with fresh research analyzing its load balancing technique and live streaming latency.
The company has published a paper (also linked from http://mistserver.org/documentation#Research), comparing its algorithm with that of competitor load balancing techniques in cooperation with the University of Leiden.
To paraphrase the results, DDVTech's algorithm is "significantly better" in all test load simulations, "providing a less crash-prone method to balance overload and generally resulting in smoother and more predictable distribution of load over servers."
It has also run comparative tests of the latency different protocols produce when trying to optimize them for speed. DDVTech finds quite a bit of difference in the original streaming protocols and the "newer" segmented protocols with the originals tending to have latencies around 3-10 seconds while segmented protocols like HLS/DASH lag up to 40 seconds behind. The tests measured the time from live ingest point to various player devices.
It is also in the process of running performance tests comparing MistServer with other media servers in resources used and amount of streams served.
Jaron Vietor, CTO and co-founder, discussed the enhanced version of MistServer, beginning with the triggers. This is described as a way to alter the behaviour of the system.
"It basically allows you to call up an executable or URL, feed it information from the server, and it then responds with the action to be taken," he says. "This allows users to build authentication systems and more detailed monitoring, but also on-the-fly creation of both VOD and live streams plus the recording or pushing out of streams when wanted."
Another new feature is support for RTMP push to other targets from all streams, both VOD and live. DDVTech has combined this with DTSC pull input. DTSC is the firm's internal format that can hold any codec and allows efficient translation to various output protocols.
"DTSC pull input is the most latency-free method to sync live streams over multiple server instances on-demand," explains Vietor. "In other words, no traffic is used if a server doesn't need a specific stream, as opposed to push, where a central server always sends a stream to another instance, regardless of viewer count."
This feature further combines with DDVTech's new load balancing solution, which tries to cluster viewers together on servers in such a way that the amount of different streams per server is minimised.
"This can provide great savings on inter-server bandwidth as well as CPU and RAM usage on the instances themselves," says Vietor.
Prometheus instrumentation is an open source monitoring software package, which allows users to receive a live view of all kinds of server health metrics on a global level as well as per-stream. For anyone preferring a different type of monitoring tool, DDVTech also has a JSON output of the same data that can generically be parsed by anything.
The developer says it has improved its handling of various audio languages and subtitles, added RTSP input support, and stabilised TS inputs and outputs to be more widely compatible.
"Additionally, we've created a 'meta-player' which isn't really a player itself, but more of a wrapper around various players," says Vietor. "It will auto-detect which players will work on an end-consumer device, and decide which will give the best results for a given stream+device combination. This includes players such as basic flash, HTML5, but also JWPlayer, Theoplayer, and the DASH-IF reference player. All of them share a single unified look and a single code will do everything automatically.
"The look can be customised with normal CSS, allowing anyone to override the looks to match their website and making integration with any web platform very easy. It will even provide a fallback if scripting is disabled in the device's browser and still function using the device's native players. As far as we know, this is the only player in the market with this wide range of compatibility. Basically, as long as a device is capable of playing video, our player will make it do so."
The base version of Mist is open source with roughly two thousand users. Among these are hobby users, universities, houses of worship.
A pro version is in use at several large customers that run their entire web streaming platforms on it, DDVTech says. It also has several partners that sell devices with Mist pre-installed that are usually white-labelled.
"The ideal application is an integration into a larger system, where it provides all the transmuxing and protocol handling, while other systems do the control through our API," says Vietor. "We've seen successful use of Mist inside encoder appliances, generic media server appliances, as part of streaming web platforms, and in media storage and playback systems, and in broadcast to OTT conversion systems."
Vietor would like to see Mist installed on camera firmware and inside CDNs. "Mist is the only technology small enough to fit into cameras like GoPros," he says. "While GoPro already offers the ability to view video over Wi-Fi you cannot stream out of the camera to streaming server but you can with Mist."
Attempts to get camera developers and CDNs to consider Mist have been frustrated. "CDNs have to cache files separately for different delivery protocols like HLS, HSS or DASH. We can create a single cache for all protocols – with WebRTC coming in future—which saves CDNs from having to duplicate the load. CDNs are among the most reluctant to change their existing set-ups, though."
DDVTech is an offshoot of an old project from 2009 in which Vietor and colleagues attempted to live stream gamers.
"We wanted to make a gaming-focused competitor to Justin.tv (which later became Twitch) but the project failed for several reasons, some of them social/community reasons, but also because we had trouble with the streaming technologies we were using at the time," explains Vietor.
"While I was complaining about the streaming tech, one of the project leads asked me 'Well, could you do any better yourself?' A few months later, the first version of MistServer was born."
Over time, MistServer became the main business and Vietor set up DDVTech around it. "Since then, we've kept a serious focus on R&D and we only do minimal marketing, allowing us to keep up a rapid development pace," he adds.
Vietor says the main thing that makes DDVTech different is that it is developer-friendly. "We don't try to produce a full solution that takes care of everything. We know there is no practical use for something like that. You want to integrate with other systems, have more control, stuff like that. So, Mist is specifically a toolkit. It is not a single application, but a set of applications that each perform a set task. Then there's the controller which ties it all together, and provides a single point for monitoring and control.
"Everything else has a use separately, without needing the rest of the server to be running, however. We even include a set of tools that have nothing to do with the media server itself, but allow you to debug or parse media streams from any server, including competitors. They have been invaluable tools during our own development and testing."
He continues: "What also helps is that we don't distinguish between live and VOD or types of content and things like that. Streams are all handled the same internally, allowing us to generically use all features and methods on all types of stream."
MistServer open source has no options for DRM. MistServer Pro can support DRM but comes without DRM unless requested. DDVTech found it more efficient to custom build a customer’s preferred flavour of DRM into MistServer contending that "standard DRM usually just doesn't quite cut it and we like to offer you the DRM you want instead of forcing you into one." It has multiple DRM templates ready to be adapted and implemented into MistServer.
See Mistserver at IBC booth 14.K13