Compatibility guide

Containers, codecs, playlists, and what the browser can save.

A practical format guide for understanding why one recording converts cleanly while another needs an official export or different media workflow.

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.

Media layers and examples
LayerExamplePurpose
DeliveryHLSMove adaptive media over HTTP
PlaylistM3U8List variants or media segments
ContainerMPEG-TS or MP4Organize encoded tracks and timing
CodecH.264 or AACCompress 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

Downloader compatibility matrix
Media caseExpected resultReason
Unencrypted HLS with H.264 and AAC in TSUsually supportedMatches the mux.js transmux path
Master playlist with simple variantsSupportedHighest bandwidth variant is selected
Encrypted playlistRejectedTool does not retrieve media keys
Separate alternate audio groupsMay be unsupportedRequires explicit multi-track selection
Fragmented MP4 HLS segmentsMay be unsupportedCurrent pipeline targets transport streams
Unusual or incompatible codecUnsupportedTransmuxing does not transcode codecs
Extremely large recordingDevice dependentAssembly 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.