The benefits of measuring the video playback QoE
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.
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.
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.
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.
Locate where videos are watched to know the distribution of the audience:
continent→ Is North America, the main continent in terms of audience?
country→ How many videos are watched in France?
GeoIP Databases allow retrieving the
continent and the
country based on the user IP.
Identify the profile of devices used to watch the videos:
device_type→ Are CTVs representing a significant part of the audience in Asia?
browserfamily 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.
Understand the video consumption behaviours:
rebuffering_time→ Why is the engagement so low in Asia?
watch_time→ What is the best moment to trigger an ad-break?
abr_max_rendition→ Is the 720p more played when increasing the default player dimensions?
playback_error→ Why 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
In other words,
rebuffering is an unexpected buffering lasting N milliseconds causing the video playback to stop.
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
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.
playback_error indicates which errors have occurred during the video playback to explain sudden disruptions or degradations within the network, transmuxing, or decoding.
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!
Yvan Michel is a Senior Engineer at api.video