Pe scurt: folosește RTMP când encoderul trebuie să publice la un endpoint de ingestie, WebRTC când interacțiunea cu spectatorul și comunicarea în timp real îl justifică și HLS când ai ales livrarea către public prin HTTP. Un serviciu live folosește adesea mai mult de unul; numele protocoalelor descriu etape diferite ale traseului.
Alege pornind de la spectator către sursă
| Întrebare | WebRTC | HLS | RTMP |
|---|---|---|---|
| Receptor principal | Participant interactiv într-un browser sau o aplicație, ori serviciu media | Player și cale de livrare compatibile cu HTTP | Server de ingestie sau endpoint de platformă |
| Model de transport și livrare | Sesiune media în timp real negociată între participanți | Listă de redare și segmente media preluate prin HTTP | Sesiune persistentă de publicare prin TCP |
| Rolul browserului | Proiectat pentru API-urile media în timp real din browser | Livrat printr-un player; suportul diferă între platforme | Nu oferă redare nativă în browsere moderne |
| Verificarea codecului | Confirmă suportul browserului, serviciului și negocierii | Confirmă compatibilitatea playerului, împachetării și variantei media | Confirmă compatibilitatea encoderului cu endpointul de ingestie |
| Verificarea rețelei | Semnalizare, ICE/STUN/TURN și condiții de firewall | Server de origine, cache sau CDN și comportamentul cererilor playerului | Accesibilitatea gazdei și portului de ingestie atribuite |
| Potrivit când | Interacțiunea face parte din cerințele produsului | Sarcina este livrarea către public | Un encoder trebuie să predea fluxul unui receptor de ingestie |
Ce testezi mai întâi
| Alegerea fluxului de lucru | Endpoint de testat | Prima verificare de acceptanță |
|---|---|---|
| Contribuție sau public interactiv: WebRTC | Un endpoint configurat pentru spectator sau sesiune WebRTC | Semnalizarea și conectivitatea ICE/TURN, apoi sunetul și imaginea programului |
| Redare în browser pentru public larg: HLS | https://example.invalid/live/master.m3u8 | Preluarea manifestului și varianta media dorită în player |
| Ingestie din encoder către platformă: RTMP | rtmp://example.invalid/app împreună cu cheia atribuită | Starea emițătorului, apoi ieșirea HLS sau WebRTC selectată explicit |
Acestea sunt forme de endpointuri, nu adrese alocate de Callaba. Pentru modelele de livrare, consultă WebRTC W3C, HLS IETF și specificația RTMP.
Decizie rapidă: alege protocolul după sarcină
Pentru contribuție interactivă sau participarea publicului, testează semnalizarea WebRTC și ICE/TURN înainte să îl alegi. Pentru redare în browser către public larg, testează manifestul HLS și playerul. Pentru ingestie din encoder către platformă, testează RTMP la endpointul atribuit, apoi selectează și testează ieșirea HLS sau WebRTC din etapa următoare.
Dacă întrebarea este cum primesc spectatorii programul în browser, pornește de la WebRTC sau HLS și de la cerințele lor pentru player, acces și livrare. Dacă întrebarea este cum transmite acest encoder către platformă, pornește de la cerințele de ingestie RTMP ale platformei. RTMP poate alimenta o etapă HLS sau WebRTC ulterioară, dar nu creează acea etapă de la sine.
Comparații care induc în eroare
WebRTC comparat cu HLS
Aceasta este o decizie de livrare. WebRTC necesită o cale de sesiune în timp real; HLS necesită livrarea listelor de redare și a segmentelor, plus un player compatibil. Testează endpointul exact al publicului și modelul său de acces, nu doar fluxul sursei.
RTMP comparat cu WebRTC
Aceste protocoale ocupă frecvent capete diferite ale fluxului de lucru: RTMP pentru ingestia din encoder, WebRTC pentru livrarea interactivă. Legătura dintre ele este o funcție configurată a unui server sau serviciu media, cu propriile codecuri, semnalizare și operațiuni, nu o proprietate a vreunuia dintre URL-uri.
HLS comparat cu RTMP
HLS împachetează materialul pentru livrare prin HTTP; RTMP îl publică către un receptor de ingestie. Un spectator care nu poate deschide un URL RTMP are nevoie de calea de ieșire HLS sau WebRTC aleasă, nu de alt browser.
Un flux de lucru mixt
Encoderul programului poate publica RTMP către o resursă de ingestie cu acces controlat. Operatorul confirmă activitatea sursei, apoi configurează o ieșire separată pentru public: HLS pentru un player HTTP sau WebRTC pentru interacțiune. Validează fiecare etapă în ordine: encoder către ingestie, procesare și crearea ieșirii, apoi URL-ul real al spectatorului.
Lista de verificare înainte de producție
- Notează codecul sursei, frecvența cadrelor, sunetul și constrângerile receptorului țintă.
- Desemnează un responsabil pentru datele de publicare, semnalizare și acces, precum și testarea playerului.
- Folosește un public privat pentru repetiție și testează recuperarea după oprirea sursei.
- Leagă afirmațiile despre redarea directă în browser de ieșirea configurată, niciodată de URL-ul sursei RTMP.
Alege pasul următor
Pentru ingestia din encoder și accesul emițătorului și receptorului, consultă RTMP Server. Un URL de publicare RTMP poate folosi aceeași aplicație și același nume de flux ca URL-ul receptorului, însă emițătorul și receptorul au în continuare roluri diferite. Pentru ieșirea în browser, pornește de la ghidul Web Player; pentru împachetare, vezi RTMP către HLS. Dacă fluxul de lucru folosește contribuție SRT, nu publicare RTMP, pagina potrivită este SRT Server.