Types of Media Containers
Media containers use different structures to serve stored files, continuous transport, and segmented delivery.
Where can the reader start, and what information is available then? This question explains many structural differences between media containers.
| Reading situation | Information the format must provide | Structural approach |
|---|---|---|
| A complete stored file | Where its samples are and how they are timed | Tables or indexes covering stored content |
| A receiver joining a transmission | What programmes and streams are currently being sent | Repeated identification and timing information |
| A presentation that is still being produced | Enough setup and timing for each newly available part | Initial setup followed by successive media groups |
A conventional MP4 can use a complete set of sample descriptions and locations. If its reader can request any file position, it can read that information and then fetch the relevant ranges. Fast-start placement makes initialization convenient for readers obtaining bytes from the beginning.
A television receiver has a different starting point. It may join an MPEG transport stream after the programme began. Repeated programme tables let it discover the components currently present, while packet framing lets it find boundaries in a continuing transmission. The reader does not need to wait for a final movie-wide table.
Fragmented MP4 supplies track setup followed by descriptions of successive sample groups. The complete duration and future samples need not be known when the beginning is delivered. Matroska similarly carries media through clusters and has specific arrangements for file and live uses.
Storage and delivery are two independent choices
Recording transport packets onto disk creates a file, but preserves the packets' structure. Sending a stored MP4 over HTTP makes it a network-delivered resource, but preserves its file tables unless it is repackaged. “File format” and “streaming format” are therefore not two exclusive bins.
The distinction becomes visible in an Emby session. An original stored container may be read on the server while a different package is written for the app. To understand startup or a seek, identify both the source arrangement and the delivered arrangement.
The useful comparison is between concrete tasks: initialize from the available bytes, identify selected tracks, locate a requested time, and handle material that has not finished arriving. Format-specific pages explain the structures used to perform those tasks; this classification connects the structures to the reading situations that motivated them.