Webinars: Zero Latency + Perfect Quality + Scale (in the browser)

Jack Thorogood
Meetvio
Published in
3 min readJan 24, 2020

That, Zero Latency + Perfect Quality + Scale, is our goal with Meetvio product development.

This week has been launch + one week, and in too many viewer experiences we were a little off in terms of that holy trinity.

I’ve worked in video tech for about 15 years, and webinars for 5. With the launch of the new Meetvio platform we are aiming to have a best of breed balance (quality, speed) with our stream quality. This first week missed the mark a little.

In testing, the quality was generally fine. Indeed, with the webinar platform I’d built before too, the quality was generally great. Post-launch however, and with more ‘real’ and large audiences, the quality degraded for some users*.

* We run two outgoing streams, one for modern browsers, and one for older browsers and mobile which has more latency but did not suffer quality degradation.

Our stream to modern browsers has often been too poor, particularly at more heavily attended events.

TL;DR: The Technical Explanation

Our streaming goal is to deliver a great quality stream with zero latency to an audience of potentially hundreds or thousands.

Any combination of those two is pretty easy. Great stream quality, to thousands? No bother. Zero latency + perfect quality to 5 people? A piece of cake. Great quality to hundreds with zero latency? Much harder. But we’d done it before, and with Meetvio in testing, no problems.

In testing, we use bots to simulate hundreds or thousands of users. By their nature, these bots are generally on cloud servers, all with excellent internet connections.

With a real audience, the viewers are around the world on a variety of connections and with all sorts of different devices.

We use two types of streaming technology: A WebRTC solution (the RT for ‘Real Time’, i.e. zero latency) and HLS, for the higher latency stream^ for older devices.

^ Coincidence! HLS doesn’t actually stand for higher latency stream, but HTTP Live Streaming

WebRTC is amazing technology, but wasn’t initially designed for mass-audiences. With recent updates in browser technologies, the solution we use had been focussing on overall delivery to all viewers, rather than the best quality delivery for each individual user.

This has meant that when a ‘real’ audience is viewing, and there are a number of users with really poor connections, our media servers are trying to support those users with a lower quality video but that, in effect, is delivering a lower quality stream to all.

This wasn’t something we saw in testing as all the ‘viewers’ (bots) had great connections. It also wasn’t something we saw with previous webinar experiences as the technology and browsers have changed a little over the last year in terms of how they are handling such scenarios.

The Solution(s)

We’ve been working on this issue since it first became apparent a few days ago and are executing a multipoint solution to this problem of streaming quality degradation.

Firstly, in our fix of Friday 24th January, we’ve worked to overcome some of the system defaulting to ‘streams for all’ where the quality is dictated by the lower stream quality of the viewers with the worst quality connections. This has made a solid difference, forcing a better quality stream.

We’ve also got a further fix coming next week (around 28th) which will send those on the poorest quality connections to the HLS stream (the one we use for older browsers and some mobiles).

HLS is great as it adds more compression, and can therefore deliver a better performance at lower bandwidth but at the expense of latency. The HLS stream is normally around 7 seconds latency (the time between the presenter presenting, and the viewers seeing her). The WebRTC based stream is around 0.5 seconds.

Long-story-short, this two-pronged approach means that we can offer almost zero latency + a high quality stream at scale, to all but those on the most poor connections. For those few users with bad internet connections, we can also offer a great quality stream, but with a ~7 second latency as the trade off. By giving those on poorer connections an alternative option, it’ll mean we can improve further still the quality of the WebRTC based stream.

If you’d like to know more about Meetvio, or have questions for our product development team, please feel free to email support@meetvio.com at any time.

--

--