Real-Time Streaming Systems (WebRTC + Live Data) · Lekcja

SDP: Session Description Protocol

Dowiedz się, jak SDP opisuje format multimediów, kodek i informacje sieciowe wymieniane między peerami w celu negocjowania połączenia.

Lekcja 2 z 412 kroki

SDP: Session Description Protocol to bezpłatna lekcja Real-Time Streaming Systems (WebRTC + Live Data) na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Real-Time Streaming Systems (WebRTC + Live Data), a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Real-Time Streaming Systems (WebRTC + Live Data) zawiera 4 lekcji w sumie.

Części tej lekcji nie zostały jeszcze przetłumaczone i są wyświetlane po angielsku.

What is SDP?

SDP stands for Session Description Protocol. It's a text-based format used in WebRTC to describe the capabilities and parameters of a media session.

Think of it as a blueprint for what kind of audio, video, and data a peer wants to send or receive, and how it can be reached.

SDP's Role in WebRTC

Before two WebRTC peers can send data directly, they need to agree on many things:

  • What media types (audio, video, data) they support.
  • Which codecs to use (e.g., Opus for audio, VP8 for video).
  • Their network addresses and connection methods.

SDP is the standard way to exchange this crucial information.

SDP in Offer/Answer

WebRTC uses an "Offer/Answer" model for negotiation. One peer creates an SDP Offer, describing its capabilities. The other peer receives it and creates an SDP Answer, indicating its own capabilities and agreement.

This exchange happens via a signaling server, which we discussed in the previous lesson.

SDP Message Structure

An SDP message is a collection of lines, each starting with a single lowercase letter followed by an equals sign (=). These lines are grouped into a session description and one or more media descriptions.

Common lines include: v=, o=, s=, t=, c=, m=, and a=.

SDP: Version & Origin

Every SDP message begins with a version line and an origin line:

  • v=0: Specifies the SDP protocol version. Always 0 for WebRTC.
  • o= IN IP4
    : Describes the session's originator and identifier.

The <sess-id> and <sess-version> are unique numbers, and <address> is typically 127.0.0.1 for local generation.

SDP: Session Name & Time

Next, we find the session name and time description:

  • s=-: The session name. Often just a hyphen for WebRTC.
  • t=0 0: The session's active time. 0 0 means permanent/always active for WebRTC.

These lines provide basic context for the overall session.

SDP: Connection Data

The c= line provides connection data, specifically the IP address for the session. In WebRTC, this is often set to 0.0.0.0 or 127.0.0.1 as the actual peer-to-peer connection addresses are negotiated later via ICE candidates.

Example: c=IN IP4 0.0.0.0

SDP: Media Descriptions (`m=`)

The m= line is critical! It describes a specific media stream (audio, video, or data channel). An SDP can have multiple m= lines.

Format: m=

  • <media>: audio, video, or application (for data channels).
  • <port>: The port number (often 9 for WebRTC, actual port from ICE).
  • <protocol>: E.g., UDP/TLS/RTP/SAVPF.
  • <fmt list>: A list of supported payload types/codecs.

SDP: Attributes (`a=`)

a= lines provide additional attributes for the session or a specific media stream. They are highly flexible and carry a lot of WebRTC-specific information.

  • a=rtpmap: /: Maps payload types to codecs.
  • a=fingerprint:...: TLS certificate fingerprint.
  • a=sendrecv, a=sendonly, a=recvonly: Directionality of media.
  • a=ice-ufrag, a=ice-pwd: Used for ICE connectivity checks.

See a Simplified SDP

Here's a simplified example of what an SDP offer might look like. Notice the different lines and their roles in describing the session and media capabilities.

Try running it to see the raw SDP text!

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();

Quick Check on SDP

Which SDP line primarily describes the type of media (audio, video, or data), its associated port, transport protocol, and supported formats?

Recap: SDP Essentials

Great job! You've learned about SDP, the Session Description Protocol, which is fundamental to WebRTC.

  • SDP is a text format for describing media and network capabilities.
  • It's used in the Offer/Answer model to negotiate connections.
  • Key lines include v=, o=, s=, t=, c=, m=, and a=.
  • The m= line describes media, and a= lines provide rich attributes.

Next, we'll dive into ICE candidates, which help peers find the best network path!

Bezpłatny start

Ucz się Real-Time Streaming Systems (WebRTC + Live Data) dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
12
Lekcje
48

Często zadawane pytania

Czy lekcja „SDP: Session Description Protocol” jest bezpłatna?

Tak — pełny tekst „SDP: Session Description Protocol” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Real-Time Streaming Systems (WebRTC + Live Data), przejdź na CoddyKit PRO. Kurs Real-Time Streaming Systems (WebRTC + Live Data) zawiera 4 lekcji w sumie.

Co nauczysz się w „SDP: Session Description Protocol”?

Dowiedz się, jak SDP opisuje format multimediów, kodek i informacje sieciowe wymieniane między peerami w celu negocjowania połączenia. Ćwiczysz Real-Time Streaming Systems (WebRTC + Live Data) z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Real-Time Streaming Systems (WebRTC + Live Data)?

Nie wymagamy żadnego doświadczenia. Real-Time Streaming Systems (WebRTC + Live Data) w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „SDP: Session Description Protocol”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Real-Time Streaming Systems (WebRTC + Live Data)?

Tak. Każda lekcja Real-Time Streaming Systems (WebRTC + Live Data) zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Rola serwerów sygnalizacyjnych
  2. SDP: Session Description Protocol
  3. Kandydaci ICE i nawiązywanie połączenia
  4. Renegocjacja i stan połączenia
← Powrót do Real-Time Streaming Systems (WebRTC + Live Data)