Video is hard because software is difficult at scale, and video reaches scale much more quickly than other software. When facing hard problems, it's helpful to have a framework that turns hard problems into easier ones. Here is the framework we use at Mux when we work with companies who want to improve their video: four simple steps to improving video performance.
If you don't have a clear idea of why you’re doing something, it's hard to make things better.
Fortunately, everyone who is responsible for streaming video technology has the same basic goals. Chances are, your two main objectives are to increase engagement and control costs.
In simple terms, you can increase engagement through better Quality of Experience and wider availability (faster time-to-publish, broad device compatibility, and high scale/uptime), and you can control costs by choosing cost-effective technologies (COGS) and minimizing development time (R&D).
(Obviously, since we're focused on the technology side of video here, we're not going to talk about increasing engagement via better content. That is important too, but this framework is focused on the engineering and operations side of video.)
Once you have a goal, you need to measure where you are today, and track progress as you go. This is just as important as setting the goal - imagine planning the most efficient way to travel to New York without knowing where you're starting from.
On the technical side of video, the most important thing to measure is Quality of Experience (QoE). Studies show that users watch measurably more video when the QoE is high, which means that improvements to QoE increase engagement. On the cost side, measuring QoE is also important, since it gives you an objective standard by which to measure your vendors, and helps your technical teams scale and operate more efficiently.
Mux Data defines QoE as having four components:
- Playback success (not failure)
- Startup time (fast, not slow)
- Smoothness (vs. rebuffering)
- Video quality (high, not low)
Measure where you are today, set tactical goals that match your overall objectives (reduce rebuffering on Android), and proceed to Step 3.
Once you have a goal, and you've instrumented QoE measurement, it's time to make things better. Here are five of the most important things that Mux customers have done to optimize their performance. Optimization is too big of a topic for a single article, so consider this a starting point.
Find bugs and regressions. Software is hard, and your video platform probably has bugs right now. Mux Data customers usually spend their first few months digging through their QoE data, and typically find relatively simple problems they can fix. Within Mux Data, the Insights feature is a great starting point. Insights list the attributes of video views that most correlate with poor performance, across every filter in the Mux system (browser, operating system, country, ISP, CDN, format, and more). After this initial optimization pass, engineering should continue to check performance over time to watch for regressions and to ensure that things get better.
A/B test. A/B testing is an extremely powerful way to drive performance. A test can be as simple as comparing two technologies side-by-side - if you're in the market for a new player, CDN, or encoder, try a few options side-by-side and use QoE analytics to select the one that performs the best. If you're deploying a major new software release, roll it out to 10% of your traffic first to compare performance. If you have a hypothesis about how to improve performance - maybe a different segment size, or a different ABR ladder - test it to see what it does to performance.
Improve delivery. Some CDNs are better than others, so it's worth comparing CDN performance to choose the one that performs the best for you. Beyond that, you might want to use multiple CDNs for different purposes, e.g. one for Europe and another for Asia. Finally, the most advanced approach to delivery is to use multiple CDNs side-by-side, switching in real-time based on performance. The QoE data from Mux Data can be fed into Cedexis, for instance, in order to drive better real-time CDN decisioning.
Improve ABR ladders. Per-title encoding (sometimes called “content-aware encoding”) is a major step forward for video encoding, and everyone should use it. Done right, per-title encoding has only benefits and no drawbacks. The principle behind per-title encoding is simple: the bitrates and resolutions that are right for one video are wrong for another. So if you're using a static bitrate ladder, like the Apple recommendation, you're losing about 20%-30% performance vs. having a unique adaptive bitrate (ABR) ladder for each video. Mux Video does per-title encoding using machine learning, rather than using hundreds of hours of test encoding, meaning it's fast and affordable.
Improve time-to-publish. The first four optimizations have focused on increasing engagement through better QoE. The last will focus on increasing engagement through higher availability. If your content is time-sensitive - breaking news, sports, user-uploaded content, and the like - then the faster it is available, the more it will be watched. Mux Video makes publishing almost instant through just-in-time transcoding. Rather than waiting minutes or hours for video to transcode before it can be watched, Mux Video transcodes on the fly, while the first users are watching video. This means that a 5 minute video can be watched in just a few seconds, and a 2 hour movie is generally available in about 2 minutes.
Software doesn’t stand still, and video is no exception. Standards change, devices change, user needs change, and costs change. If you last invested in technology in 2016, it's already far behind.
By following this process once, you can make enormous improvements to your video platform. But if you can develop a culture of continuous improvement, you'll truly stand out.
Set goals, measure, optimize, repeat.
If you'd like to learn more about how Mux can help with each of these steps, get in touch!