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
- Opublikuj znane źródło RTMP i potwierdź, że listener zgłasza aktywność oraz użyteczne media.
- Otwórz wygenerowany URL playlisty HLS i potwierdź aktualizację podczas transmisji źródła.
- Sprawdź, czy wymienione segmenty może pobrać docelowe środowisko odtwarzacza.
- Odsłuchaj audio, obejrzyj wideo i zmierz rzeczywiste opóźnienie widza dla wdrożonej ścieżki.
- 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 wynik | Następna kontrola |
|---|---|
| Nadawca aktywny, brak playlisty | Sprawdź zadanie RTMP-do-HLS i konfigurację jego wyjścia. |
| Playlista się ładuje, odtwarzacz się zatrzymuje | Sprawdź dostarczanie segmentów, błędy odtwarzacza, zgodność kodeków i zasady dostępu. |
| Odtwarzanie zaczyna się późno | Zmierz 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
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.