What is SDP?

Session Description Protocol (SDP) is a format for describing multimedia communication sessions for the purposes of session announcement, session invitation, and parameter negotiation. SDP is used extensively in VoIP, video conferencing, and WebRTC applications.

Key Components

Session Information

Session name, description, and timing information.

Media Description

Audio, video, and data stream specifications.

Network Information

Connection addresses and transport protocols.

Codec Negotiation

Supported media formats and encoding parameters.

SDP Structure

Session-level

v= Version
o= Origin
s= Session Name
c= Connection Information
t= Timing Information

Media-level

m= Media Description
a= Attributes
c= Connection (if different)
b= Bandwidth

Example SDP

v=0
o=alice 2890844526 2890844527 IN IP4 host.atlanta.com
s=Session Description
c=IN IP4 host.atlanta.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 51372 RTP/AVP 31
a=rtpmap:31 H261/90000

Common SDP Attributes

  • rtpmap: Maps payload type to encoding name and parameters
  • fmtp: Format-specific parameters for media codecs
  • sendrecv/sendonly/recvonly: Media direction indicators
  • candidate: ICE candidate information for WebRTC
  • fingerprint: DTLS certificate fingerprint
  • setup: DTLS connection role (active/passive)
  • mid: Media stream identification
  • group: Media stream grouping and bundling

Supported Media Types

Audio

Voice codecs like G.711, G.722, Opus, AAC

Video

Video codecs like H.264, H.265, VP8, VP9, AV1

Application

Data channels, whiteboard, file transfer

Text

Real-time text communication (T.140)

Applications

  • WebRTC: Browser-based real-time communication
  • SIP: Session Initiation Protocol for VoIP
  • RTSP: Real-Time Streaming Protocol for media streaming
  • Multicast: Session announcement for multicast sessions
  • Video Conferencing: Multi-party communication systems
  • IPTV: Internet Protocol television services

Additional Resources