How A Video Gets Split Into Chunks

Modern streaming does not send a continuous flow of video. It sends a series of short files requested one after another, which changes what the infrastructure must do.
Segments are ordinary web downloads
Each segment is a small file fetched with the same protocol as any web page. No special server software or streaming protocol is required.
That means the existing caching and distribution infrastructure of the web carries video without modification. Popular segments sit in caches near viewers.
It also means video passes through corporate networks and firewalls that would block dedicated streaming protocols, since nothing distinguishes a video segment from any other file transfer.
A manifest describes what is available
A small text file lists the available quality levels, their bitrates and resolutions, and the segments belonging to each.
The player reads it first, chooses a level, and begins requesting segments. For live content the manifest is updated continuously as new segments appear.
Because the manifest is small and text-based, the initial request is fast and the player can begin almost immediately.
Segment boundaries must align across levels
Each segment begins with a self-contained frame so it can be decoded without reference to what came before.
All quality levels use identical boundaries, which is what makes switching seamless. The player finishes one segment at one level and starts the next at another.
This constrains encoding, since anchor frames must be placed on a fixed schedule rather than at scene changes. Efficiency is sacrificed for switchability.
It also means every quality level must be produced from the same source with the same segmentation settings. A version encoded independently, with anchors elsewhere, cannot join the set.
Segment length is a trade-off
Short segments allow faster quality adaptation and lower live latency, since the player commits to less at a time.
They also mean more requests, more overhead per unit of video, and more frequent anchor frames, all of which reduce efficiency.
Longer segments are more efficient and slower to react. Services choose different points on that curve depending on whether they prioritize live latency or bandwidth cost.
Audio and captions are usually separate
Audio tracks are typically segmented independently, so a viewer can switch language without re-downloading the picture.
Caption files are delivered separately again, either whole or in segments. The player synchronizes all of them against the same timeline.
Separating the streams keeps the number of prepared combinations manageable. Encoding every language and quality pairing as a single stream would multiply the storage enormously.



