HTTP Live Streaming (HLS)
- Developed by Apple, HLS is one of the most widely used protocols for adaptive bitrate streaming.
- How It Works:
- The video is broken into small time-based segments (e.g., 5 seconds).
- An M3U8 playlist (manifest) lists these segments and provides URLs for each bitrate.
- The browser or player requests the playlist and then sequentially fetches video segments using HTTP.
- Compatibility:
- Supported natively on iOS, macOS, and many modern browsers via JavaScript-based players (e.g., Video.js).
- Transport:
- Delivered over HTTP/1.1 or HTTP/2 using TCP, and more recently over HTTP/3 using QUIC(UDP).
Dynamic Adaptive Stremaing over HTTP (DASH)
- An open standard similar to HLS but more flexible.
- How It Works:
- Uses an MPD (Media Presentation Description) file as the manifest.
- Like HLS, video segments are fetched using HTTP.
- Transport:
- Delivered over HTTP/1.1, HTTP/2, or even HTTP/3 (QUIC).
Progressive HTTP Streaming
- Simpler than HLS or DASH, progressive streaming allows the client to fetch the entire video file incrementally.
- How It Works:
- The browser starts playing the video as soon as enough data is buffered.
- Commonly used for short videos or static content.
- Limitations:
- Does not support adaptive bitrate or segmented delivery.
WebRTC
- Used for low-latency, real-time video (e.g., video conferencing or live streaming).
- How It Works:
- WebRTC establishes peer-to-peer communication using UDP for minimal latency.
- Requires a signaling server and STUN/TURN servers for connection setup.
- Transport:
- Runs over UDP with fallback to TCP if necessary.
Tip
QUIC is becoming relevant in the video streaming space