1️⃣ What is DASH?
DASH (Dynamic Adaptive Streaming over HTTP) is a streaming protocol that allows video and audio content to be delivered over the internet adaptively.
- Uses HTTP (standard web protocol)
- Supports adaptive bitrate streaming: quality changes dynamically based on network conditions
- Open standard, sometimes called MPEG-DASH
Goal: Provide smooth playback without buffering, even on fluctuating network connections.
2️⃣ How DASH Works
-
Content Preparation (Encoding & Segmentation)
- Original video is encoded at multiple bitrates (e.g., 240p, 480p, 720p, 1080p)
- Each version is divided into small segments (e.g., 2–10 seconds)
-
Manifest File (MPD - Media Presentation Description)
-
DASH creates an MPD file (XML) describing:
- Available bitrates
- Segment URLs
- Duration of each segment
-
-
Streaming to Client
- Client downloads the MPD file first
- Requests segments one by one over HTTP
- Client monitors network bandwidth & playback buffer
- Dynamically chooses the best bitrate segment to avoid buffering
3️⃣ Example Workflow
- Video encoded in 3 qualities: 480p, 720p, 1080p
- Video divided into 5-second segments:
seg1.ts,seg2.ts, … - MPD file contains:
<Representation id="720p" bandwidth="3000000" ...>
<SegmentURL media="720p/seg1.ts" />
<SegmentURL media="720p/seg2.ts" />
</Representation>
- Client downloads MPD → chooses initial bitrate based on current network → requests
seg1 - During playback, if network improves → switch to higher bitrate for next segment
- If network worsens → switch to lower bitrate for next segment
4️⃣ Advantages of DASH
| Feature | Benefit |
|---|---|
| Adaptive Bitrate | Reduces buffering, improves QoE (Quality of Experience) |
| HTTP-based | Works with standard web servers, caches, CDNs |
| Scalable | Can handle millions of users without special streaming servers |
| Open Standard | Supported by most devices & players (Shaka Player, ExoPlayer, VLC) |
5️⃣ Comparison with Other Streaming Protocols
| Protocol | Transport | Adaptive Bitrate | Notes |
|---|---|---|---|
| DASH | HTTP | Yes | Open standard |
| HLS | HTTP | Yes | Apple proprietary, uses .m3u8 playlists |
| RTMP | TCP | No | Older Flash-based streaming |
| RTSP | TCP/UDP | No | Real-time streaming for cameras |
6️⃣ Use Cases
- YouTube / Netflix / Prime Video / Disney+
- Live streaming events (sports, concerts)
- Mobile streaming apps where network fluctuates
- E-learning platforms with video lectures
7️⃣ Quick Analogy
Think of DASH like a restaurant buffet:
- Different quality levels = different dishes
- Client = customer taking portions depending on hunger (bandwidth)
- Segments = small plates served one by one
- Client adapts based on how much food they can handle (network condition)