Home / m3u8 vs MP4

m3u8 vs MP4 vs DASH

These three are often compared as if they were competing video codecs, but they are really three different delivery strategies. MP4 is a single file you download; HLS (.m3u8) and DASH (.mpd) are adaptive streaming protocols that describe many small segments.

Side-by-side comparison

MP4 (progressive)HLS (.m3u8)DASH (.mpd)
What it isOne complete fileText playlist + segmentsXML manifest + segments
Adaptive bitrateNoYesYes
Live streamingNot practicalYesYes
Native browser playbackAll browsersSafari / iOSNone (MSE needed)
Typical latencyLowest6–30 s (or 2–5 s with LL-HLS)Similar to HLS
Server complexityTrivialSegmenter + playlist generatorSegmenter + MPD generator
DRMLimitedFairPlay / WidevineWidevine / PlayReady

When MP4 is the better choice

A well-formed MP4 with the moov atom at the front can start playing before the download finishes, which is often enough for a product demo or a landing-page video.

When HLS is the better choice

The trade-off is complexity: you must segment the source, generate playlists, keep them updated for live, and configure CORS and MIME types correctly. See how the playlist is structured →

When DASH is chosen

DASH is common on large VOD platforms because it is codec-agnostic and pairs naturally with Widevine/PlayReady DRM. It needs a JavaScript player in every browser, including Safari. Many publishers actually generate both HLS and DASH from the same encoded segment set (often CMAF/fMP4) and pick per device.

Can you convert m3u8 to MP4?

Yes, but it is a remux, not a format swap: a tool downloads every listed segment and concatenates them into one file. For example, ffmpeg -i input.m3u8 -c copy output.mp4. This only works for streams you are authorised to record, and it loses the adaptive-bitrate benefit. Encrypted streams cannot be remuxed without the keys.

Related reading