Sample SDP Specification

SDP (Session Description Protocol) for SMPTE requires the following fields to be present.

Fields must appear in the order shown below, except that multiple adjacent 'a' fields can be in any order.

The SDP format is defined by RFC4566 (https://tools.ietf.org/html/rfc4566). SMPTE SDP is defined in the ST2110-10-2017 standard.

Note:  AES67 descriptors use the same format but do not support redundant flows.

Sample SDP for a Multicast Flow

v=0
o=- 123456 123458 IN IP4 10.0.1.2
s=My sample flow
i=4 channels: c1, c2, c3, c4
t=0 0
a=recvonly
m=audio 5004 RTP/AVP 98
c=IN IP4 239.69.11.44/32
a=rtpmap:98 L24/48000/4
a=ptime:1
a=ts-refclk:ptp=IEEE1588-2008:00-11-22-FF-FE-33-44-55:0
a=mediaclk:direct=0

Sample SDP for a Redundant Multicast Flow

v=0
o=- 345678 345979 IN IP4 10.0.1.2
s=My sample redundant flow
i=2 channels: c6, c7
t=0 0
a=recvonly
a=group:DUP prim sec
m=audio 5004 RTP/AVP 98
c=IN IP4 239.69.22.33/32
a=rtpmap:98 L24/48000/2
a=ptime:1
a=ts-refclk:ptp=IEEE1588-2008:00-11-22-FF-FE-33-44-55:0
a=mediaclk:direct=0
a=mid:prim
m=audio 5004 RTP/AVP 98
c=IN IP4 239.69.22.33/32
a=rtpmap:98 L24/48000/2
a=ptime:1
a=ts-refclk:ptp=IEEE1588-2008:00-11-22-FF-FE-33-44-55:0
a=mediaclk:direct=0
a=mid:prim
m=audio 5004 RTP/AVP 98
c=IN IP4 239.69.44.55/32
a=rtpmap:98 L24/48000/2
a=ptime:1
a=ts-refclk:ptp=IEEE1588-2008:00-11-22-FF-FE-33-44-55:0
a=mediaclk:direct=0
a=mid:sec

Keys and Attributes

Session Level Keys

Key Name Example Notes
v Version v=0 Always zero
o Origin o=- 345678 345979 IN IP4 10.0.1.2 See https://tools.ietf.org/html/rfc4566#section-5.2 for details
s Session name s=My sample redundant flow Non-empty text string 'naming' flow
i Session information i=2 channels: c6, c7
  • Human-readable session information
  • Optional
c Connection information c=IN IP4 239.69.22.33/32
  • Connection data (destination address) for multicast flow
  • Must exist either here (non-redundant) or at media level
t Time description t=0 0
  • Must have at least one entry
  • Usually "0 0" - not time-limited

Session Level Attributes

Attribute Example Notes
Receive-only session a=recvonly Multicast flows are receive only
Media grouping a=group:DUP prim sec
  • Redundant flows only
  • Indicates which media descriptions apply to this redundant flow. There must be a suitable media description with a 'mid' attribute matching each name.
  • If this attribute is missing, the first suitable (audio) media descriptor will be used and any others ignored

Media Level Keys

Key Name Example Notes
m Media name and transport m=audio 5004 RTP/AVP 98
  • The example describes an RTP audio flow, port 5004, using dynamic format 98
  • SMPTE flows typically use a dynamic format in the range 96-127
c Connection data c=IN IP4 239.69.22.33/32
  • Must be specified at media level for redundant flows
  • May be specified at media or session level for non-redundant flows

Media Level Attributes

Attribute Example Notes
RTP payload type mapping a=rtpmap:98 L24/48000/2
  • Defines dynamic format 98 as being 24 bit, 48k, 2 channels
  • Dynamic format ID must match value in media description
RTP packet time a=ptime:1
  • Specifies packet as containing 1ms of data
  • This will vary by number of samples per packet
Reference clock a=ts-refclk:ptp=IEEE1588-2008:00-11-22-FF-FE-33-44-55:0
  • Grand master identifier
  • SMPTE requires that this be specified at the media level, even though redundant flows should have the same value for each flow
Clock mapping a=mediaclk:direct=0
  • Must be specified at media level
  • Always has value direct=0
Media identifier a=mid:prim
  • Tags a media description with an identifier
  • These identifiers must match the identifiers used in the session level 'group' attribute. If there is no group attribute then it will be ignored.

Other fields and attributes are ignored by Dante devices.

If there is no a=group:DUP attribute then the first valid audio media descriptor is used and any further descriptors are ignored. If there is an a=group:DUP attribute then only the specified media descriptors are used, and any others are ignored.

Note:  Descriptors that are legal SDP but not well-formed for SMPTE will be silently ignored by Dante Controller and Dante devices.