Before we try to understand about streaming protocols first let us try to understand the types of streaming.
Types of Streaming
There are mainly two types of Streaming:
In this process, client/player asks for a video file from the server and server sends the whole file to the client over HTTP, Your playback will only start when the file is downloaded.
Since the content is downloaded on your local machine, the content is not secure. Users cannot skip forward in the timeline as content is downloaded in a linear manner. There is no monitoring of the video file; it is simply being downloaded and played back.
If the network speed is slow, you will see buffering/stalled in the video. Some examples of Progressive download are Youtube, Vimeo.
Adaptive Bitrate Streaming
It is a technique used for multimedia streaming over the Internet at fluctuating bandwidth. Adaptive Bitrate streaming works by detecting a user’s bandwidth and CPU capacity and adjusts the quality of a video stream accordingly.
You will get a clear picture later when we explain it with a figure and an example.
If we see the technologies used in the past we find that most of the streaming was done on RTSP streaming protocol, but now for adaptive bitrate streaming we use HTTP-based streaming which is designed to work efficiently in the distributed HTTP networks such as Internet.
This streaming requires an encoder which encodes the raw video from a single stream to multiple bitrates. The client application or Player switches between the streams (multiple bitrate streams) as per available bandwidth and pays the stream accordingly, in result we do not see much buffering and get good experience in both high bandwidth and low bandwidth connections.
Adaptive Bitrate Streaming Protocols
Some of the popular streaming protocols nowadays are as follows:
- Apple HTTP Live Streaming
- Adobe HTTP Dynamic Streaming
- Microsoft Smooth Steaming
We will explain HTTP Live Streaming (HLS) in next post as it is widely used in the media streaming industry.