Vad är RTMP?
* Syfte: RTMP designades ursprungligen av Adobe Systems för att strömma ljud, video och data via internet mellan en server och en flash -spelare.
* Hur det fungerar: RTMP är ett TCP-baserat protokoll, vilket innebär att det ger tillförlitlig, beställd leverans av data. Den använder en ihållande anslutning, vilket minskar omkostnaden jämfört med protokoll som skapar en ny anslutning för varje begäran.
* Nyckelfunktioner:
* låg latens: RTMP designades för låg latensströmning, avgörande för interaktiva applikationer.
* multiplexering: Det kan multiplexera flera strömmar (ljud, video, data) över en enda anslutning.
* handskakning: Den har en handskakningsprocess för att skapa en pålitlig anslutning.
* Publicering och uppspelning: Den definierar mekanismer för publicering av strömmar till en server (t.ex. från en kodare) och spelar strömmar från servern (t.ex. i en flash -spelare).
RTMP:s roll i livestreaming
1. intag (publicering): RTMP var * det * dominerande protokollet för att få en livestream från kodaren (t.ex. OBS -studio, Wirecast, hårdvarukodare) * till * en streamingserver eller plattform (t.ex. YouTube, Facebook Live, Twitch, Custom Streaming -servrar). Detta kallas "RTMP Ingest" eller "RTMP Publishing."
2. Distribution (uppspelning): Tidigare var RTMP också ett primärt protokoll för att * leverera * strömmen till tittarnas blixtspelare. Detta är emellertid nu till stor del föråldrat (mer om det nedan).
Varför RTMP är mindre vanligt för uppspelning idag
* Flash Player Demise: Nedgången och den eventuella slutet av livet för Adobe Flash Player är den främsta orsaken. RTMP var tätt kopplad till blixt. Moderna webbläsare och enheter stöder inte längre blixt som standard (eller alls).
* Bättre alternativ: Protokoll som HLS (HTTP Live Streaming) och DASH (Dynamic Adaptive Streaming Over HTTP) har blivit mycket mer populära för uppspelning. Dessa är HTTP-baserade, mer brandväggsvänliga och erbjuder adaptiv bitrate-strömning (justering av videokvalitet baserat på tittarens internetanslutning).
RTMP -varianter
* rtmp: Det grundläggande TCP-baserade protokollet. Använder Port 1935 som standard. Benägna att brandväggsfrågor.
* rtmps: RTMP över SSL/TLS. Krypterad version av RTMP, vilket gör den säkrare. Använder port 443, ofta samma port som används av HTTPS, vilket hjälper till med brandväggstraven.
* rtmpe: RTMP med kryptering (men inte SSL/TLS). Mindre vanligt än RTMP.
* rtmpt: RTMP tunnelade över HTTP. Används när direkta RTMP -anslutningar blockeras av brandväggar. Tyngre och mindre effektiv.
RTMP:s nuvarande användning
* intag fortfarande relevant: Trots nedgången för uppspelning används RTMP (särskilt RTMP) fortfarande allmänt för *intag *. Många strömmande plattformar och tjänster accepterar fortfarande RTMP som ett sätt att få den första liveströmmen från kodaren. Det är en väletablerad och pålitlig metod.
* Transkodning och distribution: Streamingplattformen transkoderar sedan vanligtvis * RTMP -strömmen till andra format (t.ex. HLS, DASH) för distribution till tittare över olika enheter och webbläsare.
Andra viktiga livestreaming -protokoll
* hls (http live streaming): Utvecklad av Apple. Ett HTTP-baserat adaptivt bitrate-strömningsprotokoll. Dela upp strömmen i små segment (vanligtvis 10 sekunder). Mycket allmänt stöd på iOS, Android, skrivbords webbläsare och smarta TV -apparater. De facto -standarden för uppspelning. Kan drabbas av högre latens (ofta 15-30 sekunder) jämfört med andra alternativ, men låg-latensvarianter dyker upp.
* streck (dynamisk adaptiv strömning över http): En öppen standard som liknar HLS. Även ett HTTP-baserat adaptivt bitrate-strömningsprotokoll. Mycket stöd, men HLS har i allmänhet större marknadsandel.
* webRTC (Web Realt-Time Communication): Ett protokoll för realtid peer-to-peer-kommunikation i webbläsare. Stöder mycket låg latensströmning (under sekund). Mer komplex att ställa in och skala än HLS eller DASH. Vanligtvis används för interaktiva strömmar, videokonferenser och realtidsapplikationer. Kräver en selektiv vidarebefordringsenhet (SFU) för flerpartsströmmar.
* SRT (säker pålitlig transport): Ett transportprotokoll med öppen källkod som optimerar strömningsprestanda över oförutsägbara nätverk. Fokuserar på felkorrigering och tillförlitlighet. Kan användas som ett alternativ till RTMP för intag. Allt populärare för sin robusthet.
* ndi (nätverksenhetsgränssnitt): Ett video-over-IP-protokoll utvecklat av Newtek. Används främst för professionella videoproduktionsmiljöer på lokala nätverk (LAN). Tillåter högkvalitativ, låg-latensvideor och ljudöverföring mellan enheter i samma nätverk. Inte vanligtvis används direkt för internetbaserad livestreaming, men kan användas för att få videosignalen till en RTMP-kodare.
* CMAF (Common Media Application Format): Ett containerformat utformat för att minska komplexiteten i leverans av media genom att standardisera video- och ljudkodning, segmentering och kryptering över olika strömningsprotokoll som HLS och DASH. Det gör det möjligt att använda en enda uppsättning kodade mediefiler för både HLS och DASH, förenkla arbetsflöden och minska lagringsbehovet.
Nyckelöverväganden När du väljer ett protokoll
* latens: Hur snabbt behöver strömmen för att nå tittaren? (WebRTC är lägst, sedan SRT, sedan RTMP, sedan HLS/DASH generellt)
* skalbarhet: Hur många tittare kommer du att ha? (HLS/DASH är bäst för stora målgrupper)
* Kompatibilitet: Vilka enheter och webbläsare behöver du stödja? (HLS/DASH stöds mycket allmänt))
* Pålitlighet: Hur viktigt är det att strömmen inte tappar eller har fel? (SRT är designad för opålitliga nätverk)
* Säkerhet: Behövs kryptering? (RTMP:er ger kryptering)
* Brandväggens vänlighet: (HTTP-baserade protokoll som HLS och DASH är i allmänhet de mest brandväggsvänliga)
* Komplexitet: Hur lätt är protokollet att ställa in och hantera? (RTMP är relativt enkelt för intag, HLS/DASH har mer mogna ekosystem)
* bitrate: Streaming Video Bitrates är nyckeln till videokvalitet. Lägre bitrate skapar pixelering och minskar videokvaliteten. Högre bitrater kan öka latensen och är svårare att strömma över trådlöst.
Sammanfattningsvis:
* RTMP är fortfarande relevant för * intag * (få strömmen till servern).
* HLS och DASH är de dominerande protokollen för * uppspelning * (levererar strömmen till tittarna).
* WebRTC används för mycket låg-latens, interaktiva strömmar.
* SRT tillhandahåller tillförlitlig strömning över opålitliga nätverk.
* Välj rätt protokoll baserat på dina specifika behov.
Det är också värt att notera att landskapet ständigt utvecklas, med nya protokoll och teknik som dyker upp. Håll dig uppdaterad med den senaste utvecklingen inom livestreaming för att fatta välgrundade beslut.