RTMP do HLS je předání z příjmu pro kodér do přehrávání založeného na HTTP. Nejprve přijměte a ověřte vysílatele RTMP; poté jej zabalte nebo překódujte pro HLS; nakonec otestujte playlist a koncový bod přehrávače, který divák skutečně používá. Samotné připojení RTMP není přehrávání v prohlížeči.
Cesta RTMP do HLS
V minimální podobě je cesta zdroj → naslouchající bod RTMP → zpracování nebo balení médií → playlist a segmenty HLS → přehrávač. Každá fáze může být v pořádku, zatímco pozdější fáze ne. Operátor by proto měl důkaz o příjmu a důkaz pro diváka uchovávat jako oddělené kontroly.
Rozhodněte, zda lze média kopírovat
Balení bez překódování videa může být možné pouze tehdy, pokud příchozí kodeky, zvuk, časová razítka, kadence klíčových snímků a kontrakt balení odpovídají cílové cestě HLS. Pokud neodpovídají, překódujte záměrně a zdokumentujte výstupní sadu kvalit. Bez kontroly nakonfigurovaného výstupu tuto cestu neoznačujte za univerzální kopírování.
Ověřujte v pořadí
- Publikujte známý zdroj RTMP a potvrďte, že naslouchající bod hlásí aktivitu a použitelná média.
- Otevřete vytvořenou adresu URL playlistu HLS a potvrďte, že se během živého zdroje aktualizuje.
- Zkontrolujte, že uvedené segmenty může načíst zamýšlené prostředí přehrávače.
- Poslechněte zvuk, zkontrolujte video a změřte skutečné zpoždění diváka pro nasazenou cestu.
- Zastavte a znovu spusťte vysílatele; potvrďte, že se playlist a přehrávač obnoví podle očekávání vašeho provozního plánu.
Klíčové snímky, segmenty a zpoždění
HLS seskupuje média do segmentů, na něž odkazuje playlist. Přehled HLS od společnosti Apple a RFC 8216 popisují model doručování playlistu a segmentů. Délka segmentu, klíčové snímky kodéru, vyrovnávací paměť přehrávače, chování originu a případná konfigurace CDN přispívají ke zpoždění diváka. Snížení jedné vyrovnávací paměti neurčuje výsledek zpoždění celé cesty; změřte cestu, kterou hodláte provozovat.
Když RTMP funguje, ale HLS selže
| Pozorovaný výsledek | Další kontrola |
|---|---|
| Vysílatel aktivní, žádný playlist | Zkontrolujte úlohu RTMP do HLS a její konfiguraci výstupu. |
| Playlist se načte, přehrávač se zastaví | Zkontrolujte doručování segmentů, chyby přehrávače, kompatibilitu kodeků a zásady přístupu. |
| Přehrávání začíná pozdě | Před změnou nastavení změřte vyrovnávací paměti kodéru, balení, playlistu, přehrávače a doručování. |
Callaba může přijmout nakonfigurovaný zdroj RTMP a předat jej vybranému navazujícímu workflow. Naslouchající bod sám o sobě není veřejným přehrávačem v prohlížeči. Pro diagnostiku prohlížeče použijte přehrávač RTMP a přehrávání v prohlížeči; pro konfiguraci příjmu použijte RTMP Server.
Související konfigurace
Pro ověření příjmu použijte příručku operátora RTMP Server, potom si pro modul určený divákům přečtěte dokumentaci Web Player. Pro otázku přenosu na straně zdroje si ponechte průvodce protokolem RTMP.
Místní diagnostika: balení HLS pomocí 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
Očekávaný výsledek: live.m3u8 se během běhu vstupu mění a odkazuje na nedávné mediální segmenty v hls-out. Pro test v prohlížeči tento adresář naservírujte přes HTTP server; otevření cesty v souborovém systému není test originu HLS. Při 30 fps dává -g 60 dvousekundovou kadenci klíčových snímků sladěnou s ukázkovou délkou segmentu. Přizpůsobte ji skutečné snímkové frekvenci.
Safari podporuje HLS na úrovni platformy; mnohé jiné implementace prohlížečů používají Media Source Extensions prostřednictvím knihovny přehrávače, místo aby považovaly každý soubor .m3u8 za nativní zdroj videa HTML. Otestujte skutečnou dvojici prohlížeč/přehrávač. Zdokumentovaný postup v rozhraní Callaba je vytvořit Web Player z vybraného RTMP Server nebo jiného podporovaného vstupu, otevřít výslednou adresu URL přehrávače a ověřit přístup a přehrávání; viz dokumentace Web Player.
Další kroky
Pro ověření příjmu použijte příručku operátora RTMP Server, potom si pro modul určený divákům přečtěte dokumentaci Web Player.