M3U8 / HLS
Apple keksi sen, jokainen Apple-laite toistaa sen, eikä mikään niistä tallenna sitä.
.m3u8-tiedosto on soittolista, ei video: muutama kilotavu tekstiä joka listaa tuhansia pieniä segmenttejä noudettavaksi järjestyksessä. Tuo suunnittelu on syy miksi HLS toistuu virheettömästi jokaisella Apple-laitteella ja miksi ”tallenna tämä tiedosto” tuottaa tekstiasiakirjan. Yhden lataaminen tarkoittaa jokaisen segmentin noutamista ja tiedoston rakentamista uudelleen joka ei koskaan ollut olemassa.
30. heinäkuuta 2026
Avaa ilman apua
HLS on Applen oma määrittely ja sillä on ensiluokkainen tuki kaikkialla — Safari, AVPlayer, AirPlay. Mitä ei tueta missään järjestelmässä on live-striimin muuttaminen tiedostoksi levylle. Toistaminen ja säilyttäminen ovat täysin eri ongelmia.
Faktat
| Koko nimi | HTTP Live Streaming; soittolista on M3U UTF-8:na |
|---|---|
| Laji | Suoratoistoprotokolla, toimitettuna tekstisoittolistana |
| Päätteet | .m3u8 (soittolista), .ts tai .m4s (segmentit joihin se osoittaa) |
| Julkaistu | 2009, Apple; standardoitu RFC 8216:na 2017 |
| Tyypillinen segmentin pituus | 2–10 sekuntia kukin — tunti videota on satoja tai tuhansia tiedostoja |
| Master vs. media-soittolista | Master listaa laatutasot; jokainen niistä osoittaa media-soittolistaan oikeista segmenteistä |
| Video segmenttien sisällä | H.264 tai HEVC, silloin tällöin AV1 |
| Live-striimit | Soittolista noudetaan uudelleen muutaman sekunnin välein ja kasvaa lähetyksen jatkuessa |
Sisällysluettelo, ei kirja
Avaa .m3u8 tekstieditorissa ja löydät muutaman kymmenen riviä: otsikon, joitakin parametreja, ja pitkän listan osoitteita. Se on koko tiedosto. Video asuu muualla, leikattuna muutaman sekunnin segmentteihin, palvelimella tuhansina erillisinä pieninä tiedostoina.
Soitin lukee listan, noutaa ensimmäiset muutamat segmentit, aloittaa toiston, ja jatkaa noutamista itsensä edellä. Kun yhteytesi hidastuu, se vaihtaa alempilaatuiseen versioon joka on listattu master-soittolistassa — eri joukko segmenttejä, eri bittinopeudella — ja tekee sen segmenttien välillä jotta näet laadun muutoksen etkä keskeytystä. Tämä adaptiivinen vaihtaminen on syy miksi formaatti voitti.
Se selittää myös jotain mikä yllättää ihmiset: yhtä tiedostoa jota olisi ei ole olemassa. Elokuvaa jota katsot ei ole olemassa objektina missään. Se on tuhat palasta ja joukko ohjeita.
Miksi sen tallentaminen antaa sinulle tekstitiedoston
Koska se on se minkä tallensit. Selain pyysi osoitetta jonka annoit sille, vastaanotti neljä kilotavua soittolistaa, ja kirjoitti ne levylle. Kaikki mitä oikeasti katsoit saapui tuhannen erillisen pyynnön kautta joista tallennustoiminto ei tiennyt mitään.
HLS:n lataaminen kunnolla tarkoittaa sen tekemistä mitä soitin tekee, mutta levylle: lue soittolista, valitse laatuversio, nouda jokainen segmentti järjestyksessä, ja liitä ne sitten yhteen säiliöön. Tuota viimeistä vaihetta kutsutaan uudelleenkäärimiseksi — videota ja ääntä ei koodata uudelleen, ne vain kirjoitetaan uudelleen yhdeksi MP4:ksi asianmukaisella indeksillä jotta tulosta voi selata.
Kaksi asiaa tekee tästä vaikeampaa kuin miltä se kuulostaa. Segmenttien osoitteet ovat usein suhteellisia ja muuttuvat istunnon mukaan, joten tunti sitten noudettu lista voi olla kuollut. Ja striimit on usein salattu avaimella johon viitataan soittolistassa, toimitettuna erikseen, ja vaihdettuna kesken toiston.
Yhden saaminen laitteeseen
Vain koskaan striimeille joita sinulla on oikeus säilyttää — omaan tallenteeseesi, omaan IPTV-tilaukseesi, lähettäjälle joka tarjoaa latauksen. Se mitä seuraa on kuinka mekanismi toimii, ei lupa osoittaa sitä minne tahansa.
- Anna latausmoottorin hoitaa segmentit
Tuhannen tiedoston noutaminen ja niiden uudelleenkäärintä on täsmälleen se mitä FoxDL:n lataustoiminto tekee HLS-lähteelle: se käy soittolistan läpi, vetää segmentit rinnakkain, ja kirjoittaa yhden MP4:n joka selaa kuin tavallinen tiedosto. Se mikä saapuu on tiedosto, ei kansiollinen palasia.
- Ota suora tiedosto kun sellainen on olemassa
Monet sivustot tarjoavat sekä HLS:ää että tavallista progressiivista MP4:ää. MP4 on yksi pyyntö, yksi tiedosto eikä uudelleenrakentamista — aina parempi vaihtoehto kun se on tarjolla.
- Hyväksy ettei kaikkea voi säilyttää
DRM:llä suojatut striimit — FairPlay, Widevine — on salattu päästä päähän eivätkä ne ole ladattavissa suunnitelmallisesti. Mikään työkalu ei muuta sitä, ja sellaista väittävä valehtelee jostain.
Missä HLS-lataukset menevät pieleen
Segmentit yhteenliitettynä ilman uudelleenkäärintää tuottavat toistettavan tiedoston ilman indeksiä. Se toistuu alusta eikä hyppää minnekään. Uudelleenkäärintä kirjoittaa indeksin joka korjaa sen.
Live-soittolistalla ei ole loppua — se jatkaa kasvamistaan. Yhden lataaminen on tallentamista, ja se pysähtyy kun sinä pysäytät sen, ei kun tiedosto loppuu.
Soittolistan osoitteet on yleensä allekirjoitettu ja aikarajoitettu. Aamulla tallennettu .m3u8 osoittaa usein tyhjää iltapäivään mennessä.
Kysymyksiä tästä muodosta
Mistä nämä faktat tulevat
- RFC 8216 — HTTP Live Streaming IETF
- HTTP Live Streaming Apple Developer
Lähellä olevat muodot
Kirjastosi, vihdoin yhdessä paikassa.
Ilmainen ladata. Ei tiliä, ei rekisteröitymistä, ei mitään luovutettavaa.