
Kedjan i fem steg
Samma fem steg gäller vare sig sändningen kommer från en operatör eller från en tjänst på öppna internet. Det som skiljer är vem som äger vilket steg.
- Mottagning. Den ursprungliga sändningen tas emot — från satellit, från fiber, eller direkt från rättighetshavaren.
- Kodning. Bilden komprimeras till en hanterbar datamängd, i praktiken alltid med H.264 eller H.265. Här bestäms bitrate, och därmed både hur bra det ser ut och hur mycket data det drar.
- Segmentering. Strömmen huggs i bitar på typisk 2–6 sekunder. Varje bit blir en egen fil. En spellista håller reda på ordningen.
- Distribution. Bitarna läggs på servrar, ofta i flera länder, så att den som tittar hämtar från den närmaste.
- Uppspelning. Din app läser spellistan, hämtar de närmaste bitarna, avkodar och visar. Sedan börjar den om.
Steg fem upprepas ungefär var tredje sekund, hela kvällen. Det är inte en sändning som pågår — det är tusentals små nedladdningar i snabb följd.
Varför bilden delas i bitar
Det hade varit enklare att skicka en enda lång ström. Segmenteringen finns för att lösa tre problem samtidigt.
| Problem | Vad segmenten löser |
|---|---|
| Nätet krånglar en sekund | Bara ett segment tappas, och appen har redan hämtat de närmaste. Tittaren märker ingenting |
| Uppkopplingen varierar | Samma kanal ligger i flera kvaliteter. Appen byter mellan dem segment för segment — det är därför bilden kan bli grynig i tio sekunder och sedan skarp igen |
| Brandväggar och nät blockerar udda protokoll | Segmenten hämtas över vanlig HTTP på port 443. För nätet ser det ut som webbtrafik, för det är det |
Formatet heter HLS, HTTP Live Streaming, och är specificerat i RFC 8216. Det utvecklades ursprungligen av Apple för iPhone och är i dag det som nästan all videoleverans över internet bygger på — inklusive SVT Play och YouTube.
Kvalitetsbytet i mitten av tabellen har ett namn: adaptiv bitrate. Det är en av anledningarna till att IPTV sällan bara slutar fungera, utan i stället gradvis ser sämre ut. Tjänsten offrar skärpa för att slippa pausa.
Fördröjningen, och varför den inte går att ta bort
Appen måste ha ett par segment i minnet innan den börjar spela. Annars skulle varje litet avbrott bli en svart ruta. Den bufferten kostar tid.
Kortare segment ger lägre fördröjning men fler förfrågningar och känsligare uppspelning.
Det är den här marginalen som gör att en tappad bit inte syns.
Därför hör du grannen jubla före dig. Det är inte ett fel och det finns ingen inställning som fixar det.
Vissa tjänster kör lågfördröjt HLS och kommer ned mot några sekunder. Det kostar stabilitet, och för de flesta är en stabil bild med tjugo sekunders eftersläpning ett bättre byte än tvärtom.
M3U, EPG och Xtream Codes
Tre filformat dyker upp så fort man börjar konfigurera något, och alla tre är enklare än de låter.
| Vad | Vad det är | Vad det inte är |
|---|---|---|
| M3U / M3U8 | En textfil som listar kanalerna och adressen till varje kanals ström | Innehåller ingen video. Är inte en tjänst. Är inte krypterad |
| XMLTV | Programguiden som en XML-fil: vad som går, när, på vilken kanal | Har inget med kanallistan att göra — de kan komma från olika håll |
| Xtream Codes | Ett API. Du anger serveradress, användarnamn och lösenord, och appen hämtar allt automatiskt | Inte ett filformat och inte ett företag du köper av. Bara ett gränssnitt |
Skillnaden mellan M3U och Xtream Codes i praktiken: med en M3U-fil har du en ögonblicksbild som blir gammal. Med Xtream Codes uppdateras listan när utbudet ändras, utan att du gör något. Det är därför nästan alla abonnemangstjänster använder det senare, och det är därför inloggningsrutan i de flesta appar frågar efter tre fält.
Att en M3U-fil är en oformaterad textfil betyder inte att den är farlig eller att någon "hackat" något. Öppna den i Anteckningar och du ser en rad per kanal. Den innehåller däremot dina inloggningsuppgifter i klartext i adressen, så den ska inte delas vidare.
Var kedjan faktiskt går sönder
Här är felen i den ordning de förekommer, inte i den ordning man brukar misstänka dem.
| Var | Hur ofta | Hur det ser ut |
|---|---|---|
| Wifi mellan router och TV | Vanligast med marginal | Hackar mer på kvällen, bättre nära routern |
| Uppspelningsenheten | Näst vanligast | Bara rörelse hackar. Dialogscener är felfria |
| Belastning hos källan | Förekommer | Alla kanaler samtidigt, alltid samma tider |
| Din internetleverantör | Ovanligt | Även annat än TV blir långsamt |
| Fel på TV:n | Nästan aldrig | Det är inte TV:n |
Den enda som är värd att lära sig utantill är nummer två: ett nätverksproblem försämrar allt, ett avkodningsproblem försämrar bara rörelse. Ser dialogscener perfekta ut medan en kameraåkning blir grötig sitter felet i enheten, inte i uppkopplingen. Hela resonemanget står på varför IPTV laggar.
Vanliga frågor
Hur funkar IPTV rent tekniskt?
Varför är det några sekunders fördröjning?
Vad är en M3U-fil?
Vad är Xtream Codes?
Var i kedjan brukar det gå fel?
Källor
- RFC 8216 — HTTP Live Streaming — IETF
- RFC 3550 — RTP — IETF, används av operatörernas multicast-IPTV