Nadrabiania zaległości na blogu ciąg dalszy 🙂 W poprzednim wpisie opisałem RTMP, więc teraz czas na kolejny temat powiązany z moim nowym projektem. Przedstawię Wam HLS.

Czym jest HLS?

HTTP Live Streaming (HLS) jest to protokół służący do stremowania video i audio z serwerów, do aplikacji klienckich, które wyświetlają zawartość na ekranach użytkowników. Największą zaletą protokołu jest adaptacyjność (adaptive bitrate streaming) oraz to, że opiera się o HTTP.

Można się spotkać również z nazwą Apple Live Streaming, ponieważ to właśnie firma Apple jest autorem technologii wydanej w 2009r.

Na tę chwilę, jest to preferowany sposób dostarczania strumieni video, wspierany praktycznie przez wszystkie urządzenia, takie jak komputery, telewizory, urządzenia mobilne Apple/Android oraz przeglądarki internetowe.

HLS i Adaptive bitrate Streaming

Jak już wcześniej wspomniałem, przesyłanie adaptacyjne, to bardzo duża zaleta ale czym właściwie to jest?

To nic innego jak zmniejszanie lub zwiększanie jakości video bez konieczności przerwania odtwarzania. W zależności od warunków sieciowych HLS będzie dostosowywać jakość streamingu tak aby zachować płynność odtwarzania.

Więc jak działa HLS?

hls
hls

Najpierw w dużym skrócie: serwer dzieli video na mniejsze pliki o równej długości po czym udostępnia je aplikacji klienckiej. Zacząłem od tego zdania ponieważ wydaje mi się, że to pomoże w zrozumieniu tego co napisze dalej 🙂

No dobra więc teraz bardziej szczegółowo jak to działa. 

W pierwszym kroku na serwerze następuje kodowanie czyli dane video są formatowane w standardzie H.264 lub H.265.

Kolejny krok, to tzw. Segmentacja, czyli utworzenie segmentów o równej długości 10 sekund, te kawałki zapisywane są na serwerze w postaci plików .ts. Wraz z podziałem powstaje plik indeksu, który mówi aplikacjom klienckim, w jakiej kolejności mają odtwarzać pliki .ts.

Właśnie w trakcie segmentacji, HLS tworzy duplikowane zestawy o różnych poziomach jakości.

Po podziale odbywa się już dystrybucja przez internet, najczęściej przy użyciu Content delivery network (CDN). CDN pomaga w udostępnianiu strumienia w różnych obszarach świata, a także zajmuje się buforowaniem.

Na końcu są już klienci w postaci aplikacji lub urządzeń. Przy pomocy pliku indeksu o rozszerzeniu .m3u8 pobierają kolejne segmenty o potrzebnej jakości i wyświetlają użytkownikowi w formie video.

HLS to nie tylko zalety. Low latency?

Apple aż do 2016r rekomendowało aby wielkość segmentów wynosiła 10 sekund. Jeżeli do tego dodamy, że HTTP live streaming wymaga aby powstały conajmniej 3 segmenty daje nam to już 30 sekund opóźnienia.

Po 2016r Apple zmniejszyło zalecaną wielkość paczki do 6 sekund, lecz to nadal w połączeniu z 3 koniecznymi segmentami daje około 20 sekund opóźnienia.

W 2020r Apple w drugim wydaniu protokołu dodał rozszerzenie Low-latency HLS zapewniające opóźnienie poniżej 2 sekund!

Podsumowanie

HLS, to obecnie najważniejszy protokół do stremowania video z serwera do klienta. W połączeniu z RTMP można robić naprawdę fajne rzeczy ale o tym kiedy indziej 😉

Dzięki, że tu wpadłeś. Zachęcam do komentowania i udostępniania dalej! 🙂

Więcej szczegółów w poniższym linku:

https://developer.apple.com/streaming/


0 Komentarzy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *