Niska latencja w Live Streamingu – czym jest i kiedy ma znaczenie?

This post is also available in:
English
Sądzisz, że oglądane przez Ciebie wydarzenia strumieniowe nadawane na żywo w TV lub Internecie na żywo faktycznie oglądasz „na żywo”? W takim razie jesteś w błędzie! Zanim sygnał zostanie zarejestrowany, przesłany i odebrany przez Twój telewizor lub monitor, mija 5, 15, 30, a nawet 50 sekund. Zatem wydarzenia transmitowane na żywo oglądasz z dość sporym opóźnieniem!
Takie opóźnienie między zarejestrowaniem obrazu, a jego wyświetleniem na urządzeniu końcowym wynika przede wszystkim z konieczności przesyłu dużych pakietów informacji z jednego miejsca na drugie. I właśnie to zjawisko nazywamy latencją. Dowiedz się więcej o latencji w strumieniowaniu wideo.
Czym jest mała latencja i o co w niej chodzi?
W kontekście streamingu małą latencją określa się tzw. opóźnienie szkło do szkła, czyli opóźnienie między rejestracją sygnału a jego odbiorem. Zwykle opóźnienie to trwa ok. 5 sekund. Niemniej, termin ten jest mocno subiektywny i uzależniony przede wszystkim od stosowanych protokołów strumieniowania czy ilości danych, które należy przesłać.
Tradycyjne protokoły transmisji kablowej i satelitarnej mają około 5-sekundowe opóźnienie. Ale z kolei protokół strumieniowania Apple HLS jest skonfigurowany domyślnie na 30-sekundową latencję. Z drugiej jednak strony protokoły zapewniające ultra niskie opóźnienie są w stanie przesyłać sygnał z latencją poniżej jednej sekundy. Tego typu protokoły strumieniowania wykorzystywane są np. w wideo-rozmowach czy podczas sterowania urządzeniami w czasie rzeczywistym – np. dronami na koncertach lub innych wydarzeniach kulturalnych.
Zatem kiedy możemy określić latencję mianem małej? Typowe opóźnienie w strumieniowaniu wideo przy wykorzystaniu protokołów takich jak Apple HLS, czy MPEG-Dash zwykle oscyluje w granicach 30-45 sekund. To niestety bardzo dużo – uzyskanie interaktywności z widzami jest w takim przypadku praktycznie niemożliwe. Dlaczego? Wynika to z konieczności dostosowania protokołów do transmisji za pośrednictwem protokołu HTTP poprzez zastosowanie m.in. buforowania czy adaptacyjnej transmisji bitów. Implementacja tych technologii poprawia wrażenia wizualne, ale jednocześnie zwiększa opóźnienie przesyłu.
Mniejsze opóźnienie, które oscylują bliżej 5 sekund zapewniają m.in. takie protokoły transmisji jak: Low-Latency HLS, czy CMAF. Sytuacja jest tutaj już znacząco lepsza, ale nie dość dobra by można było mówić o transmisji w czasie rzeczywistym. Dalej jesteśmy ograniczeni przez naleciałości protokołu HTTP i związane z tym ograniczenia.
Transmisję z opóźnieniem poniżej 1 sekundy gwarantuje z kolei WebRTC oraz nasz autorski protokół oprogramowania o nazwie Storm. Protokoły te jednak bardzo się od siebie różnią. WebRTC z uwagi na swoją konstrukcję świetnie nadaje się do obsługi wideokonferencji z ograniczoną liczbą osób. Wówczas dzięki trybowi P2P i protokołowi UDP można uzyskać świetnie rezultaty. Niestety w przypadku, gdy musimy dostarczyć transmisje do dziesiątek tysięcy widzów ten model nie zdaje już egzaminu. Tutaj z kolei najlepszym rozwiązaniem będzie protokół Storm, który został konkretnie do tego zadania zaprojektowany.

Kiedy mała latencja jest szczególnie ważna?
Wiadomo: nikt nie lubi dużego opóźnienia. Niemniej, możliwie mała latencja transmisji sygnału ma szczególne znaczenie w kilku tylko przypadkach. Rzadko kiedy istotne znaczenie ma dla widza to, czy podczas koncertu strumieniowanego na żywo dowie się po 20, czy po 36 sekundach, że wokalistka zafałszowała czy że jego ulubiony zespół w końcu wszedł na scenę.
Mała latencja ma szczególne znaczenie głównie w zastosowaniach biznesowych i profesjonalnych, które wymagają interaktywności. Idealnym przykładem mogą być wideokonferencje w czasie rzeczywistym, sterowanie urządzeniami zdalnymi czy strumieniowanie treści interaktywnych. Niewielkie opóźnienie będzie również kluczowe podczas strumieniowania płatnych treści wideo na żywo.
Kto potrzebuje małej latencji w strumieniowaniu na żywo?
Nie każda aplikacja wymaga małego opóźnienia podczas strumieniowania wideo na żywo. Wśród najczęstszych zastosowań przesyłania strumieniowego z małą latencją należy wymienić: czat wideo, systemy zakładów i licytacji czy streaming gier wideo.
Czat wideo
Żeby móc komfortowo rozmawiać w trakcie wideokonferencji, konieczne jest odpowiednio małe opóźnienie transmisji sygnału wideo. Na pewno nie raz widziałeś w TV, gdy reporter rozmawiał z wysłannikiem stacji telewizyjnej będącym w terenie. Z pewnością zwróciłeś uwagę na długie przerwy w dialogu. Wynikały one właśnie ze zbyt długiego opóźnienia transmisyjnego.
Dlatego też, aby zapewnić rozmówcom odpowiedni komfort rozmowy podczas czatu wideo, latencja nie powinna przekraczać ok. 500 milisekund. Takie opóźnienie pozwala na płynną rozmowę bez niezręcznych przerw.
Streaming gier wideo
Gry wideo – zwłaszcza te rozgrywane w ligach – to niezwykle dynamiczne i szalenie ekscytujące zajęcie. Transmitowany obraz wideo musi być pozbawiony opóźnień. Inaczej gracz będzie – dajmy na to – strzelał do wrogów, których już dawno nie ma w danym miejscu, czy wskoczy na platformę, która odjechała pół sekundy temu. W przypadku streamowanych gier opóźnienie nie powinno być większe niż 100 milisekund. Zapewni to graczom odpowiedni komfort rozgrywki bez ryzyka pojawiania się lagów.
System zakładów i licytacji
Aukcje, licytacje czy zakłady to wyjątkowo ekscytujące zajęcie, w którym nierzadko liczą się pojedyncze milisekundy (zwłaszcza dla zaangażowanych licytujących). Prędkość licytacji i stawianych zakładów ma kluczowe znaczenie. Dlatego też strumieniowanie sygnałów musi odbywać się w czasie rzeczywistym w obydwie strony.
Poszukujesz oprogramowania, dzięki któremu będziesz mógł strumieniować wideo z ultra niskim opóźnieniem? Sprawdź nasze rozwiązania do streamowania wideo i wybierz odpowiednie do swoich potrzeb!