Przejdź do treści
Callaba

RTMP do HLS: od nadawcy do odtwarzania w przeglądarce

Na tej stronie

RTMP-do-HLS to przekazanie z ingestu po stronie enkodera do odtwarzania opartego na HTTP. Najpierw odbierz i zweryfikuj nadawcę RTMP; następnie spakuj lub transkoduj go dla HLS; potem przetestuj playlistę i punkt końcowy odtwarzacza, którego rzeczywiście używa widz. Samo połączenie RTMP nie jest odtwarzaniem w przeglądarce.

Ścieżka RTMP do HLS

Minimalnie ścieżka wygląda tak: źródło → listener RTMP → przetwarzanie lub pakietowanie mediów → playlista i segmenty HLS → odtwarzacz. Każdy etap może być zdrowy, gdy późniejszy już nie jest. Dlatego operator powinien trzymać dowód ingestu i dowód dla widza jako osobne kontrole.

Zdecyduj, czy media można kopiować

Pakietowanie bez transkodowania wideo może być możliwe tylko wtedy, gdy przychodzące kodeki, audio, znaczniki czasu, kadencja klatek kluczowych i kontrakt pakietowania pasują do docelowej ścieżki HLS. Gdy nie pasują, transkoduj świadomie i udokumentuj drabinkę wyjściową. Nie nazywaj tego uniwersalną ścieżką kopiowania bez sprawdzenia skonfigurowanego wyjścia.

Waliduj po kolei

  1. Opublikuj znane źródło RTMP i potwierdź, że listener zgłasza aktywność oraz użyteczne media.
  2. Otwórz wygenerowany URL playlisty HLS i potwierdź aktualizację podczas transmisji źródła.
  3. Sprawdź, czy wymienione segmenty może pobrać docelowe środowisko odtwarzacza.
  4. Odsłuchaj audio, obejrzyj wideo i zmierz rzeczywiste opóźnienie widza dla wdrożonej ścieżki.
  5. Zatrzymaj i uruchom ponownie nadawcę; potwierdź, że playlista i odtwarzacz wracają zgodnie z planem operacyjnym.

Klatki kluczowe, segmenty i opóźnienie

HLS grupuje media w segmenty, do których odwołuje się playlista. Omówienie HLS firmy Apple i RFC 8216 opisują model dostarczania playlisty i segmentów. Czas segmentu, klatki kluczowe enkodera, buforowanie odtwarzacza, zachowanie origin i konfiguracja CDN wpływają na opóźnienie widza. Zmniejszenie jednego bufora nie ustala wyniku opóźnienia dla całej ścieżki; zmierz ścieżkę, którą zamierzasz obsługiwać.

Gdy RTMP działa, ale HLS zawodzi

Zaobserwowany wynikNastępna kontrola
Nadawca aktywny, brak playlistySprawdź zadanie RTMP-do-HLS i konfigurację jego wyjścia.
Playlista się ładuje, odtwarzacz się zatrzymujeSprawdź dostarczanie segmentów, błędy odtwarzacza, zgodność kodeków i zasady dostępu.
Odtwarzanie zaczyna się późnoZmierz bufory enkodera, pakietowania, playlisty, odtwarzacza i dostarczania przed zmianą ustawienia.

Callaba może odbierać skonfigurowane źródło RTMP i przekazywać je do wybranego przepływu dalszej ścieżki. Listener nie jest publicznym odtwarzaczem przeglądarkowym. Do diagnozy przeglądarki użyj odtwarzacza RTMP i odtwarzania w przeglądarce; do konfiguracji ingestu użyj RTMP Server.

Powiązana konfiguracja

Użyj przewodnika operatora RTMP Server, aby potwierdzić ingest, a następnie przejrzyj dokumentację Web Player dla modułu po stronie widza. Zachowaj przewodnik po protokole RTMP dla pytania o transport po stronie źródła.

Lokalna diagnostyka: pakietowanie HLS przez FFmpeg

Command
mkdir -p hls-out && ffmpeg -re -i input.mp4 -c:v libx264 -pix_fmt yuv420p -g 60 -c:a aac -f hls -hls_time 2 -hls_list_size 6 -hls_flags delete_segments hls-out/live.m3u8

Oczekiwany wynik: live.m3u8 zmienia się podczas działania wejścia i odwołuje się do bieżących segmentów mediów w hls-out. Udostępnij ten katalog przez serwer HTTP na potrzeby testu przeglądarkowego; otwarcie ścieżki systemu plików nie jest testem origin HLS. Przy 30 fps -g 60 daje dwusekundową kadencję klatek kluczowych zgodną z przykładowym czasem segmentu. Dostosuj ją do rzeczywistej liczby klatek na sekundę.

Safari oferuje platformowe odtwarzanie HLS; wiele innych implementacji przeglądarkowych używa Media Source Extensions przez bibliotekę odtwarzacza, zamiast traktować każdy .m3u8 jako natywne źródło wideo HTML. Przetestuj rzeczywistą parę przeglądarka/odtwarzacz. Udokumentowany przepływ UI Callaba polega na utworzeniu Web Player z wybranego RTMP Server lub innego obsługiwanego wejścia, otwarciu wynikowego URL odtwarzacza oraz sprawdzeniu dostępu i odtwarzania; zobacz dokumentację Web Player.

Następne kroki

Użyj przewodnika operatora RTMP Server, aby potwierdzić ingest, a następnie przejrzyj dokumentację Web Player dla modułu po stronie widza.