Przejdź do treści
Callaba

WebRTC vs HLS vs RTMP dla wideo na żywo

Na tej stronie

Krótka odpowiedź: użyj RTMP, gdy koder ma publikować do punktu ingestu, WebRTC, gdy interakcja widza i ścieżka czasu rzeczywistego to uzasadniają, oraz HLS, gdy wybraną ścieżką jest dostarczanie odbiorcom przez HTTP. Usługa na żywo często używa więcej niż jednego protokołu; ich nazwy opisują różne granice.

Wybieraj od widza wstecz do źródła

PytanieWebRTCHLSRTMP
Główny odbiornikInteraktywny partner przeglądarki/aplikacji lub usługa mediówOdtwarzacz obsługujący HTTP i ścieżka dostarczaniaSerwer ingestu lub punkt końcowy platformy
Model transportu/dostarczaniaSesja mediów w czasie rzeczywistym negocjowana dla partnerówLista odtwarzania oraz segmenty mediów pobierane przez HTTPTrwała sesja publikacji TCP
Rola przeglądarkiZaprojektowany dla API mediów czasu rzeczywistego w przeglądarceDostarczany przez ścieżkę odtwarzacza; obsługa platform zależy od środowiskaNie jest natywnym odtwarzaniem we współczesnej przeglądarce
Kontrola kodekaPotwierdź obsługę przez przeglądarkę, usługę i negocjacjęPotwierdź zgodność odtwarzacza, pakowania i wariantuPotwierdź zgodność kodera i punktu ingestu
Kontrola sieciWarunki sygnalizowania, ICE/STUN/TURN i zaporyZachowanie originu, cache/CDN i żądań odtwarzaczaOsiągalność przypisanego hosta i portu ingestu
Pasuje, gdyInterakcja jest częścią wymagania produktuDostarczanie odbiorcom jest zadaniemKoder ma przekazać kanał odbiornikowi ingestu

Co testować najpierw

Wybór procesuPunkt końcowy do testuPierwsza kontrola odbioru
Interaktywna kontrybucja lub odbiorcy: WebRTCSkonfigurowany punkt końcowy widza/sesji WebRTCSygnalizowanie i łączność ICE/TURN, potem audio/wideo programu
Szerokie odtwarzanie w przeglądarce: HLShttps://example.invalid/live/master.m3u8Pobranie manifestu i zamierzony wariant odtwarzacza
Ingest kodera/platformy: RTMPrtmp://example.invalid/app plus przypisany kluczStan nadawcy, potem jawnie wybrane wyjście HLS lub WebRTC

To formy punktów końcowych, a nie adresy udostępniane przez Callaba. Dla bazowych modeli dostarczania zobacz W3C WebRTC, IETF HLS oraz specyfikację RTMP.

Szybka decyzja: wybierz protokół według zadania

Dla interaktywnej kontrybucji lub uczestnictwa odbiorców przetestuj sygnalizowanie WebRTC i ICE/TURN przed wyborem. Dla szerokiego odtwarzania w przeglądarce przetestuj manifest HLS i odtwarzacz. Dla ingestu z kodera na platformę przetestuj RTMP w przypisanym punkcie końcowym, a następnie wybierz i przetestuj wyjście HLS lub WebRTC.

Jeśli pytanie brzmi „jak widzowie odbierają program w przeglądarce?”, zacznij od WebRTC lub HLS oraz ich wymagań dotyczących odtwarzacza, dostępu i dostarczania. Jeśli brzmi „jak ten koder publikuje na platformę?”, zacznij od kontraktu ingestu RTMP platformy. RTMP może zasilić późniejszy etap HLS lub WebRTC, ale sam go nie tworzy.

Częste fałszywe porównania

WebRTC vs HLS

To decyzja o dostarczaniu. WebRTC potrzebuje ścieżki sesji czasu rzeczywistego; HLS potrzebuje dostarczania listy odtwarzania/segmentów i zgodnego odtwarzacza. Przetestuj dokładny punkt końcowy odbiorców i jego model dostępu, a nie tylko kanał źródłowy.

RTMP vs WebRTC

Protokoły te zwykle zajmują różne końce procesu: RTMP jako ingest kodera, WebRTC jako interaktywne dostarczanie. Most jest skonfigurowaną funkcją serwera mediów lub usługi z własnymi kodekami, sygnalizowaniem i operacjami — nie właściwością żadnego URL.

HLS vs RTMP

HLS pakuje media do dostarczania przez HTTP; RTMP publikuje media do odbiornika ingestu. Widz, który nie może otworzyć URL RTMP, potrzebuje wybranej ścieżki wyjściowej HLS lub WebRTC, a nie innej przeglądarki.

Mieszany proces

Koder programu może publikować RTMP do kontrolowanego zasobu ingestu. Operator potwierdza aktywność źródła, a następnie konfiguruje osobne wyjście dostarczania odbiorcom — HLS dla procesu odtwarzacza HTTP lub WebRTC dla ścieżki interakcji. Waliduj każdą granicę kolejno: koder do ingestu, utworzenie przetwarzania/wyjścia, a potem rzeczywisty URL widza.

Lista kontroli protokołów przed produkcją

  • Zapisz kodek źródła, liczbę klatek, audio i ograniczenia docelowego odbiornika.
  • Przypisz właściciela poświadczeniom publikacji, sygnalizowaniu/dostępowi i testom odtwarzacza.
  • Użyj prywatnej widowni próbnej i przetestuj odzyskiwanie po zatrzymaniu źródła.
  • Wiąż twierdzenia o bezpośrednim odtwarzaniu w przeglądarce ze skonfigurowanym wyjściem, nigdy z URL źródła RTMP.

Wybierz następny krok

Dla ingestu kodera oraz dostępu nadawcy/odbiornika zobacz RTMP Server. URL publikacji RTMP może używać tej samej aplikacji i nazwy strumienia co URL odbiornika, ale nadawca i odbiornik wciąż mają różne role. Dla wyjścia przeglądarkowego zacznij od wskazówek Web Player; dla intencji pakowania zobacz RTMP do HLS. Jeśli procesem jest kontrybucja SRT zamiast publikacji RTMP, właściwym właścicielem jest SRT Server.