Video Essentials

The Basics of Adaptive Streaming

Adaptive streaming means producing multiple files of different sizes for each video, then letting the user switch to the stream that plays best at any time. It guarantees the viewers will get the highest quality possible without buffering.

To teach the essentials of adaptive streaming, online video expert Jan Ozer led a class on how to encode video for adaptive streaming at the recent Streaming Media Europe conference in London. Here’s how Ozer introduced the basic ideas:

“When you produce for adaptive streaming, you’re producing multiple files that change according to changing buffer conditions in the player, and also changing CPU conditions. So, the player monitors the buffer and says, ‘Oops, the buffer is getting too low. I’m going to switch to a smaller stream so I don’t run out of video to play.’ Or, if CPU-utilization gets too high, it’ll say, ‘We need to switch to a lower stream that’s easier to decode,'” said Ozer.

“Now, there’s two basic types of systems. There are server-based systems which, again, are RTMP-based Flash, and in those types of systems the server’s in charge of sending out the stream as requested by the player. In HTTP-based systems, which includes HTTP-based Flash, HLS from Apple, and Microsoft’s Smooth Streaming, the player is in charge of retrieving different streams as required according to the buffer for the CPU utilization that I just referred to.

“If you’re producing for RTMP Flash, you produce just a standard MP4 file. There is no chunking. I’ll talk about what ‘chunking’ is in a second. And again, the server is in charge of sending a different stream to the player, once the player decides that it needs a stream,” continued Ozer.

To learn much more about adaptive streaming, watch the full video below.