Strömningssystem i realtid (WebRTC + live-data) · Lektion

SDP: Session Description Protocol

Lär er hur SDP beskriver medieformat, codec och nätverksinformation som utbyts mellan peers för att förhandla fram en anslutning.

Lektion 2 av 412 steg

SDP: Session Description Protocol är en gratis lektion i Strömningssystem i realtid (WebRTC + live-data) på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Strömningssystem i realtid (WebRTC + live-data), och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Strömningssystem i realtid (WebRTC + live-data) innehåller totalt 4 lektioner.

Vad är SDP?

SDP står för Session Description Protocol. Det är ett textbaserat format som används i WebRTC för att beskriva funktioner och parametrar för en mediesession.

Tänk på det som en ritning över vilken typ av ljud, video och data en peer vill skicka eller ta emot samt hur den kan nås.

SDP:s roll i WebRTC

Innan två WebRTC-peers kan skicka data direkt behöver de komma överens om många saker:

  • Vilka medietyper (ljud, video och data) de har stöd för.
  • Vilka codec ska användas (till exempel Opus för ljud och VP8 för video).
  • Deras nätverksadresser och anslutningsmetoder.

SDP är standardsättet att utbyta denna viktiga information.

SDP i erbjudande och svar

WebRTC använder en modell med ”erbjudande och svar” för förhandling. En peer skapar ett SDP Offer som beskriver dess funktioner. Den andra peeren tar emot det och skapar ett SDP Answer som anger dess egna funktioner och samtycke.

Detta utbyte sker via en signaleringsserver, som vi tog upp i den föregående lektionen.

SDP-meddelandets struktur

Ett SDP-meddelande består av rader där varje rad börjar med en enda liten bokstav följd av ett likhetstecken (=). Raderna grupperas i en sessionsbeskrivning och en eller flera mediebeskrivningar.

Vanliga rader är: v=, o=, s=, t=, c=, m= och a=.

SDP: version och ursprung

Varje SDP-meddelande börjar med en versionsrad och en ursprungsrad:

  • v=0: Anger SDP-protokollets version. Alltid 0 för WebRTC.
  • o= IN IP4
    : Beskriver sessionens ursprung och identifierare.

<sess-id> och <sess-version> är unika nummer, och <address> är vanligtvis 127.0.0.1 vid lokal generering.

SDP: Sessionsnamn och tid

Därefter hittar vi sessionens namn och tidsbeskrivning:

  • s=-: Sessionsnamnet. Ofta bara ett bindestreck för WebRTC.
  • t=0 0: Sessionens aktiva tid. 0 0 betyder permanent/alltid aktiv för WebRTC.

De här raderna ger grundläggande sammanhang för hela sessionen.

SDP: Anslutningsdata

Raden c= innehåller anslutningsdata, specifikt IP-adressen för sessionen. I WebRTC anges den ofta som 0.0.0.0 eller 127.0.0.1, eftersom de faktiska adresserna för peer-to-peer-anslutningen förhandlas senare via ICE-kandidater.

Exempel: c=IN IP4 0.0.0.0

SDP: Mediebeskrivningar (`m=`)

Raden m= är avgörande! Den beskriver en specifik medieström (ljud, video eller datakanal). En SDP kan innehålla flera m=-rader.

Format: m=

  • <media>: audio, video eller application (för datakanaler).
  • <port>: Portnumret (ofta 9 för WebRTC, den faktiska porten kommer från ICE).
  • <protocol>: Till exempel UDP/TLS/RTP/SAVPF.
  • <fmt list>: En lista över payload-typer eller codecs som stöds.

SDP: Attribut (`a=`)

Rader med a= innehåller ytterligare attribut för sessionen eller en specifik medieström. De är mycket flexibla och innehåller mycket WebRTC-specifik information.

  • a=rtpmap: /: Kopplar payload-typer till codecs.
  • a=fingerprint:...: Fingeravtryck för TLS-certifikatet.
  • a=sendrecv, a=sendonly, a=recvonly: Medieriktning.
  • a=ice-ufrag, a=ice-pwd: Används för ICE-anslutningskontroller.

Se en förenklad SDP

Här är ett förenklat exempel på hur ett SDP-erbjudande kan se ut. Lägg märke till de olika raderna och deras roller när sessionen och mediefunktionerna beskrivs.

Prova att köra det för att se den råa SDP-texten!

function main() {
  const sdpExample = `v=0
o=- 3749449080 3749449080 IN IP4 127.0.0.1
s=-
t=0 0
c=IN IP4 0.0.0.0
m=audio 9 UDP/TLS/RTP/SAVPF 111
a=rtpmap:111 opus/48000/2
a=mid:audio
a=sendrecv
a=ice-ufrag:abcdefg
a=ice-pwd:hijklmn
a=fingerprint:sha-256 A1:B2:C3:D4:E5:F6:A7:B8:C9:D0:E1:F2:A3:B4:C5:D6:E7:F8:A9:B0:C1:D2:E3:F4:A5:B6:C7:D8
`;
  console.log("Simplified SDP Offer:");
  console.log(sdpExample);
}

main();

Snabb kontroll av SDP

Vilken SDP-rad beskriver främst medietypen (ljud, video eller data), den tillhörande porten, transportprotokollet och de format som stöds?

Sammanfattning: Grunderna i SDP

Bra jobbat! Ni har lärt er om SDP, Session Description Protocol, som är grundläggande för WebRTC.

  • SDP är ett textformat för att beskriva medie- och nätverksfunktioner.
  • Det används i Offer/Answer-modellen för att förhandla fram anslutningar.
  • Viktiga rader är v=, o=, s=, t=, c=, m= och a=.
  • Raden m= beskriver medier, och rader med a= innehåller omfattande attribut.

Nu ska vi gå igenom ICE-kandidater, som hjälper peers att hitta den bästa nätverksvägen!

Gratis att börja

Lär dig Strömningssystem i realtid (WebRTC + live-data) med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
12
Lektioner
48

Vanliga frågor

Är lektionen ”SDP: Session Description Protocol” gratis?

Ja – hela texten till ”SDP: Session Description Protocol” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Strömningssystem i realtid (WebRTC + live-data), kan Ni uppgradera till CoddyKit PRO. Kursen i Strömningssystem i realtid (WebRTC + live-data) innehåller totalt 4 lektioner.

Vad lär jag mig i ”SDP: Session Description Protocol”?

Lär er hur SDP beskriver medieformat, codec och nätverksinformation som utbyts mellan peers för att förhandla fram en anslutning. Ni övar på Strömningssystem i realtid (WebRTC + live-data) med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Strömningssystem i realtid (WebRTC + live-data)?

Du behöver inga förkunskaper. Utbildningen i Strömningssystem i realtid (WebRTC + live-data) på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”SDP: Session Description Protocol”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Strömningssystem i realtid (WebRTC + live-data)-lektionen?

Ja. Varje Strömningssystem i realtid (WebRTC + live-data)-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Signaleringsservrars roll
  2. SDP: Session Description Protocol
  3. ICE-kandidater och anslutning
  4. Omförhandling och anslutningstillstånd
← Tillbaka till Strömningssystem i realtid (WebRTC + live-data)