The streaming of media often occupies a large part of a network’s available capacity, especially if the media is video and the network is the Internet – where video streaming is growing fast. The available data speed for users on the Internet varies all the time but video and audio are constant flows, with the video requiring substantial bandwidth to deliver good pictures. Relying on a constant bit rate may well run out of bandwidth, then the video freezes while waiting for the next frames – a process known as buffering.
A way around this is to vary the bit rate according to the available capacity of the network connection. This is adaptive bit-rate streaming. There are several versions in use. Generally these involve the sender system detecting the receiver’s available bit rate and CPU power, and then adjusting the sending bit rate accordingly by varying the amount of compression applied to the media. In practice this requires the sender’s coder simultaneously creating a set of streams, typically three, each with a different bit rate. These are made available as a series of files containing short sections of video, typically between 2 and 10 seconds. This way those with a fast connection see good quality video, and those with a slow one hopefully should still see satisfactory results. In practice, streaming starts with sending a manifest of the files, and then low bit-rate video files. Then, if the receiver sees there is room for a better quality level, it will ask for it. If bandwidth is getting too tight, it will switch down.
See also: Buffering, HTTP Live Streaming, HTTP Smooth Streaming, MPEG-DASH