What can be prefetched
An adaptive bit rate stream, such as HLS and DASH consists of multiple object types that are requested by a player in a specific order. You can use this behavior to prefetch these objects to speed up delivery to end users.
What's the typical flow for an HLS stream?
This discusses the object types you can usually find in an HLS stream, and the order they're presented in a request.
Object | What's triggered next in a prefetch | Additional details |
---|---|---|
Master Playlist (.m3u8) | One or more variant Playlists (.m3u8). | N/A |
Variant Playlist (.m3u8) | One or more segments belonging to the current variant playlist. The segment to prefetch depends on the play position of the player, and this can be difficult to determine for a VoD stream. For Live streams, this is typically one of the last three segments in the variant playlist. | For the typical HLS stream, segments have the following extensions:
For the newer HLS streams with CMAF segments, the extensions are:
|
Variant Playlist (.m3u8) | Zero or one | The
|
Segment | The segment that follows next in the video/audio/subtitle presentation time. | N/A |
What's the typical flow for a DASH stream?
This discusses the object types you can usually find in a DASH stream, and the order they're presented in a request.
init
segments for audio and video followed by actual audio and video segments. Unlike HLS, there are no bit rate-specific playlists, and content is always demuxed, so right after fetching the MPD file, the player typically requests two segments: one for video and another for audio.
Object | What's triggered next in a prefetch | Additional details |
---|---|---|
Manifest File (.mpd) | N/A | |
Init segment | One or more content segments. | N/A |
Segment | The segment that follows next in the video/audio/subtitle presentation time. | N/A |
Updated 3 months ago