Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Adaptive Streaming and DASH

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Adaptive streaming is a technique used to deliver multimedia content, such as video or audio, over the internet. The content is divided into small chunks, called segments, and each segment is encoded at multiple bitrates. The client, such as a web browser or mobile app, then selects the appropriate bitrate for the current network conditions and device capabilities. This allows the client to adapt to changes in network conditions, such as a fluctuation in bandwidth, and provide the best possible quality without buffering or interruptions.

There are several adaptive streaming protocols in use today, including HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH). These protocols use similar techniques but have different implementations and features.

One of the main benefits of adaptive streaming is that it allows the client to adjust the quality of the video stream based on the current network conditions. This helps ensure that the user experiences the best possible quality, even if the network conditions change. Additionally, adaptive streaming can improve the overall user experience by reducing buffering and interruptions.

Overall, Adaptive streaming is a way to ensure that video content is delivered smoothly, with minimal interruption or buffering, by adapting the bitrate of the video stream to the client’s network conditions and device capabilities in real time.

How To Use Adaptive Streaming?

Using adaptive streaming involves a few steps:

  • Encoding the multimedia content: The first step is to encode the original multimedia content, such as a video or audio file, into multiple versions at different bitrates. This creates a set of segments that can be played at different quality levels.
  • Creating a playlist or manifest file: The next step is to create a playlist or manifest file that lists all the segments and their corresponding bitrates. The playlist or manifest file is used by the client to find and access the segments.
  • Setting up a streaming server: The segments and the playlist or manifest file need to be hosted on a streaming server, such as an HTTP server or a cloud-based service. The streaming server is responsible for delivering the segments to the client.
  • Implementing adaptive streaming on the client: The final step is to implement adaptive streaming on the client side. This typically involves using a media players library, such as the HLS.js library for HLS or the dash.js library for DASH, to handle the playback of the segments and the adaptive bitrate switching.

Using the library API and pass the playlist or manifest file to the media player and then start the playback.

It’s worth noting that using adaptive streaming requires some setup and development work, but several cloud-based services and tools, such as Amazon Web Services (AWS) Elemental and Wowza Streaming Cloud, provide easy-to-use interfaces and APIs that can help simplify the process.

To use adaptive streaming you need to Encode the multimedia content, create a playlist or manifest file, set up a streaming server, and implement adaptive streaming on the client side.

Working:

Adaptive streaming works by dividing the multimedia content, such as a video or audio file, into small segments. Each segment is then encoded at multiple bitrates, creating a set of versions of the same segment at different quality levels. The client, such as a web browser or mobile app, selects the appropriate segment and bitrate based on the current network conditions and device capabilities.

When the client starts playing the video, it begins by requesting and playing the segment encoded at the lowest bitrate. As the client receives more information about the current network conditions and device capabilities, it can switch to a higher bitrate version of the segment if available.

The client uses a technique called “adaptive bitrate switching” to decide when to switch to a higher or lower bitrate version of the segment. This decision is made based on several factors, including the current network conditions, the device’s processing capabilities, and the buffer status.

For example, if the client detects that the network conditions have improved, it may switch to a higher bitrate version of the segment to improve the video quality. On the other hand, if the client detects that the network conditions have deteriorated, it may switch to a lower bitrate version of the segment to avoid buffering.

Adaptive streaming works by dividing the multimedia content into small segments and encoding them at multiple bitrates, the client then selects the appropriate segment and bitrate based on the current network conditions and device capabilities, and uses adaptive bitrate switching to decide when to switch to a higher or lower bitrate version of the segment.

Primary factors that should consider when choosing an adaptive streaming technology:

There are several factors that you should consider when choosing an adaptive streaming technology, including:

  1. Compatibility: Ensure that the technology is compatible with the devices and platforms that you plan to target. Different adaptive streaming technologies have different compatibility with different browsers, operating systems, and devices.
  2. Network support: Consider the network support of the technology. Some adaptive streaming technologies are better suited for wired networks while others are better suited for wireless networks.
  3. Latency: Latency refers to the time it takes for the video to start playing after the client requests it. Lower latency is generally preferred, as it results in a better user experience.
  4. Quality of Service (QoS): The technology should provide good Quality of Service (QoS) by adapting the video stream to the client’s network conditions and device capabilities in real time.
  5. Scalability: Consider the scalability of the technology, especially if you expect to have a large number of viewers. Make sure that the technology can handle large numbers of concurrent connections and requests.
  6. DRM support: If your content needs to be protected by Digital Rights Management (DRM) technology, ensure that the adaptive streaming technology you choose supports the DRM technology you require.
  7. Cost: Consider the cost of using the technology, including any licensing fees or costs associated with setting up and maintaining the streaming server.
  8. Ease of integration: Consider the ease of integrating the technology into your existing system and workflow. The technology should have a clear API and documentation and be easy to use, to minimize the integration time.

When choosing an adaptive streaming technology, you should consider factors such as compatibility, network support, latency, QoS, scalability, DRM support, cost, and ease of integration.

Protocol for Adaptive Streaming

Adaptive streaming primarily uses two protocols: HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH).

HTTP Live Streaming (HLS) is a protocol developed by Apple for streaming video and audio over the internet. It works by breaking the content into small segments and creating a playlist that lists the segments and their corresponding bitrates. The client uses this playlist to request and play the segments. HLS is widely supported on iOS and macOS devices and is also supported on Android and other platforms through third-party libraries.

Dynamic Adaptive Streaming over HTTP (DASH) is an open standard developed by the Moving Picture Experts Group (MPEG). It works similarly to HLS, by breaking the content into small segments and creating a manifest file that lists the segments and their corresponding bitrates. DASH is supported on a wide range of devices and platforms, including web browsers, mobile devices, and smart TVs.

Both HLS and DASH are widely used protocols for adaptive streaming, HLS is more used on Apple’s ecosystem and DASH is more used on other platforms, both protocols use similar techniques of breaking the content into small segments and creating a playlist or manifest file, but they have different implementations and features.

In summary, Adaptive streaming primarily uses two protocols, HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH) which are widely used and supported by most platforms and devices.

Conclusion:

In conclusion, Adaptive streaming is a technique used to deliver multimedia content, such as video or audio, over the internet by dividing the content into small segments and encoding each segment at multiple bitrates. The client then selects the appropriate bitrate for the current network conditions and device capabilities, allowing the client to adapt to changes in network conditions and provide the best possible quality without buffering or interruptions.

There are several adaptive streaming protocols in use today, including HTTP Live Streaming (HLS) and Dynamic Adaptive Streaming over HTTP (DASH). These protocols use similar techniques but have different implementations and features.

When choosing an adaptive streaming technology, it is important to consider factors such as compatibility, network support, latency, Quality of Service (QoS), scalability, Digital Rights Management (DRM) support, cost, and ease of integration.

Adaptive streaming can use a variety of protocols, including Real-Time Messaging Protocol (RTMP) and Hypertext Transfer Protocol (HTTP). RTMP is mostly used for live streaming and has low latency but is a proprietary protocol and not widely supported by devices. HTTP is widely supported and is the foundation for the most commonly used adaptive streaming protocols such as HLS and DASH.


My Personal Notes arrow_drop_up
Last Updated : 30 Jan, 2023
Like Article
Save Article
Similar Reads