RTMP-la-HLS este o predare de la ingestia pentru encodere la redarea bazată pe HTTP. Mai întâi primiți și verificați publicatorul RTMP; apoi îl împachetați sau îl transcodificați pentru HLS; în final testați endpointul de playlist și player pe care îl folosește efectiv un spectator. O conexiune RTMP singură nu înseamnă redare în browser.
Calea RTMP-la-HLS
Cel puțin, calea este sursă → listener RTMP → procesare sau împachetare media → playlist și segmente HLS → player. Fiecare etapă poate fi sănătoasă, în timp ce una ulterioară nu este. Din acest motiv, un operator ar trebui să păstreze dovada ingestiei și dovada pentru spectator ca verificări separate.
Decideți dacă media poate fi copiată
Împachetarea poate fi posibilă fără transcodificare video numai atunci când codec-urile de intrare, audio-ul, marcajele temporale, cadența keyframe-urilor și contractul de împachetare se potrivesc cu calea HLS țintă. Dacă nu se potrivesc, transcodificați deliberat și documentați scara de ieșire. Nu prezentați aceasta drept o cale de copiere universală fără să verificați ieșirea configurată.
Validați în ordine
- Publicați o sursă RTMP cunoscută și confirmați că listenerul raportează activitate și media utilizabilă.
- Deschideți URL-ul playlistului HLS generat și confirmați că se actualizează cât timp sursa este live.
- Verificați că segmentele enumerate pot fi preluate de mediul playerului vizat.
- Ascultați audio-ul, inspectați video-ul și măsurați întârzierea reală pentru spectator pe calea implementată.
- Opriți și reporniți publicatorul; confirmați că playlistul și playerul se recuperează conform planului operațional.
Keyframe-uri, segmente și latență
HLS grupează media în segmente la care face referire un playlist. Prezentarea HLS de la Apple și RFC 8216 descriu modelul de livrare cu playlisturi și segmente. Durata segmentelor, keyframe-urile encoderului, bufferizarea playerului, comportamentul originului și orice configurare CDN contribuie toate la întârzierea spectatorului. Reducerea unui singur buffer nu stabilește un rezultat de latență pentru întreaga cale; măsurați calea pe care intenționați să o operați.
Când RTMP este sănătos, dar HLS eșuează
| Rezultat observat | Următoarea verificare |
|---|---|
| Publicator activ, fără playlist | Inspectați sarcina RTMP-la-HLS și configurarea sa de ieșire. |
| Playlistul se încarcă, playerul se blochează | Verificați livrarea segmentelor, erorile playerului, compatibilitatea codec-urilor și politica de acces. |
| Redarea începe târziu | Măsurați bufferele encoderului, împachetării, playlistului, playerului și livrării înainte de a modifica o setare. |
Callaba poate primi o sursă RTMP configurată și o poate preda fluxului de lucru selectat din aval. Listenerul nu este el însuși un player public de browser. Pentru diagnosticarea browserului, folosiți playerul RTMP și redarea în browser; pentru configurarea ingestiei, folosiți RTMP Server.
Configurare asociată
Folosiți ghidul operatorului pentru RTMP Server pentru a demonstra ingestia, apoi consultați documentația Web Player pentru modulul orientat spre spectator. Păstrați ghidul protocolului RTMP pentru problema transportului de la sursă.
Diagnostic local: împachetați HLS cu 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
Rezultat așteptat: live.m3u8 se modifică pe măsură ce rulează intrarea și face referire la segmente media recente din hls-out. Serviți acel director printr-un server HTTP pentru un test în browser; deschiderea unei căi din sistemul de fișiere nu este un test de origin HLS. La 30 fps, -g 60 oferă o cadență a keyframe-urilor de două secunde, aliniată cu durata de segment din exemplu. Ajustați-o în funcție de rata de cadre reală.
Safari are redare HLS la nivel de platformă; multe alte implementări de browser folosesc Media Source Extensions printr-o bibliotecă de player, în loc să trateze fiecare .m3u8 drept sursă video HTML nativă. Testați perechea reală browser/player. Fluxul UI documentat de Callaba este să creați un Web Player din RTMP Server-ul selectat sau din altă intrare acceptată, să deschideți URL-ul playerului rezultat și să verificați accesul și redarea; consultați documentația Web Player.
Pașii următori
Folosiți ghidul operatorului pentru RTMP Server pentru a demonstra ingestia, apoi consultați documentația Web Player pentru modulul orientat spre spectator.