SDP for the WebRTCCisco170 West Tasman DriveSan JoseCA95134USAsnandaku@cisco.comCisco170 West Tasman DriveSan JoseCA95134USA+1 408 421-9990fluffy@cisco.com
RAI
The Web Real-Time Communication (WebRTC)
working group is charged to provide protocol support for direct interactive
rich communication using audio,video and data between two peers' web browsers.
With in the WebRTC framework, Session Description protocol (SDP)
is used for negotiating session capabilities
between the peers. Such a negotiataion happens based on the SDP Offer/Answer exchange
mechanism described in the RFC 3264 .
This document serves a introductory purpose in describing the role of SDP for the
most common WebRTC use-cases.
This SDP examples provided in this document is still a work in progress, but aims
to align closest to the evolving standards.
Javascript Session Exchange Protocol(JSEP) specifies
a generic protocol needed to generate
offers and answers negotiated between the WebRTC peers for setting up, updating
and tearing down a multimedia session. For this purpose, SDP is used to
construct offers/answers for describing
(media and non-media) streams as appropriate for recipients of a session
description to participate in the session.
The remainder of this document is organized as follows: Section 3 and 4 provides
an overview of SDP and the Offer/Answer exchange mechanism.
Section 5 and 6 provide sample SDP usages for the most common WebRTC use-cases.
The key words "MUST", "MUST NOT", "REQUIRED", "SHOULD", "SHOULD NOT",
"RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be
interpreted as described in .
The purpose of this section is to provide a general overview of SDP and its components.
For a more in-depth understanding, the readers are advised to refer to
.
The Session Description Protocol (SDP) describes
multimedia sessions,which can be audio,video,whiteboards,fax,modem, and
other streams. It provides a general purpose,standard representation to describe
various aspects of multimedia session such as media capabilities,transport addresses
and related metadata in a transport agnostic manner,for the purposes of
session announcement,session invitation and parameter negotiation.
As of today SDP is widely used in the context of Session Initiation Protocol,
Real-time Transport Protocol and Real-time Streaming Protocol.
Below figure introduces high-level breakup of SDP into components that semantically
describe a multimedia session,in our case,say,a WebRTC session .
It by no means captures everything about SDP and hence, should be used for
informational purposes only.
proposes JavaScript application to fully control the
signaling plane of a multimedia session as described in the JSEP specification
. JSEP provides mechanisms to create
session characterisation and media definition information to conduct the session
based on SDP exchanges.
In this context,SDP serves two purposes:
Provide grammatical structure syntaticallySemantically convey partipant's intention and capabilities.
This section introduces SDP Offer/Answer Exchange mechanism mandated by WebRTC
for negotitating session capabilities while setting up,updating and tearing down a
WebRTC session. This section is intentionally brief in nature and interested readers
are recommended to for specific details on the
protocol operation.
The Offer/Answer model specifies rule for the
bilateral exchange of Session Description Protocol (SDP) messages for creation of
multimedia streams. It defines protocol with involved participants exchanging
desired session characteristics from each others perspective modelled on SDP to
negotiate the session between them.
In the most basic form,the protocol operation begins by one of the participants
sending an initial SDP offer describing its intent to start a
multimedia communication session. The participant receiving the offer MAY generate
an SDP answer accepting the offer or it MAY reject the offer. If the session is
accepted the Offer/Answer model guarantees a common view of the multimedia session
between the participants.
At any time, either participant MAY generate a new SDP offer that updates the
session in progress.
With in the context of WebRTC, the Offer/Answer model defines the state-machinery
for WebRTC peers to negotiate session descriptions between them during the
initial setup stages as well as for eventual session updates.
Javascript Session Establishment Protocol specification
for WebRTC provides the mechanism for generating
SDP offers and answers in order for both sides of the session to agree upon
details such as list of media formats to be sent/received, bandwidth information,
crypto parameters, transport parameters, for example.
The following sections provide samples of SDP message details and exchanges for the
most common WebRTC usecases.
A typical web based real-time multimedia communication session can be characterized
as below:
It has zero or more Audio only,Video only or Audio/Video Media streamsMAY contain zero or more non-media data streamsAll the streams are secured with DTLS/SRTPICE processing for NAT TraversalSessions over IPv4-only, IPv6-only, dual-stack based clients.
As mentioned earlier proposes using SDP based
Offer/Answer model to negotiate multimedia session between peers' browsers
Building on the concepts from the previous sections, the following subsections
attempts to describe the usage of SDP for the most common WebRTC use-cases.
In all the use-cases, Alice and Bob are assumed to be the WebRTC peers unless
mentioned otherwise. Pointers to appropriate RFCs and notes are provided, wherever
necessary,against the SDP lines.
This use-case allows two users to participate in a two-way communication session
securely on their WebRTC enabled Web browsers.
More specifically, this use-case demonstrates following aspects of a WebRTC
session
SRTP with DTLS based encryptionRTP and RTCP MuxingRTCP based feedback and reduced size supportICE processing for NAT TraversalAudio Codec Offered : PCMU, Opus, iLBCAudio Codec Answered : OpusVideo Codecs Offered: H.264, VP8Video Codecs Answered: H.264Data Channel Support
The tables (5.1 and 5.2) below capture in detail, the initial SDP Offer and
Answer messages exchanged.
The exact SDP parameters specified for Data-Channel is still under the
WG discussion and is expected to be updated once the final decision is reached..
SDP Contents RFC#/Notesv=0o=alice 20518 0 IN IP4 0.0.0.0 - Session Origin Informations=t=0 0a=ice-ufrag:074c6550 - Session Level ICE parametera=ice-pwd:a28a397a4c3f31747d1ee3474af08a068 - Session Level ICE parametera=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07 - Session DTLS Fingerprint for SRTPa=rtcp-rsize - Alice intends to use reduced size RTCP for this sessionm=audio 54609 RTP/SAVPF 0 109 98a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=rtpmap:0 PCMU/8000 G.711 Audio Codeca=rtpmap:109 opus/48000/2 - Opus Codec 48khz, 2 channelsa=ptime:20 - Opus packetization of 20msa=rtpmap:98 iLBC/8000 - Internet Low Bitrate Codeca=fmtp:98 mode=20a=sendrecv - Alice can send and recv audioa=rtcp-mux - Alice can perform RTP/RTCP Muxing on port 54609b=AS:64 - Audio Session B/W of 64kbpsb=RS:800 - RTCP b/w allocated to active data sendersb=RR:2400 - RTCP b/w allocated to receiversa=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ host - Host ICE Candidatea=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609 - Server Reflexive ICE Candidate for the above host candidatea=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ host - Second Host Candidate a=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678 - Server Reflexive Candidate for the Second Host Candidatea=rtcp-fb:109 nack - Indicates NACK RTCP feedback supportm=video 62537 RTP/SAVPF 99 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=rtpmap:99 H264/90000 - H.264 Video Codeca=fmtp:99 profile-level-id=4d0028;packetization-mode=1a=rtpmap:120 VP8/90000 - VP8 video codeca=sendrecv - Alice can send and recv videoa=rtcp-mux - Alice can perform RTP/RTCP Muxing on port 62537b=AS:256 - Audio Session B/W of 256kbpsb=RS:800 - RTCP b/w allocated to active data sendersb=RR:2400 - RTCP b/w allocated to receiversa=candidate:0 1 UDP 2113667327 192.168.1.4 62537 typ hosta=candidate:1 1 UDP 1694302207 24.23.204.141 62537 typ srflx raddr 192.168.1.4 rport 62537a=candidate:0 2 2113667326 192.168.1.4 54721 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 54721 typ srflx raddr 192.168.1.4 rport 54721a=rtcp-fb:99 nack pli - Indicates support for Picture loss Indication and NACKa=rtcp-fb:99 ccm fir - Full Intra Frame Request-Codec Control Message supporta=rtcp-fb:120 nack pli - Indicates support for Picture loss Indication and NACKa=rtcp-fb:120 ccm fir - Full Intra Frame Request-Codec Control Message supportm=application 56966 DTLS/SCTP 5000c= IN IP4 24.23.204.141a=sctpmap:5000 webrtc-Datachannel 1 - One data stream of type chata=webrtc-Datachannel:5000 stream=1;label="channel 1";subprotocol="chat";a=sendrecv - Alice can send and recv non-media dataa=candidate:0 1 UDP 2113667327 192.168.1.7 56966 typ hosta=candidate:1 1 UDP 1694302207 24.23.204.141 56966 typ srflx raddr 192.168.1.7 rport 56966a=candidate:0 2 UDP 2113667326 192.168.1.7 51641 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 51641 typ srflx raddr 192.168.1.7 rport 51641SDP Contents RFC#/Notesv=0o=bob 16833 0 IN IP4 0.0.0.0 - Session Origin Informations=t=0 0a=ice-ufrag:c300d85b - Session Level ICE username fraga=ice-pwd:de4e99bd291c325921d5d47efbabd9a2 - Session Level ICE passworda=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07 - Session DTLS Fingerprint for SRTPa=rtcp-rsize - Alice intends to use reduced size RTCP for this sessionm=audio 49203 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 98.248.92.77a=rtpmap:109 opus/48000/2 - Bob accepts only Opus Codeca=ptime:20a=sendrecv - Bob can send and recv audioa=rtcp-mux - Bob can perform RTP/RTCP Muxing on port 49203b=AS:64 - Audio Session b/w of 64kbpsb=RS:800 - RTCP b/w allocated to active data sendersb=RR:2400 - RTCP b/w allocated to receiversa=candidate:0 1 UDP 2113667327 192.168.1.7 49203 typ host - Host ICE Candidate for Opus Streama=ccandidate:1 1 UDP 1694302207 98.248.92.77 49203 typ srflx raddr 192.168.1.7 rport 49203 - Server Reflexive ICE Candidate for the above host candidatea=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ host - Second Host Candidate a=candidate:1 2 UDP 1694302206 98.248.92.77 60065 typ srflx raddr 192.168.1.7 rport 60065 - Server Reflexive Candidate for the Second Host Candidatem=video 63130 RTP/SAVPF 99a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 98.248.92.771a=rtpmap:99 H264/90000 - Bob accepts H.264 Video Codec.a=fmtp:99 profile-level-id=4d0028;packetization-mode=1a=sendrecv - Bob can send and recv videoa=rtcp-mux - Bob can perform RTP/RTCP Muxing on port 63130b=AS:256 - Audio Session B/W of 256kbpsb=RS:800 - RTCP b/w allocated to active data sendersb=RR:2400 - RTCP b/w allocated to receiversa=candidate:0 1 UDP 2113667327 192.168.1.7 63130 typ hosta=candidate:1 1 UDP 1694302207 98.248.92.77 63130 typ srflx raddr 192.168.1.7 rport 63130a=candidate:0 2 UDP 2113667326 192.168.1.7 56607 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 56607 typ srflx raddr 192.168.1.7 rport 56607a=rtcp-fb:99 nack pli - Indicates support for Picture loss Indication and NACKa=rtcp-fb:99 ccm fir - Full Intra Frame Request-Codec Control Message supportm=application 55700 DTLS/SCTP 5000c= IN IP4 98.248.92.771a=sctpmap:5000 webrtc-Datachannel 1a=webrtc-Datachannel:5000 stream=1;label="channel 1";subprotocol="chat";a=sendrecv - Bob can send and recv non-media dataa=candidate:0 1 UDP 2113667327 192.168.1.7 55700 typ host - Refer 4.1 SDP Offera=candidate:1 1 UDP 1694302207 98.248.92.77 55700 typ srflx raddr 192.168.1.7 rport 55700 Refer 4.1 SDP Offera=candidate:0 2 UDP 2113667326 192.168.1.7 58137 typ host Refer 4.1 SDP Offera=candidate:1 2 UDP 1694302206 98.248.92.77 58137 typ srflx raddr 192.168.1.7 rport 581371 Refer 4.1 SDP OfferThis scenario builds upon from the usecase in the section 5.1
It extends by Alice removing data-stream once the session is in progress.
There is an ongoing discussion with in the working group to allow addition
and deletion of streams using partial Offer/Answer exchanges based on
m=lines. Once a final decision is reached, the following example shall be
updated to reflect the same.
As a precondition, A Two-Way Audio,Video and Data Session is already setup.
SDP Contents RFC#/Notesv=1 Incremented version to indicate the updateo=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizem=audio 54609 RTP/SAVPF 0 109 98a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=rtpmap:98 iLBC/8000 - Internet Low Bitrate Codeca=fmtp:98 mode=20a=sendrecva=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678a=rtcp-fb:109 nackm=video 62537 RTP/SAVPF 99 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=rtpmap:99 H264/90000a=fmtp:99 profile-level-id=4d0028;packetization-mode=1a=rtpmap:120 VP8/90000a=sendrecva=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.4 62537 typ hosta=candidate:1 1 UDP 1694302207 24.23.204.141 62537 typ srflx raddr 192.168.1.4 rport 62537a=candidate:0 2 2113667326 192.168.1.4 54721 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 54721 typ srflx raddr 192.168.1.4 rport 54721a=rtcp-fb:99 nack plia=rtcp-fb:99 ccm fira=rtcp-fb:120 nack plia=rtcp-fb:120 ccm firm=application 0 DTLS/SCTP 5000 - Port 0 indicates dropping data stream c= IN IP4 24.23.204.141a=sctmap:5000 webrtc-Datachannel 1a=webrtc-Datachannel:5000 stream=1;label="channel 1";subprotocol="chat";a=sendrecvSDP Contents RFC#/Notesv=1o=bob 16833 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:c300d85ba=ice-pwd:de4e99bd291c325921d5d47efbabd9a2a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizem=audio 49203 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 98.248.92.77a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.7 49203 typ hosta=ccandidate:1 1 UDP 1694302207 98.248.92.77 49203 typ srflx raddr 192.168.1.7 rport 49203a=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 60065 typ srflx raddr 192.168.1.7 rport 60065m=video 63130 RTP/SAVPF 99a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 98.248.92.771a=rtpmap:99 H264/90000a=fmtp:99 profile-level-id=4d0028;packetization-mode=1a=sendrecva=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.7 63130 typ hosta=candidate:1 1 UDP 1694302207 98.248.92.77 63130 typ srflx raddr 192.168.1.7 rport 63130a=candidate:0 2 UDP 2113667326 192.168.1.7 56607 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 56607 typ srflx raddr 192.168.1.7 rport 56607a=rtcp-fb:99 nack plia=rtcp-fb:99 ccm firm=application 0 DTLS/SCTP 5000 Bob accepts dropping the data stream c= IN IP4 98.248.92.771a=sctpmap:5000 webrtc-Datachannel 1a=webrtc-Datachannel:5000 stream=1;label="channel 1";subprotocol="chat";a=sendrecv
This use-case demonstrates a successfull audio and video media streams
multiplexing scenario using SDP BUNDLE negotiation framework
Since Alice is unsure of the Bob's support for BUNDLE framework, the SDP
example below shows
An SDP Offer, in which the Alice assigns unique addresses to
each "m=" line in the BUNDLE group, and requests the Answerer to
select the Offerer's BUNDLE address. An SDP Answer, in which the Bob selects the BUNDLE
address for the Offerer, and assigns its own local BUNDLE address
to each "m=" line in the BUNDLE group. A subsequent SDP Offer from Alice, which is used to perform a BUNDLE
Address Synchronization (BAS).
Once the Offer/Answer exchange completes, both Alice and Bob each end up using
single RTP Session for both the Media Streams.
SDP Contents RFC#/Notesv=0o=alice 20518 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizea=group:BUNDLE foo bar
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 109a=mid:foo Audio m=line part of BUNDLE group with a unique port numbera=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141b=AS:200a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 62537 RTP/SAVPF 120a=mid:bar Video m=line part of the Bundle group with a unique port numbera=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141b=AS:1756a=rtpmap:120 VP8/90000a=sendrecva=rtcp-muxa=ssrc:22222a=candidate:0 1 UDP 2113667327 192.168.1.4 62537 typ hosta=candidate:1 1 UDP 1694302207 24.23.204.141 62537 typ srflx raddr 192.168.1.4 rport 62537a=candidate:0 2 2113667326 192.168.1.4 54721 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 54721 typ srflx raddr 192.168.1.4 rport 54721SDP Contents RFC#/Notesv=0o=bob 16833 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:c300d85ba=ice-pwd:de4e99bd291c325921d5d47efbabd9a2a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizea=group:BUNDLE foo bar Bob supports
BUNDLE semantics.m=audio 49203 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) a=mid:foo Audio m=line part of the BUNDLE groupc= IN IP4 98.248.92.77b=AS:200a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=rtcp-muxa=ssrc:33333a=candidate:0 1 UDP 2113667327 192.168.1.7 49203 typ hosta=candidate:1 1 UDP 1694302207 98.248.92.77 49203 typ srflx raddr 192.168.1.7 rport 49203a=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 60065 typ srflx raddr 192.168.1.7 rport 60065m=video 49203 RTP/SAVPF 120a=mid:bar Video m=line part of the BUNDLE group with
the port from audio line repeated a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) b=AS:1756c= IN IP4 98.248.92.77a=rtpmap:120 VP8/90000a=sendrecva=rtcp-muxa=ssrc:44444a=candidate:0 1 UDP 2113667327 192.168.1.7 49203 typ host - Candidate lines identical with the audio m-line.a=candidate:1 1 UDP 1694302207 98.248.92.77 49203 typ srflx raddr 192.168.1.7 rport 49203a=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 60065 typ srflx raddr 192.168.1.7 rport 60065SDP Contents RFC#/Notesv=0o=alice 20518 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizea=group:BUNDLE foo barm=audio 54609 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) a=mid:foo - Port number finalized as Bundle Address.c= IN IP4 24.23.204.141b=AS:200a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 54609 RTP/SAVPF 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) a=mid:bar - Same Bundle address from the audio m=line c= IN IP4 24.23.204.141b=AS:1756a=rtpmap:120 VP8/90000a=sendrecva=rtcp-muxa=ssrc:22222a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ host - Candidate lines identical with the audio m-line. a=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678 This use-case is a successful audio and video stream multiplexing scenario,
with Alice and Bob aware of each others support for SDP BUNDLE framework
.SDP Contents RFC#/Notesv=0o=alice 20518 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizea=group:BUNDLE foo bar
Alice supports grouping of m=lines under BUNDLE semantics.m=audio 10000 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) a=mid:foo - Audio m=line part of BUNDLE groupc= IN IP4 24.23.204.141b=AS:200a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 10000 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 10000 typ srflx raddr 192.168.1.4 rport 10000a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 10000 RTP/SAVPF 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) a=mid:bar - Video m=line with Bundle address same as the audio m=linec= IN IP4 24.23.204.141b=AS:1000a=rtpmap:120 VP8/90000a=sendrecva=rtcp-muxa=ssrc:22222a=candidate:0 1 UDP 2113667327 192.168.1.4 10000 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 10000 typ srflx raddr 192.168.1.4 rport 10000a=candidate:0 2 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678SDP Contents RFC#/Notesv=0o=bob 16833 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:c300d85ba=ice-pwd:de4e99bd291c325921d5d47efbabd9a2a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizea=group:BUNDLE foo bar - Bob supports
BUNDLE semantics.m=audio 20000 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) a=mid:foo - Audio m=line part of the BUNDLE groupb=AS:200c= IN IP4 98.248.92.77a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=rtcp-muxa=ssrc:33333a=candidate:0 1 UDP 2113667327 192.168.1.7 20000 typ hosta=candidate:1 1 UDP 1694302207 98.248.92.77 20000 typ srflx raddr 192.168.1.7 rport 20000a=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 60065 typ srflx raddr 192.168.1.7 rport 60065m=video 20000 RTP/SAVPF 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) a=mid:bar - Video m=line with Bundle address
same as the audio m=line b=AS:1000c= IN IP4 98.248.92.77a=rtpmap:120 VP8/90000a=sendrecva=rtcp-muxa=ssrc:44444a=candidate:0 1 UDP 2113667327 192.168.1.7 20000 typ hosta=candidate:1 1 UDP 1694302207 98.248.92.77 20000 typ srflx raddr 192.168.1.7 rport 20000a=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 60065 typ srflx raddr 192.168.1.7 rport 60065 This use-case illustrates SDP Offer/Answer exchange when the far-end (Bob)
either doesn't support media bundling or doesn't want to group m=lines over
a single 5-tuple. On successful Offer/Answer exchange, Alice and Bob each end up using separate
RTP sessions for audio and video media streams respectively.SDP Contents RFC#/Notesv=0o=alice 20518 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizea=group:BUNDLE foo bar
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 55232 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) a=mid:foo Audio m=line part of BUNDLE group with a
unique port numberc= IN IP4 24.23.204.141b=AS:200a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 55232 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 55232 typ srflx raddr 192.168.1.4 rport 55232a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 54332 RTP/SAVPF 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) a=mid:bar Video m=line part of the BUNDLE group with a
unique port numberc= IN IP4 24.23.204.141b=AS:1000a=rtpmap:120 VP8/90000a=sendrecva=rtcp-muxa=ssrc:22222a=candidate:0 1 UDP 2113667327 192.168.1.4 54332 typ hosta=candidate:1 1 UDP 1694302207 24.23.204.141 54332 typ srflx raddr 192.168.1.4 rport 54332a=candidate:0 2 2113667326 192.168.1.4 54721 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 54721 typ srflx raddr 192.168.1.4 rport 54721SDP Contents RFC#/Notesv=0o=bob 16833 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:c300d85ba=ice-pwd:de4e99bd291c325921d5d47efbabd9a2a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizem=audio 53214 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) b=AS:200c= IN IP4 98.248.92.77a=rtpmap:109 opus/48000/2a=ptime:20a=sendrecva=candidate:0 1 UDP 2113667327 192.168.1.7 53214 typ hosta=candidate:1 1 UDP 1694302207 98.248.92.77 53214 typ srflx raddr 192.168.1.7 rport 53214a=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 60065 typ srflx raddr 192.168.1.7 rport 60065m=video 58679 RTP/SAVPF 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) b=AS:2000c= IN IP4 98.248.92.77a=rtpmap:120 VP8/90000a=sendrecva=candidate:0 1 UDP 2113667327 192.168.1.7 58679 typ hosta=candidate:1 1 UDP 1694302207 98.248.92.77 58679 typ srflx raddr 192.168.1.7 rport 58679a=candidate:0 2 UDP 2113667326 192.168.1.7 56607 typ hosta=candidate:1 2 UDP 1694302206 98.248.92.77 56607 typ srflx raddr 192.168.1.7 rport 56607 In this scenario Alice and Bob engage in one-way multimedia session with
Bob receiving two video streams, one corresponding to Alice's video and other corresponding to
her presentation slides.
SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizem=audio 54609 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=rtpmap:109 opus/48000/2a=ptime:20a=sendonly - Send only audio streama=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hostm=video 62537 RTP/SAVPF 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=rtpmap:120 VP8/90000a=content:speaker - Stream 1 for Alice's videoa=sendonly - Send only video streama=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.4 62537 typ hosta=candidate:0 2 UDP 2113667326 192.168.1.4 54721 typ hostm=video 62539 RTP/SAVPF 120a=msid:mb ta Identifies RTCMediaStream ID (mb) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=rtpmap:120 VP8/90000a=content:slides - Stream 2 for Alice's slidesa=sendonly - Send only video streama=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.4 62539 typ hosta=candidate:0 2 UDP 2113667326 192.168.1.4 54723 typ hostSDP Contents RFC#/Notesv=0o=bob 16833 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:c300d85ba=ice-pwd:de4e99bd291c325921d5d47efbabd9a2a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=rtcp-rsizem=audio 49203 RTP/SAVPF 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 98.248.92.77a=rtpmap:109 opus/48000/2a=ptime:20a=recvonly - Receive only audio streama=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.7 49203 typ hosta=candidate:0 2 UDP 2113667326 192.168.1.7 60065 typ hostm=video 63130 RTP/SAVPF 120a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 98.248.92.771a=rtpmap:120 VP8/90000a=content:speaker - Stream 1 for Alice's Videoa=recvonly - Receive Only Video Stream 1a=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.7 63130 typ hosta=candidate:0 2 UDP 2113667326 192.168.1.7 56607 typ hostm=video 63133 RTP/SAVPF 120a=msid:mb ta Identifies RTCMediaStream ID (mb) and RTCMediaStreamTrack ID (ta) c= IN IP4 98.248.92.771a=rtpmap:120 VP8/90000a=content:slides - Stream 2 for Alice's Slidesa=recvonly - Receive Only Video Stream 2a=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.7 63133 typ hosta=candidate:0 2 UDP 2113667326 192.168.1.7 56609 typ host This SDP below shows Offer/Answer exchange with audio and two video streams
each of which can send two different resolutions. One video stream supports VP8, while the other supports H.264. bundle-only framework is used along with BUNDLE grouping framework
to enable multiplexing of all the 5 streams (audio stream + 4 video streams)
over a single RTP Session.
SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1 m2
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 0 RTP/SAVPF 98 100 bundle-only video line with port number set to zeroa=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=mid:m1 Video m=line part of BUNDLE groupa=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=imageattr:98 [x=1280,y=720]Camera-1,Encoding-1 Resolutiona=fmtp:98 max-fr=30a=imageattr:100 [x=640,y=480] Camera-1,Encoding-2 Resolutiona=fmtp:100 max-fr=15a=ssrc-group:SIMULCAST 12345 45678a=ssrc:12345a=ssrc:45678a=ssrc:12345 cname:axzo1278npDlAzM73
Camera-1,Encoding-1 SSRC with Session CNAMEa=ssrc:45678 cname:axzo1278npDlAzM73
Camera-1,Encoding-2 SSRC with Session CNAMEa=sendonly - Send only video streama=rtcp-muxa=bundle-onlyAdd reference to unified plan when availablem=video 0 RTP/SAVPF 98 100 bundle-only video line with port number set to zero a=msid:ma tc Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tc) c= IN IP4 24.23.204.141a=mid:m2 Video m=line part of BUNDLE groupa=rtpmap:98 H264/90000a=rtpmap:100 H264/90000a=fmtp:98 profile-level-id=4d0028;packetization-mode=1;max-fr=30 Camera-2,Encoding-1 Resolutiona=fmtp:100 profile-level-id=4d0028;packetization-mode=1;max-fr=15Camera-1,Encoding-2 Resolutiona=ssrc:67890a=ssrc:56789a=ssrc-group:SIMULCAST 67890 56789a=ssrc:67890 cname:axzo1278npDlAzM73
Camera-1,Encoding-1 SSRC with Session CNAMEa=ssrc:56789 cname:axzo1278npDlAzM73
Camera-1,Encoding-2 SSRC with Session CNAMEa=sendonly - Send only video streama=rtcp-muxa=bundle-only Add reference to unified plan when available SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:ufrag:c300d85ba=ice-pwd:de4e99bd291c325921d5d47efbabd9a2a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1 m2
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) a=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=ssrc:22222a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 54609 RTP/SAVPF 98 100 BUNDLE accepted with port repeated from the audio port a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=mid:m1 Video m=line part of BUNDLE groupa=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=imageattr:98 [x=1280,y=720]Camera-1,Encoding-1 Resolutiona=fmtp:98 max-fr=30a=imageattr:100 [x=640,y=480] Camera-1,Encoding-2 Resolutiona=fmtp:100 max-fr=15a=ssrc-group:SIMULCAST 54321 87654a=ssrc:54321a=ssrc:87654a=ssrc:54321 cname:axzo1278npDlAzM73
Camera-1,Encoding-1 SSRC with Session CNAMEa=ssrc:87654 cname:axzo1278npDlAzM73
Camera-1,Encoding-2 SSRC with Session CNAMEa=sendonly - Send only video streama=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678a=rtcp-mux a=bundle-onlyAdd reference to unified plan when availablem=video 54609 RTP/SAVPF 98 100 BUNDLE accepted with port repeated from the audio port c= IN IP4 24.23.204.141a=msid:ma tc Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tc) a=mid:m2 Video m=line part of BUNDLE groupa=rtpmap:98 H264/90000a=rtpmap:10 H264/90000a=fmtp:98 profile-level-id=4d0028;packetization-mode=1;max-fr=30 Camera-2,Encoding-1 Resolutiona=fmtp:100 profile-level-id=4d0028;packetization-mode=1;max-fr=15Camera-1,Encoding-2 Resolutiona=ssrc:90876a=ssrc:89754a=ssrc-group:SIMULCAST 90876 89754a=ssrc:90876 cname:axzo1278npDlAzM73
Camera-1,Encoding-1 SSRC with Session CNAMEa=ssrc:89754 cname:axzo1278npDlAzM73
Camera-1,Encoding-2 SSRC with Session CNAMEa=sendonly - Send only video streama=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678a=rtcp-mux a=bundle-only Add reference to unified plan when available This section shows an SDP Offer/Answer for a session with an audio and a single video
stream. The video stream is layered coding at 3 different
resolutions based on . The video m=line shows 3 streams
with last stream (payload 100) dependent on streams with payload 96
and 97 for decoding.
SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 0 RTP/SAVPF 96 97 100bundle-only video line with port number set to zeroa=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tc) c= IN IP4 24.23.204.141a=mid:m1 Audio m=line part of BUNDLE groupa=msid:ma tbAdd appropriate reference when availableb=AS:2500a=rtpmap:96 H264/90000a=fmtp:96 profile-level-id=4d0028;packetization-mode=1;max-fr=30;max-fs=8040H.264 Layer 1a=rtpmap:97 H264/90000a=fmtp:97 profile-level-id=4d0028;packetization-mode=1;max-fr=15;max-fs=1200 H.264 Layer 2a=rtpmap:100 H264-SVC/90000a=fmtp:100 profile-level-id=4d0028;packetization-mode=1;max-fr=30;max-fs=8040a=depend:100 lay m1:96,97;Layer 3 dependent on layers 1 and 2a=sendonly - Send only video streama=rtcp-muxa=bundle-only Add reference to unified plan when available SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.142a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.5 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.142 54609 typ srflx raddr 192.168.1.5 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.5 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.142 64678 typ srflx raddr 192.168.1.5 rport 64678m=video 54609 RTP/SAVPF 96 100 BUNDLE accepted Bundle address same as audio m=line.a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.142a=mid:m1 Video m=line part of BUNDLE groupb=AS:2500a=rtpmap:96 H264/90000a=fmtp:96 profile-level-id=4d0028;packetization-mode=1;max-fr=30;max-fs=8040H.264 Layer 1a=rtpmap:100 H264-SVC/90000a=fmtp:100 profile-level-id=4d0028;packetization-mode=1;max-fr=30;max-fs=8040a=depend:100 lay m1:96; Bob chooses 2 Codec Operation pointsa=candidate:0 1 UDP 2113667327 192.168.1.5 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.142 54609 typ srflx raddr 192.168.1.5 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.5 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.142 64678 typ srflx raddr 192.168.1.5 rport 64678a=recvonly - Receive only video streama=rtcp-muxa=bundle-only Add reference to unified plan when available This section shows an SDP Offer/Answer exchange for a simulcast scenario
with 2 two resolutions and has
style re-transmission flows.
SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 0 RTP/SAVPF 98 100 101 103bundle-only video line with port number set to zeroa=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=mid:m1 Audio m=line part of BUNDLE groupb=AS:1756a=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=rtpmap:101 VP8/90000a=rtpmap:103 VP8/90000a=fmtp:98 max-fr=30;max-fs=8040a=fmtp:100 max-fr=15;max-fs=1200a=fmtp:101 apt=98;rtx-time=3000a=fmtp:103 apt=100;rtx-time=3000a=ssrc-group:SIMULCAST 12345 78990 Simulcast group a=ssrc-group:FID 12345 34567 a=ssrc-group:FID 78990 90887 a=ssrc:12345a=ssrc:78990a=ssrc:34567a=ssrc:90887a=sendrecva=rtcp-muxa=bundle-only Add reference to unified plan when available SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.142a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=ssrc:33333a=candidate:0 1 UDP 2113667327 192.168.1.5 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.142 54609 typ srflx raddr 192.168.1.5 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.5 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.142 64678 typ srflx raddr 192.168.1.5 rport 64678m=video 54609 RTP/SAVPF 98 100 101 103BUNDLE accepted with Bundle address identical to audio m-linea=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.142a=mid:m1 Video m=line part of BUNDLE groupb=AS:1756a=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=rtpmap:101 VP8/90000a=rtpmap:103 VP8/90000a=fmtp:98 max-fr=30;max-fs=8040a=fmtp:100 max-fr=15;max-fs=1200a=fmtp:101 apt=98;rtx-time=3000a=fmtp:103 apt=100;rtx-time=3000a=candidate:0 1 UDP 2113667327 192.168.1.5 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.142 54609 typ srflx raddr 192.168.1.5 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.5 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.142 64678 typ srflx raddr 192.168.1.5 rport 64678a=ssrc-group:SIMULCAST 54321 77656 Simulcast group a=ssrc-group:FID 54321 88776 a=ssrc-group:FID 77656 12908 a=ssrc:54321a=ssrc:77656a=ssrc:88776a=ssrc:12908a=sendrecva=rtcp-muxa=bundle-only Add reference to unified plan when available This section shows an SDP Offer/Answer exchange for a simulcast scenario
with 2 two resolutions and has
style re-transmission flows.
It also showcases when Bob rejects one of the Simulcast Video Stream which
results in the rejection of the associated repair stream implicitly
SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 0 RTP/SAVPF 98 100 101 103bundle-only video line with port number set to zeroa=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=mid:m1 Audio m=line part of BUNDLE groupb=AS:1756a=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=rtpmap:101 VP8/90000a=rtpmap:103 VP8/90000a=fmtp:98 max-fr=30;max-fs=8040a=fmtp:100 max-fr=15;max-fs=1200a=fmtp:101 apt=98;rtx-time=3000a=fmtp:103 apt=100;rtx-time=3000a=ssrc-group:SIMULCAST 12345 78990 Simulcast group a=ssrc-group:FID 12345 34567 a=ssrc-group:FID 78990 90887 a=ssrc:12345a=ssrc:78990a=ssrc:34567a=ssrc:90887a=sendonlya=rtcp-muxa=bundle-only Add reference to unified plan when available SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.142a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=recvonlya=rtcp-muxa=ssrc:33333a=candidate:0 1 UDP 2113667327 192.168.1.5 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.142 54609 typ srflx raddr 192.168.1.5 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.5 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.142 64678 typ srflx raddr 192.168.1.5 rport 64678m=video 54609 RTP/SAVPF 98 101 BUNDLE accepted with Bundle address identical to audio m-linea=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.142a=mid:m1 Video m=line part of BUNDLE groupb=AS:1756a=rtpmap:98 VP8/90000a=rtpmap:101 VP8/90000a=fmtp:98 max-fr=30;max-fs=8040a=fmtp:101 apt=98;rtx-time=3000a=candidate:0 1 UDP 2113667327 192.168.1.5 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.142 54609 typ srflx raddr 192.168.1.5 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.5 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.142 64678 typ srflx raddr 192.168.1.5 rport 64678a=ssrc-group:FID 54321 88776 a=ssrc:54321a=ssrc:88776a=recvonlya=rtcp-muxa=bundle-only Add reference to unified plan when available This section shows an SDP Offer/Answer exchange for Simulcast
video stream at two resolutions and and has
style FEC flows.
On completion of Offer/Answer exchange, one audio stream, 2 simulcast video
streams and 2 associated FEC streams are sent over a single 5-Tuple as part
of bundle-only and BUNDLE framework.
SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=ssrc:11111a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 0 RTP/SAVPF 98 100 101 103bundle-only video line with port number set to zeroa=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=mid:m1 Video m=line part of BUNDLE groupb=AS:2500a=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=rtpmap:101 1d-interleaved-parityfec/90000a=rtpmap:103 1d-interleaved-parityfec/90000a=fmtp:98 max-fr=30;max-fs=8040a=fmtp:100 max-fr=15;max-fs=1200a=fmtp:101 L=5; D=10; repair-window=200000a=fmtp:103 L=5; D=10; repair-window=200000a=ssrc-group:SIMULCAST 12345 78990 Simulcast group a=ssrc-group:FEC-FR 12345 34567 a=ssrc-group:FEC-FR 78990 90887 a=ssrc:12345a=ssrc:78990a=ssrc:34567a=ssrc:90887a=sendrecva=rtcp-muxa=bundle-only Add reference to unified plan when available SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109 a=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=ssrc:33333a=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 54609 RTP/SAVPF 98 100 101 103BUNDLE accepted with Bundle Address identical to audio m=line.a=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) c= IN IP4 24.23.204.141a=mid:m1 Video m=line part of BUNDLE groupb=AS:2500a=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=rtpmap:101 1d-interleaved-parityfec/90000a=rtpmap:103 1d-interleaved-parityfec/90000a=fmtp:98 max-fr=30;max-fs=8040a=fmtp:100 max-fr=15;max-fs=1200a=fmtp:101 L=5; D=10; repair-window=200000a=fmtp:103 L=5; D=10; repair-window=200000a=ssrc-group:SIMULCAST 54321 77656 Simulcast group a=ssrc-group:FEC-FR 54321 88776 a=ssrc-group:FEC-FR 77656 12908 a=ssrc:54321a=ssrc:77656a=ssrc:88776a=ssrc:12908a=sendrecva=rtcp-muxa=bundle-only Add reference to unified plan when available
In this section, we attempt to provide session descriptions showcasing inter-operability
between a WebRTC end-point and a Legacy VOIP end-point. The ideas included in here
are not fully baked into the standards yet.
In the scenario described below, Alice is a multi-stream capable WebRTC endpoint
while Bob is a legacy VOIP end-point. The SDP Offer/Answer exchange demonstrates
successful session setup with fallback to audio only stream negotiated
via bundle-only framework between the end-points. Specifically,
Offer from Alice describes 2 cameras via 2 video m=lines with both marked
as bundle-only. Since Bob doesnot recognize either BUNDLE mechanism or bundle-only attribute,
he accepts only the audio stream from Alice. SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:074c6550a=ice-pwd:a28a397a4c3f31747d1ee3474af08a068a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07a=group:BUNDLE m0 m1 m2
Alice supports grouping of m=lines under BUNDLE semanticsm=audio 54609 RTP/SAVPF 0 109c= IN IP4 24.23.204.141a=mid:m0 Audio m=line part of BUNDLE group
with a unique port numbera=msid:ma ta Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (ta) a=rtpmap:0 PCMU/8000a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=rtcp-muxa=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 0 RTP/SAVPF 98 100 bundle-only video line with port number set to zero c= IN IP4 24.23.204.141a=mid:m1 Video m=line part of BUNDLE groupa=msid:ma tb Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tb) a=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=imageattr:98 [x=1280,y=720]Camera-1,Encoding-1 Resolutiona=fmtp:98 max-fr=30a=imageattr:100 [x=640,y=480] Camera-1,Encoding-2 Resolutiona=fmtp:100 max-fr=15a=ssrc-group:SIMULCAST 12345 45678a=ssrc:12345a=ssrc:45678a=ssrc:12345 cname:axzo1278npDlAzM73
Camera-1,Encoding-1 SSRC with Session CNAMEa=ssrc:45678 cname:axzo1278npDlAzM73
Camera-1,Encoding-2 SSRC with Session CNAMEa=bundle-onlyAdd reference to unified plan when availablem=video 0 RTP/SAVPF 101 103 bundle-only video line with port number set to zero c= IN IP4 24.23.204.141a=mid:m2 Video m=line part of BUNDLE groupa=msid:ma tc Identifies RTCMediaStream ID (ma) and RTCMediaStreamTrack ID (tc) a=rtpmap:101 H264/90000a=rtpmap:103 H264/90000a=fmtp:101 profile-level-id=4d0028;packetization-mode=1;max-fr=30 Camera-2,Encoding-1 Resolutiona=fmtp:100 profile-level-id=4d0028;packetization-mode=1;max-fr=15Camera-1,Encoding-2 Resolutiona=ssrc:67890a=ssrc:56789a=ssrc-group:SIMULCAST 67890 56789a=ssrc:67890 cname:axzo1278npDlAzM73
Camera-1,Encoding-1 SSRC with Session CNAMEa=ssrc:56789 cname:axzo1278npDlAzM73
Camera-1,Encoding-2 SSRC with Session CNAMEa=bundle-only Add reference to unified plan when available SDP Contents RFC#/Notesv=0o=alice 20519 0 IN IP4 0.0.0.0s=t=0 0a=ice-ufrag:ufrag:c300d85ba=ice-pwd:de4e99bd291c325921d5d47efbabd9a2a=fingerprint:sha-1 99:41:49:83:4a:97:0e:1f:ef:6d:f7:c9:c7:70:9d:1f:66:79:a8:07m=audio 54609 RTP/SAVPF 109c= IN IP4 24.23.204.141a=rtpmap:109 opus/48000/2a=ptime:20a=sendonlya=candidate:0 1 UDP 2113667327 192.168.1.4 54609 typ hosta=candidate:1 1 UDP 694302207 24.23.204.141 54609 typ srflx raddr 192.168.1.4 rport 54609a=candidate:0 2 UDP 2113667326 192.168.1.4 64678 typ hosta=candidate:1 2 UDP 1694302206 24.23.204.141 64678 typ srflx raddr 192.168.1.4 rport 64678m=video 0 RTP/SAVPF 98 100 Bob doesn't recognize bundle-only and hence rejects the video stream c= IN IP4 24.23.204.141a=rtpmap:98 VP8/90000a=rtpmap:100 VP8/90000a=imageattr:98 [x=1280,y=720]Camera-1,Encoding-1 Resolutiona=fmtp:98 max-fr=30a=imageattr:100 [x=640,y=480] Camera-1,Encoding-2 Resolutiona=fmtp:100 max-fr=15m=video 0 RTP/SAVPF 98 100 Bob doesn't recognize bundle-only and hence rejects the video streamc= IN IP4 24.23.204.141a=rtpmap:101 H264/90000a=rtpmap:103 H264/90000a=fmtp:101 profile-level-id=4d0028;packetization-mode=1;max-fr=30 Camera-2,Encoding-1 Resolutiona=fmtp:100 profile-level-id=4d0028;packetization-mode=1;max-fr=15Camera-1,Encoding-2 ResolutionThis document requires no actions from IANA.[RFC EDITOR NOTE: Please remove this section when publishing]Changes from draft-nandakumar-rtcweb-sdp-01
Updated references to OPUS RTP Payload Specification.Updated BUNDLE examples based on the latest
draft-ietf-mmusic-sdp-bundle-negotiation.Added examples for multiple audio and video flows based on
Unified Plan.Added new examples for RTX and FEC streams Updated Simulcast and SVC examplesChanges from draft-nandakumar-rtcweb-sdp-00
Fixed editorial comments on the mailing list.Updated Data-channel SDP information based on draft-ietf-mmusic-sctp-sdp.Updated BUNDLE examples based on draft-ietf-mmusic-sdp-bundle-negotiation.Added examples for few more BUNDLE variantsAdded new examples for Simulcast and SVCAn Offer/Answer Model with Session Description Protocol
(SDP)SDP: Session Description ProtocolKey words for use in RFCs to Indicate
Requirement LevelsHarvard University1350 Mass. Ave.CambridgeMA 02138- +1 617 495 3864sob@harvard.edu
General
keywordInteractive Connectivity Establishment (ICE):
A Protocol for Network Address Translator (NAT) Traversal for
Offer/Answer Protocols
WebRTC 1.0: Real-time Communication Between Browsers
W3C
Javascript Session Establishment Protocol
Google
Cisco Systems
Support for Reduced-Size Real-Time Transport Control Protocol (RTCP):
Opportunities and ConsequencesRTP Profile for Audio and Video Conferences
with Minimal ControlReal-time Transport Protocol (RTP) Payload Format
for internet Low Bit Rate Codec (iLBC) SpeechThe Session Description Protocol (SDP) Content AttributeMultiplexing RTP Data and Control Packets on a Single PortSession Description Protocol (SDP) Bandwidth Modifiers
for RTP Control Protocol (RTCP) BandwidthCodec Control Messages in the
RTP Audio-Visual Profile with Feedback (AVPF)RTP Retransmission Payload FormatForward Error Correction Grouping Semantics
in the Session Description ProtocolRTP Payload Format for H.264 VideoNegotiation of Generic Image Attributes in
the Session Description Protocol (SDP)RTP Payload Format for Opus Speech and Audio CodecRTP Payload Format for VP8 VideoRTP Payload Format for H.264 VideoSignaling Media Decoding Dependency in the Session Description Protocol (SDP)This memo defines semantics that allow for signaling the decoding dependency of different media descriptions with the same media type in the Session Description Protocol (SDP). This is required, for example, if media data is separated and transported in different network streams as a result of the use of a layered or multiple descriptive media coding process.</t><t> A new grouping type "DDP" -- decoding dependency -- is defined, to be used in conjunction with RFC 3388 entitled "Grouping of Media Lines in the Session Description Protocol". In addition, an attribute is specified describing the relationship of the media streams in a "DDP" group indicated by media identification attribute(s) and media format description(s). [STANDARDS-TRACK]Source-Specific Media Attributes in the Session Description Protocol (SDP)The Session Description Protocol (SDP) provides mechanisms to describe attributes of multimedia sessions and of individual media streams (e.g., Real-time Transport Protocol (RTP) sessions) within a multimedia session, but does not provide any mechanism to describe individual media sources within a media stream. This document defines a mechanism to describe RTP media sources, which are identified by their synchronization source (SSRC) identifiers, in SDP, to associate attributes with these sources, and to express relationships among sources. It also defines several source-level attributes that can be used to describe properties of media sources. [STANDARDS-TRACK]RTCWeb Datagram ConnectionStream Control Transmission Protocol (SCTP)-Based Media Transport in the
Session Description Protocol (SDP) Multiplexing Negotiation Using Session Description Protocol (SDP) Port
Numbers Multiplexing Negotiation Using Session Description Protocol (SDP) Port
Numbers Guidelines for Choosing RTP Control Protocol (RTCP)
Canonical Names (CNAMEs)