Tekniskt ·

RTMP förklarat: protokollet bakom varje livestream

RTMP förklarat: protokollet bakom varje livestream

Viktigast att veta

  • RTMP (Real-Time Messaging Protocol) är anslutningsformatet som bär video-/ljuddata från en streamingkälla till en plattform som YouTube.
  • En "streamnyckel" är egentligen bara ett lösenord som läggs till en RTMP-URL — tillsammans talar de om för YouTube vilken kanals sändning datan tillhör.
  • Du behöver inte förstå RTMP för att använda det — men att veta vad det är gör felsökning av en död ström mycket mindre förvirrande.

Om du någonsin har letat efter din YouTube-streamnyckel har du sett RTMP nämnas precis bredvid den — vanligtvis som en "RTMP-URL" du blir ombedd att klistra in i OBS eller ett annat streamingverktyg tillsammans med själva nyckeln. Det är lätt att behandla båda som magiska strängar du kopierar och klistrar in utan att veta vad de gör. Här är versionen på ren svenska.

Vad RTMP faktiskt är

RTMP står för Real-Time Messaging Protocol. Det är ett sätt att paketera video- och ljuddata och skicka det, kontinuerligt, från en plats till en annan med väldigt låg fördröjning — precis vad en livestream behöver. Det byggdes ursprungligen av Macromedia (senare Adobe) för Flash-video, men har levt kvar långt efter Flash eftersom det är enkelt, pålitligt, och varje stor plattform — YouTube, Twitch, Facebook Live — fortfarande accepterar det som inmatningsformat.

Tänk på det mindre som en fil som laddas upp och mer som ett telefonsamtal: när anslutningen väl öppnas flödar data kontinuerligt i en riktning (från din encoder till YouTubes servrar) tills endera sidan lägger på.

Var streamnyckeln kommer in

En RTMP-anslutning behöver två saker för att veta vart datan ska: en server-URL (något i stil med rtmp://a.rtmp.youtube.com/live2) och en streamnyckel — en lång, unik sträng som i praktiken är ett lösenord som identifierar vilken kanals sändning det är. YouTube använder streamnyckeln för att dirigera din video till rätt plats och, på ett anslutet YouTube-konto, till den specifika sändning du har satt upp.

Det är därför en streamnyckel är känslig: vem som helst som har den kan sända till din kanals live-slot. Det är också därför en tjänst aldrig ska visa den för dig igen efter att du sparat den — bara låta dig byta ut den mot en ny.

Varför strömmar misslyckas i RTMP-lagret

De flesta "min ström vill inte starta"-problem går tillbaka till ett av några RTMP-lagerproblem:

  • Fel eller utgången streamnyckel — YouTube genererar en ny nyckel om du återställer streaminställningarna; en gammal, cachad nyckel ansluter ingenstans.
  • Instabilt nätverk — RTMP håller en kontinuerlig anslutning öppen; en ostadig anslutning gör att encodern fortsätter återansluta, vilket YouTube visar som en ström som ständigt startar och stannar.
  • Felmatchade encoderinställningar — bitrate-, upplösnings- eller keyframe-intervallinställningar som inte matchar vad YouTube förväntar sig för inmatning kan göra att en anslutning accepteras men videon aldrig faktiskt visas som live.

En molnbaserad streamingtjänst som Loopcast tar bort de flesta av dessa felkällor på sändarsidan — anslutningen körs från stabil serverinfrastruktur istället för en hemmainternetanslutning, och video normaliseras i förväg till ett konsekvent format innan den någonsin skickas över RTMP, så encoder-missmatchningar inträffar aldrig mitt i en sändning.

Varför samma protokoll fungerar på fler än en plattform

Eftersom RTMP är en delad standard snarare än något YouTube byggde och äger är mönstret med server-URL och streamnyckel ovan identiskt på Twitch, Facebook Live och Kick — bara den faktiska adressen och nyckeln skiljer sig. Det är hela anledningen till att Loopcasts manuella streamnyckelfält kan peka på mer än YouTube nu: själva reläet brydde sig aldrig om vilken plattform som fanns på andra sidan av RTMP-anslutningen, det behövde bara ett konfigurerbart mål istället för ett hårdkodat. Instagram och TikTok är undantaget — de publicerar inte en självbetjänings-RTMP-URL/nyckel så som de andra gör, så det finns inget att klistra in även om själva protokollet skulle fungera fint.

Behöver du veta något av det här för att strömma?

Nej. Det här är helt valfri bakgrundskunskap — du kan köra en 24/7 YouTube-ström i flera år utan att någonsin tänka på RTMP igen när den väl är inställd. Det är användbart exakt en gång: när något går sönder och du försöker ta reda på om problemet är din streamnyckel, din anslutning eller dina encoderinställningar.

Vanliga frågor

Är RTMP säkert?

Standard-RTMP är inte krypterat, även om de flesta plattformar (inklusive YouTube) stödjer RTMPS, en krypterad variant, för själva inmatningsanslutningen. Oavsett vilket fungerar själva streamnyckeln som den verkliga säkerhetsgränsen — håll den privat.

Kan jag använda samma streamnyckel i två olika streamingverktyg samtidigt?

Nej — en streamnyckel kan bara ta emot data aktivt från en källa åt gången. Att använda den på två ställen samtidigt gör att en anslutning misslyckas eller att strömmen flimrar mellan källor.

Varför ser min streamnyckel olika ut varje gång jag kollar YouTube Studio?

YouTube kan utfärda en ny streamnyckel om du återställer dina livestreaminställningar eller om en nyckel flaggas som komprometterad. Om din nyckel ändrades oväntat, klistra in den aktuella igen från YouTube Studio → Go Live → Stream var du än har den sparad.

Använder varje plattform exakt samma RTMP-URL?

Nej — varje plattform har sin egen inmatningsadress (YouTubes är rtmp://a.rtmp.youtube.com/live2, Twitchs är rtmp://live.twitch.tv/app, och så vidare), även om de alla talar samma RTMP-protokoll. Det är därför en streamnyckel från en plattform är meningslös att klistra in mot en annan plattforms URL — protokollet stämmer, men adressen och nyckeln är båda plattformsspecifika.