api.video
SearchCtrl K

Features

Developers

The benefits of measuring the video playback QoE

November 16, 2021 - Yvan Michel

All companies in the video streaming sector have the same goal-- guarantee the best watching experience with efficient cost control for ingest, transcoding, and delivery. It is not an easy task and requires a lot of considerations on the Product and Engineering sides.

Measuring the Quality of Experience (QoE) is one of the methods widely used to assist this process. In this blog post, we will go through the QoE principle and functioning by relying on common use cases and metrics.

Principle

As soon as someone uses a website or an app, stakeholders need feedback in order to learn about the strengths and weaknesses of what they've built. The measurements performed for the QoE purpose are based on this same principle and are seamless for the end-user.

The QoE consists of collecting and sending users subjective data to better understand how the product is used to make the right decisions. In this case, knowing more about how videos are consumed by viewers through a first-party player.

It helps to get more insights about questions like "What will be the effects of reducing the 1080p video bitrate on the end-user engagement?" and "Is it a good approach to preload the video on the start-screen to boost its loading time?"

NOTE: QoE data must comply with local privacy policies like GDPR or CCPA. No data that breaks these laws or disrespects user privacy shall be stored without the user's explicit consent.

Functioning

The player performs periodic measures related to the video playback but also computes metrics from its own runtime context like the FCP, its loading time, and more. It then forwards all this info to a dedicated backend for later processing and analysis.

Quality of Experience workflow

The objective is to gather enough relevant data about the "Where", the "Who" and the "How". The "Where" and the "Who" are quite important but are more "context" oriented. The "How" really refers to the QoE.

The "Where"

Locate where videos are watched to know the distribution of the audience:

  • The continentIs North America, the main continent in terms of audience?
  • The countryHow many videos are watched in France?

GeoIP Databases allow retrieving the continent and the country based on the user IP.

The "Who"

Identify the profile of devices used to watch the videos:

  • The device_typeAre CTVs representing a significant part of the audience in Asia?
  • The platform and the browser family or version → When was the latest version of macOS released? What is the part of IE11 to clean legacy code?

Even if it is not 100% trustable because it tends to be deprecated and it can be overridden, the User-Agent HTTP header exposes this info and provides, at least, good hints. There are some alternatives like UA-CH.

For a given visit, having a user_session with the number of views helps to confirm that after consecutive video playbacks, the experience remains stable and great.

The "How"

Understand the video consumption behaviours:

  • The rebuffering_timeWhy is the engagement so low in Asia?
  • The watch_timeWhat is the best moment to trigger an ad-break?
  • The abr_max_renditionIs the 720p more played when increasing the default player dimensions?
  • The playback_errorWhy are macroblocks appearing on Safari/desktop?

There are a lot of factors that can influence video playback. Rebuffering is part of them but is the consequence of underlying problems: slow delivery, low user bandwidth, etc.

A viewer who experienced a rebuffer delay that equals or exceeds 1% of the video duration played 5.02% less of the video in comparison to a similar viewer who experienced no rebuffering.

Source from Akamai

But what is rebuffering? A rebuffering describes the moment when the video playback stopped because of an insufficient amount of downloaded video bytes (buffering) without any user interactions. Seeking or switching manually to another video rendition is not considered to be rebuffering.

In other words, rebuffering is an unexpected buffering lasting N milliseconds causing the video playback to stop.

The watch_time is a duration representing the time a user has watched a video. It can be associated with the rebuffering_time to compute the rebuffering_precentage during a user_session.

ABR (Adaptive Bitrate) algorithms choose the best video renditions according to user network conditions. The abr_max_rendition describes the highest video rendition reached when ABR is enabled.

Finally, the playback_error indicates which errors have occurred during the video playback to explain sudden disruptions or degradations within the network, transmuxing, or decoding.

Conclusion

We've had a sneak peek at how QoE can be useful to drive operational decisions. Combined with the Quality of Service (QoS), this data constitutes a powerful set of valuable information to continuously ensure that video playback is optimal.

At api.video, we are committed to providing the best watching experience for all, no matter the location or the device. In another blog post, we will go through other side usages based on QoE data especially for observability to detect proactively issues and assess impact in case of outages. Stay tuned!

Resources

Yvan Michel

Yvan Michel is a Senior Engineer at api.video

Create your free account

Start building with video now