Customer Conversations: Wistia monitors their new adaptive bitrate algorithm

Customer Conversations: Wistia monitors their new adaptive bitrate algorithm

06/02/2017June 2, 2017(about 5 years ago)
7 min read
06/02/2017June 2, 2017(about 5 years ago)
7 min read

Customer Conversations: Wistia monitors their new adaptive bitrate algorithm

Wistia is a video hosting and analytics company that was founded in April 2006. It sports a quick to load and highly customizable, white label player.

The Wistia player is optimized to provide the best viewer experience with support for high resolution videos and adaptive streaming with HLS, prioritizing viewer engagement and delivering the best quality for any environment and connection speed


Max Schnur is the Principal Software Engineer at Wistia, and has been working there for the past 6 years.

“Over that time I've worked on a lot of things, but probably more than anyone else I've focused on our player and video delivery.” Max told me.

I asked Max to share his experience using Mux and how Wistia uses it for A/B testing and validating new algorithms, such as their latest improvements to their adaptive bit-rate.

Eliot Miller: Hi Max, thanks for taking the time to talk with me today. For those who don’t know, what does Wistia do with video?

Max Schnur: Wistia customers upload their videos to us and we give them embed codes or links to their public pages where they can share it on their sites.

They use us as an easy way to get their video in places and get good stats on it with a professional white label type player.

Eliot Miller: Is there anything that you have recently built for Wistia’s video service?

Max Schnur: I wrote a new adaptive bit-rate algorithm for our HLS implementation in our player. We started out using HLS.js as our HLS delivery system in our player and it was kind of like a big "To-Do" to get all our existing video into HLS format.

After we got it hooked up with Mux we were able to see what was happening!

We weren't sure if it was actually going to be better than progressive. So eventually we published it with confidence that it would be better, but we didn't have really good stats to see if it was. So after we got it hooked up with Mux we were able to see what was happening! At that point I was like: "Oh...we can be doing way better with delivery".

Specifically for the HLS assets, I identified a problem with the way we were producing derivatives which was using highly variable bit-rates with the basic HLS algorithm. It is kind of conservative in how it determines whether or not it can use a file based on the minimum bitrate.

So I wrote an algorithm that was called "Cautiously-Optimistic-HLS". It would choose either the minimum or average bitrate based on how far ahead it had buffered already.

I did a lot of different iterations on that and also tiny bug fixes, and eventually we came out with something that made a lot of sense for video quality. I think we ended up halving our bandwidth.

Eliot Miller: So is this an issue you're done and dusted with, or is that still something you need to develop and improve?

Max Schnur: It's definitely something that can be developed on. It's also kind of a moving target, because we've done HLS now, but fragmented MP4s for HLS are probably going to be important soon.

We might want to do DASH. So there's all these algorithms and different things that we want to try out in different formats, moving to VP9 or something like that.

Eliot Miller Can you tell me generally how data is used at Wistia?

Max Schnur: Oh boy. Yeah we use it in tons of places.

Our customers use data, that's one of our selling points. When people watch videos at Wistia we're constantly pinging back information about how much they've watched, the areas that they rewatched, that kind of stuff.

But on top of that we also ping back a lot of data about the page and other helpful things that we might want to know, like debugging information.

Beyond that, we have another tool in our player that is called "Report a Problem". If you right-click our problem and hit report a problem you can say "Hey, playback isn't working". In the background we'll attach an actual log of what happened for that session.

Eliot Miller: Is that data you are feeding into Mux?

Max Schnur: We're not feeding that into Mux, but it's all tagged with the same viewing session IDs so that we can link it to Mux to look at the full picture.

The support team in particular, if they're researching delivery problems they'll switch between "Report A problem" and Mux. If they want to get a good picture of when this person seeked or if there was an error, a lot of times they can look that up in Mux which is useful.

If I'm pushing a new algorithm I want to verify that it's not making things worse

I tend to use it for more general trends. So if I'm pushing a new algorithm I want to verify that it's not making things worse and hopefully verify that it's making things better. For Mux we can either do that by just watching it and seeing if [the graphs] go up and down or setting up A/B tests. I've done both.

Eliot Miller: Can you tell me what are some of your top priorities for Wistia’s video service in the next 6-12 months?

Max Schnur: Quality is always a top priority. I think we've taken a lot of strides there, but ideally if we were to move to newer formats like h.265 or VP9 we could pack more quality into fewer bits.

Besides that there are weird things going on with CDNs and just the internet in general. One of the things we'd really like to do is have sane fallbacks to make sure that people can always get the video even if there is something going on in their region, or if there are problems with a specific video from a certain server. Building in more fallbacks I think is going to end up being a priority for us.

Mux will help us validate that our algorithms are actually working. I tried something like this already and my first idea I validated in Mux, it didn't work. It was good to know that.

Eliot Miller: Finally, are there any new features you would like to see in Mux?

Max Schnur: I don't have my big list with me right now [laughs]!

I think it would be really cool if we could use an embed code or something from Mux to show to our individual customers, like how a certain video or their account is playing. Since we display a lot of stats to our customers, but we don't show a lot of playback rate stats, I think that could be useful.

Another one would be the ability to - this is a tough one but - normalise aggregate stats by video. Wistia has, millions and millions of videos, but at any given time there is only a couple thousand really really popular ones.

So those popular ones have an outsized impact on our aggregate stats. It would be nice if we could see what our average customers are seeing instead.

Eliot Miller: Well thank you so much for taking the time to chat with me today Max, I will be sure to pass on your feedback to the team!


If you’d like to try Mux for yourself, you can sign up for our free trial today.

Create an account

No credit card to start. $20 in free credits when you're ready.

Get started free

Subscribe to the Mux newsletter