Four different layers people call a video format
Video discussions often use the word format for several different things. A delivery protocol moves media across a network. A playlist describes streams and segments. A container organizes tracks and timing. A codec compresses the pictures or sound. Identifying the layer prevents confusion when diagnosing compatibility.
| Layer | Example | Purpose |
|---|---|---|
| Delivery | HLS | Move adaptive media over HTTP |
| Playlist | M3U8 | List variants or media segments |
| Container | MPEG-TS or MP4 | Organize encoded tracks and timing |
| Codec | H.264 or AAC | Compress video or audio samples |
The downloader receives an HLS playlist, reads media packaged in compatible transport streams, and writes compatible encoded tracks into an MP4 container.
HLS and M3U8
HLS is designed for streaming. A master M3U8 playlist can offer several quality levels. A media playlist lists the small resources that make up one timeline. Apple notes that HLS can support live and prerecorded content, alternate bit rates, encryption, and authentication. Those capabilities mean that not every HLS presentation is a simple sequence this tool can download.
The downloader follows a limited number of master-playlist levels and selects the highest listed bandwidth. It reads #EXTINF durations and resolves relative segment URLs. It rejects playlists that declare encryption keys. It does not attempt digital-rights-management workarounds or credential injection.
MPEG-TS segments
MPEG-2 transport stream was designed to carry synchronized media in environments where independent packets and resilience matter. In HLS, a recording can be split into many .ts resources. Each segment contains packets belonging to audio, video, and supporting tables. The downloader preserves playlist order even though it requests several segments concurrently.
Compatible transport streams commonly carry H.264 video and AAC audio. mux.js can parse the transport packets and emit MP4 initialization information and media fragments. If segments are corrupt, use unsupported stream types, or change configuration mid-recording, the transmuxer may fail.
MP4, H.264, and AAC
MP4 is a widely supported container, not a codec. H.264 video and AAC audio are commonly accepted inside MP4 and play across many browsers, operating systems, editors, and presentation tools. When those codecs already exist in the transport stream, the downloader can repackage the samples without re-encoding them.
The output normally preserves the selected stream's resolution, encoded quality, frame rate, and audio characteristics. It does not upscale, denoise, compress to a new bitrate, or repair poor source quality. File size is therefore closely related to the bytes in the chosen HLS rendition plus MP4 packaging overhead.
Practical compatibility matrix
| Media case | Expected result | Reason |
|---|---|---|
| Unencrypted HLS with H.264 and AAC in TS | Usually supported | Matches the mux.js transmux path |
| Master playlist with simple variants | Supported | Highest bandwidth variant is selected |
| Encrypted playlist | Rejected | Tool does not retrieve media keys |
| Separate alternate audio groups | May be unsupported | Requires explicit multi-track selection |
| Fragmented MP4 HLS segments | May be unsupported | Current pipeline targets transport streams |
| Unusual or incompatible codec | Unsupported | Transmuxing does not transcode codecs |
| Extremely large recording | Device dependent | Assembly requires browser memory |
Run a compatibility preflight
You do not need to inspect raw media files before every download. Start with observable signals. Confirm that the public Kommodo recording page loads, note its approximate duration, use a current desktop browser, and leave enough free memory and storage for a file that may be large. A short recording that reaches the MP4 preparation stage is a useful test of the same browser and network before attempting an hour-long session.
Pay attention to the stage where the downloader stops. Failure while resolving the page suggests an invalid, private, or expired link. Failure while reading the playlist can indicate an unsupported HLS structure or browser access restriction. Repeated segment errors point to the network or media host. Failure after all segments arrive more often indicates a codec, container, timestamp, or memory limitation. These clues are more reliable than guessing from a file extension.
If the recording contains separate audio tracks, captions, chapters, encryption, or compliance metadata that must be retained, request an official Kommodo export. A basic MP4 is intended for compatible audio and video playback, not complete platform preservation.
Metadata that may not survive
The output focuses on playable audio and video. Platform comments, analytics, chapters, transcripts, captions, speaker labels, thumbnails, multiple audio languages, and share-page metadata may not be embedded in the resulting MP4. A title is used to suggest a file name, but that is not the same as preserving the platform's full record.
If you need captions, compliance metadata, or multiple tracks, ask for an official export. Keep related text files and permissions records beside the MP4 according to your archive policy.
How to diagnose a format problem
Use the stage that fails. An encrypted-playlist message identifies protection immediately. A failure after all segments download points more strongly to container, codec, timestamps, or memory. A failure before segment discovery points to the link or playlist structure. Do not infer the codec from the file extension alone.
Continue with HLS to MP4 explained for the media pipeline or Troubleshooting Kommodo downloads for symptom-based actions.