Search⌘ K
AI Features

The Reality Is More Complicated

Discover how major video platforms optimize content delivery for low latency and a high-quality experience. Analyze the three critical phases of granular video encoding, intelligent deployment via CDNs and IXPs, and adaptive bitrate streaming.

Introduction

Now that we’ve understood the design well, let’s see how YouTube can optimize storage usage and network demands while maintaining a good quality of experience (QoE)QoE is the measure of a customer’s satisfaction with the experience of a particular service. for the end user.

When talking about providing effective service to end users, the following three steps are important:

  • Encode: The raw videos uploaded to YouTube have significant storage requirements. Various encoding schemes can reduce the size of these raw video files. Apart from compression, the choice of encoding scheme will also depend on the types of end devices used to stream the video content. As multiple devices may stream the same video, we may need to encode it with different schemes, splitting a single raw video file into multiple files, each encoded differently. This strategy will result in a good user-perceived experience for two reasons: users will save bandwidth because the video file will be encoded and compressed to a limit, and the resulting file will be appropriate for the client, enabling smooth playback.

  • Deploy: For low latency, content must be intelligently deployed so that it is closer to a large number of end users. Not only will this reduce latency, but it will also put less strain on networks and YouTube’s core servers.

  • Deliver: Delivering to the client requires knowledge about the client or the device used for playing the video. This knowledge will help adapt to client and network conditions. Therefore, we’ll enable ourselves to serve content efficiently.

Let’s understand each phase in detail now.

Encode

Until now, we’ve considered encoding a single video using different encoding schemes. However, if we encode videos per-shot, we’ll divide the video into smaller time frames and encode them individually. We can divide videos into shorter time frames and refer to them as segments. Each segment will be encoded using multiple schemes, producing multiple files, or chunks. The choice of encoding scheme for a segment will be based on the details within the segment to get optimized quality with lesser storage requirements. Eventually, each shot will be encoded into multiple chunk sizes depending on the segment’s content and the encoding scheme used. As we divide the raw video into segments, we’ll see its advantages during the deployment and delivery phase.

Let’s ...