Redactieteam Euro TV Pro
HLS (HTTP Live Streaming) is een streamingmethode die een live-uitzending via standaard HTTP levert door deze in kleine tijdsdelen op te splitsen. De omroep splitst het beeld in segmenten van enkele seconden en presenteert deze segmenten in volgorde aan de speler. De speler downloadt de segmenten en bouwt een ononderbroken beeld op.
In dit artikel leggen we uit hoe HLS werkt, welke rol het speelt in IPTV-streams en wat de effecten zijn op latentie en kwaliteit.
Bij traditionele uitzendstreams wordt het beeld als één continue datastroom verzonden. Bij die aanpak zorgt zelfs een klein verlies ervoor dat het beeld uiteenvalt. Omdat HLS de stream in onafhankelijke segmenten verdeelt, beïnvloedt een probleem in één segment alleen dat segment; de speler gaat verder met het volgende segment.
Segmentering: de stream wordt opgesplitst in kleine bestanden van vaste duur.
Gebruik van HTTP: vereist geen extra serverinfrastructuur en gaat door firewalls heen.
Herstel: de stream gaat verder na een beschadigd segment.
Aanpasbaarheid: dezelfde content kan in verschillende kwaliteiten worden geboden.
De omroep codeert het beeld dat van de camera komt en splitst het eerst in korte segmenten. Daarna wordt een afspeellijstbestand gemaakt met de lijst van deze segmenten. De speler leest eerst de lijst en downloadt en speelt daarna de segmenten in volgorde af. Omdat de lijst continu wordt bijgewerkt, weet de speler waar hij in de stream is.
1. Codering: het beeld wordt gecomprimeerd en gedigitaliseerd.
2. Segmentering: de stream wordt verdeeld in segmenten van vaste duur.
3. Lijst: de segmentadressen worden in een afspeellijst geschreven.
4. Afspelen: de speler volgt de lijst en downloadt de segmenten in volgorde.
5. Bijwerken: de live-stream gaat door terwijl de lijst wordt vernieuwd.
M3U8 is het afspeellijstformaat dat in HLS-streams wordt gebruikt. Het bestand bevat de segmentadressen en de kwaliteitsinformatie als tekst. Een HLS-adres dat aan de speler wordt gegeven wijst meestal naar dit lijstbestand; wanneer de lijst wordt geopend, weet de speler welke segmenten in welke volgorde moeten worden gedownload. De details van het afspeellijstformaat worden samen met praktische stappen uitgelegd in het M3U instellen artikel.
| Component | Rol | Opmerking |
|---|---|---|
| Afspeellijst (M3U8) | Geeft de segmentadressen weer | Op tekst gebaseerd |
| Segmentbestanden | Dragen korte stukjes video- en audiodata | Elk is een paar seconden lang |
| Master-afspeellijst | Toont de verschillende kwaliteitsopties | Wordt gebruikt bij adaptieve streaming |
| Sleutelbestand | Draagt de versleutelingsinformatie | Hangt af van de omroep |
Bij HLS begint de speler een segment niet af te spelen voordat het volledig is gedownload. Hij houdt ook een buffer van meerdere segmenten aan om stilstand te voorkomen. Daarom lopen HLS-streams een paar seconden achter op de ruwe feed. Naarmate de segmentduur korter wordt, neemt de latentie af; omdat de datastroom echter frequenter wordt, stijgt het risico op stilstand op onstabiele lijnen. De details van de latentiecomponenten staan in het streamvertraging artikel.
Segmentduur: lange segmenten verhogen de latentie.
Buffer: de speler verzamelt gegevens om stilstand te voorkomen.
Stabiliteit: korte segmenten zijn riskant bij lage snelheid.
Balans: er wordt gekozen tussen latentie en het voorkomen van stilstand.
Het grootste voordeel van HLS is dat het op elk netwerk kan werken en de kwaliteitsopties in dezelfde stream kan combineren. De beperking is de latentie: voor toepassingen die sub-seconde latentie nodig hebben, hebben andere methoden de voorkeur.
| Titel | Status |
|---|---|
| Compatibiliteit | Zeer breed, inclusief browsers en mobiel |
| Infrastructuurvereiste | Standaardservers zijn voldoende |
| Kwaliteitsaanpassing | Meer dan één kwaliteit kan in dezelfde stream worden geboden |
| Vertraging | Een paar seconden meer dan de ruwe feed |
| Complexiteit van de installatie | Vereist extra configuratie aan de omroepkant |
Aan de kijkerskant verschijnen HLS-gerelateerde problemen meestal als afspeellijst-updates, fouten bij het downloaden van segmenten en codec-incompatibiliteit. Om te bepalen of het probleem uit de stream of uit het apparaat komt, kan een test in een andere speler worden gedaan.
| Symptoom | Mogelijke oorzaak | Eerste controle |
|---|---|---|
| De stream start niet | Fout in het afspeellijstadres | Probeer het adres opnieuw |
| Het beeld bevriest vaak | Vertraging bij het downloaden van segmenten | Controleer de verbindingssnelheid en het draadloze signaal |
| Geluid maar geen beeld | Codec-incompatibiliteit | Probeer een andere speler en een ander apparaat |
| Kwaliteit blijft laag | Onvoldoende bandbreedte | Controleer de kwaliteitsinstelling en de lijn |
| De stream loopt achter | Segmentduur en buffer | Bekijk de spelerinstellingen |
| Voor codec-gerelateerde beeldproblemen, zie het wat is H.265 / HEVC en voor verbindingsgerelateerd bevriezen kunnen de IPTV hapert op wifi artikelen worden bekeken. |
Het is een streamingmethode die een live-uitzending via HTTP levert door deze in kleine segmenten op te splitsen.
Het zijn verschillende toepassingen van hetzelfde afspeellijstformaat; M3U8 wordt gebruikt om streamsegmenten te definiëren en M3U om zenderlijsten te definiëren. Details staan in het wat is M3U artikel.
De speler begint een segment niet af te spelen voordat het compleet is en houdt een buffer aan om stilstand te voorkomen. Daarom loopt de stream een paar seconden achter.
Het is een veelgebruikte methode; het apparaat moet echter de in de stream gebruikte codec ondersteunen.
Voor de technische uitspraken in dit artikel zijn officiële bronnen geraadpleegd: RFC 8216 – HTTP Live Streaming (afspeellijstformaat), ITU-T Y.1541 – Network performance objectives for IP-based services. Deze bronnen leggen uit hoe uitzendtechnologie in het algemeen werkt; voor de dienstomvang en apparaatondersteuning verwijzen we naar de betreffende pakket- en supportpagina's.