draft-ietf-mmusic-sdp-simulcast-07.txt | draft-ietf-mmusic-sdp-simulcast-08.txt | |||
---|---|---|---|---|
Network Working Group B. Burman | Network Working Group B. Burman | |||
Internet-Draft M. Westerlund | Internet-Draft M. Westerlund | |||
Intended status: Standards Track Ericsson | Intended status: Standards Track Ericsson | |||
Expires: August 4, 2017 S. Nandakumar | Expires: September 14, 2017 S. Nandakumar | |||
M. Zanaty | M. Zanaty | |||
Cisco | Cisco | |||
January 31, 2017 | March 13, 2017 | |||
Using Simulcast in SDP and RTP Sessions | Using Simulcast in SDP and RTP Sessions | |||
draft-ietf-mmusic-sdp-simulcast-07 | draft-ietf-mmusic-sdp-simulcast-08 | |||
Abstract | Abstract | |||
In some application scenarios it may be desirable to send multiple | In some application scenarios it may be desirable to send multiple | |||
differently encoded versions of the same media source in different | differently encoded versions of the same media source in different | |||
RTP streams. This is called simulcast. This document describes how | RTP streams. This is called simulcast. This document describes how | |||
to accomplish simulcast in RTP and how to signal it in SDP. The | to accomplish simulcast in RTP and how to signal it in SDP. The | |||
described solution uses an RTP/RTCP identification method to identify | described solution uses an RTP/RTCP identification method to identify | |||
RTP streams belonging to the same media source, and makes an | RTP streams belonging to the same media source, and makes an | |||
extension to SDP to relate those RTP streams as being different | extension to SDP to relate those RTP streams as being different | |||
skipping to change at page 1, line 42 ¶ | skipping to change at page 1, line 42 ¶ | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
This Internet-Draft will expire on August 4, 2017. | This Internet-Draft will expire on September 14, 2017. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2017 IETF Trust and the persons identified as the | Copyright (c) 2017 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info) in effect on the date of | (http://trustee.ietf.org/license-info) in effect on the date of | |||
publication of this document. Please review these documents | publication of this document. Please review these documents | |||
skipping to change at page 2, line 20 ¶ | skipping to change at page 2, line 20 ¶ | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
2.2. Requirements Language . . . . . . . . . . . . . . . . . . 4 | 2.2. Requirements Language . . . . . . . . . . . . . . . . . . 5 | |||
3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |||
3.1. Reaching a Diverse Set of Receivers . . . . . . . . . . . 5 | 3.1. Reaching a Diverse Set of Receivers . . . . . . . . . . . 6 | |||
3.2. Application Specific Media Source Handling . . . . . . . 7 | 3.2. Application Specific Media Source Handling . . . . . . . 7 | |||
3.3. Receiver Media Source Preferences . . . . . . . . . . . . 7 | 3.3. Receiver Media Source Preferences . . . . . . . . . . . . 7 | |||
4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 7 | 4. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
5. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | 5. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | |||
6. Detailed Description . . . . . . . . . . . . . . . . . . . . 9 | 6. Detailed Description . . . . . . . . . . . . . . . . . . . . 10 | |||
6.1. Simulcast Attribute . . . . . . . . . . . . . . . . . . . 10 | 6.1. Simulcast Attribute . . . . . . . . . . . . . . . . . . . 10 | |||
6.2. Simulcast Capability . . . . . . . . . . . . . . . . . . 11 | 6.2. Simulcast Capability . . . . . . . . . . . . . . . . . . 11 | |||
6.3. Offer/Answer Use . . . . . . . . . . . . . . . . . . . . 14 | 6.3. Offer/Answer Use . . . . . . . . . . . . . . . . . . . . 14 | |||
6.3.1. Generating the Initial SDP Offer . . . . . . . . . . 14 | 6.3.1. Generating the Initial SDP Offer . . . . . . . . . . 14 | |||
6.3.2. Creating the SDP Answer . . . . . . . . . . . . . . . 14 | 6.3.2. Creating the SDP Answer . . . . . . . . . . . . . . . 14 | |||
6.3.3. Offerer Processing the SDP Answer . . . . . . . . . . 15 | 6.3.3. Offerer Processing the SDP Answer . . . . . . . . . . 15 | |||
6.3.4. Modifying the Session . . . . . . . . . . . . . . . . 15 | 6.3.4. Modifying the Session . . . . . . . . . . . . . . . . 16 | |||
6.4. Use with Declarative SDP . . . . . . . . . . . . . . . . 16 | 6.4. Use with Declarative SDP . . . . . . . . . . . . . . . . 16 | |||
6.5. Relating Simulcast Streams . . . . . . . . . . . . . . . 16 | 6.5. Relating Simulcast Streams . . . . . . . . . . . . . . . 16 | |||
6.6. Signaling Examples . . . . . . . . . . . . . . . . . . . 16 | 6.6. Signaling Examples . . . . . . . . . . . . . . . . . . . 17 | |||
6.6.1. Single-Source Client . . . . . . . . . . . . . . . . 17 | 6.6.1. Single-Source Client . . . . . . . . . . . . . . . . 17 | |||
6.6.2. Multi-Source Client . . . . . . . . . . . . . . . . . 18 | 6.6.2. Multi-Source Client . . . . . . . . . . . . . . . . . 18 | |||
7. RTP Aspects . . . . . . . . . . . . . . . . . . . . . . . . . 21 | 7. RTP Aspects . . . . . . . . . . . . . . . . . . . . . . . . . 21 | |||
7.1. Outgoing from Endpoint with Media Source . . . . . . . . 21 | 7.1. Outgoing from Endpoint with Media Source . . . . . . . . 21 | |||
7.2. RTP Middlebox to Receiver . . . . . . . . . . . . . . . . 21 | 7.2. RTP Middlebox to Receiver . . . . . . . . . . . . . . . . 21 | |||
7.2.1. Media-Switching Mixer . . . . . . . . . . . . . . . . 23 | 7.2.1. Media-Switching Mixer . . . . . . . . . . . . . . . . 23 | |||
7.2.2. Selective Forwarding Middlebox . . . . . . . . . . . 24 | 7.2.2. Selective Forwarding Middlebox . . . . . . . . . . . 24 | |||
7.3. RTP Middlebox to RTP Middlebox . . . . . . . . . . . . . 25 | 7.3. RTP Middlebox to RTP Middlebox . . . . . . . . . . . . . 25 | |||
8. Network Aspects . . . . . . . . . . . . . . . . . . . . . . . 26 | 8. Network Aspects . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
8.1. Bitrate Adaptation . . . . . . . . . . . . . . . . . . . 26 | 8.1. Bitrate Adaptation . . . . . . . . . . . . . . . . . . . 26 | |||
9. Limitation . . . . . . . . . . . . . . . . . . . . . . . . . 26 | 9. Limitation . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 27 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 28 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 28 | |||
12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 28 | 12. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | 13. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 28 | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . 28 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 28 | |||
14.2. Informative References . . . . . . . . . . . . . . . . . 29 | 14.2. Informative References . . . . . . . . . . . . . . . . . 29 | |||
Appendix A. Changes From Earlier Versions . . . . . . . . . . . 32 | Appendix A. Changes From Earlier Versions . . . . . . . . . . . 32 | |||
A.1. Modifications Between WG Version -05 and -06 . . . . . . 32 | A.1. Modifications Between WG Version -07 and -08 . . . . . . 32 | |||
A.2. Modifications Between WG Version -04 and -05 . . . . . . 32 | A.2. Modifications Between WG Version -06 and -07 . . . . . . 32 | |||
A.3. Modifications Between WG Version -03 and -04 . . . . . . 33 | A.3. Modifications Between WG Version -05 and -06 . . . . . . 32 | |||
A.4. Modifications Between WG Version -02 and -03 . . . . . . 33 | A.4. Modifications Between WG Version -04 and -05 . . . . . . 33 | |||
A.5. Modifications Between WG Version -01 and -02 . . . . . . 33 | A.5. Modifications Between WG Version -03 and -04 . . . . . . 33 | |||
A.6. Modifications Between WG Version -00 and -01 . . . . . . 34 | A.6. Modifications Between WG Version -02 and -03 . . . . . . 34 | |||
A.7. Modifications Between Individual Version -00 and WG | A.7. Modifications Between WG Version -01 and -02 . . . . . . 34 | |||
A.8. Modifications Between WG Version -00 and -01 . . . . . . 34 | ||||
A.9. Modifications Between Individual Version -00 and WG | ||||
Version -00 . . . . . . . . . . . . . . . . . . . . . . . 34 | Version -00 . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 34 | |||
1. Introduction | 1. Introduction | |||
Most of today's multiparty video conference solutions make use of | Most of today's multiparty video conference solutions make use of | |||
centralized servers to reduce the bandwidth and CPU consumption in | centralized servers to reduce the bandwidth and CPU consumption in | |||
the endpoints. Those servers receive RTP streams from each | the endpoints. Those servers receive RTP streams from each | |||
participant and send some suitable set of possibly modified RTP | participant and send some suitable set of possibly modified RTP | |||
streams to the rest of the participants, which usually have | streams to the rest of the participants, which usually have | |||
skipping to change at page 10, line 9 ¶ | skipping to change at page 10, line 20 ¶ | |||
6. Detailed Description | 6. Detailed Description | |||
This section further details the overview above (Section 5). First, | This section further details the overview above (Section 5). First, | |||
formal syntax is provided (Section 6.1), followed by the rest of the | formal syntax is provided (Section 6.1), followed by the rest of the | |||
SDP attribute definition in Section 6.2. Relating Simulcast Streams | SDP attribute definition in Section 6.2. Relating Simulcast Streams | |||
(Section 6.5) provides the definition of the RTP/RTCP mechanisms | (Section 6.5) provides the definition of the RTP/RTCP mechanisms | |||
used. The section is concluded with a number of examples. | used. The section is concluded with a number of examples. | |||
6.1. Simulcast Attribute | 6.1. Simulcast Attribute | |||
This document defines a new SDP media-level "a=simulcast" attribute | This document defines a new SDP media-level "a=simulcast" attribute, | |||
with the following ABNF [RFC5234] syntax: | with value according to the following ABNF [RFC5234] syntax: | |||
sc-attr = "a=simulcast:" sc-value | sc-value = ( sc-send [SP sc-recv] ) / ( sc-recv [SP sc-send] ) | |||
sc-value = sc-str-list [SP sc-str-list] | sc-send = "send" SP sc-str-list | |||
sc-str-list = sc-dir SP sc-alt-list *( ";" sc-alt-list ) | sc-recv = "recv" SP sc-str-list | |||
sc-dir = "send" / "recv" | sc-str-list = sc-alt-list *( ";" sc-alt-list ) | |||
sc-alt-list = sc-id *( "," sc-id ) | sc-alt-list = sc-id *( "," sc-id ) | |||
sc-id-paused = "~" | sc-id-paused = "~" | |||
sc-id = [sc-id-paused] rid-identifier | sc-id = [sc-id-paused] rid-id | |||
; SP defined in [RFC5234] | ; SP defined in [RFC5234] | |||
; rid-identifier defined in [I-D.ietf-mmusic-rid] | ; rid-id defined in [I-D.ietf-mmusic-rid] | |||
Figure 1: ABNF for Simulcast | Figure 1: ABNF for Simulcast Value | |||
The "a=simulcast" attribute has a parameter in the form of one or two | The "a=simulcast" attribute has a parameter in the form of one or two | |||
simulcast stream descriptions, each consisting of a direction ("send" | simulcast stream descriptions, each consisting of a direction ("send" | |||
or "recv"), followed by a list of one or more simulcast streams. | or "recv"), followed by a list of one or more simulcast streams. | |||
Each simulcast stream consists of one or more alternative simulcast | Each simulcast stream consists of one or more alternative simulcast | |||
formats. Each simulcast format is identified by a simulcast stream | formats. Each simulcast format is identified by a simulcast stream | |||
identifier (SCID). The SCID MUST have the form of an RTP stream | identifier (SCID). The SCID MUST have the form of an RTP stream | |||
identifier, as described by RTP Payload Format Restrictions | identifier, as described by RTP Payload Format Restrictions | |||
[I-D.ietf-mmusic-rid]. | [I-D.ietf-mmusic-rid]. | |||
skipping to change at page 11, line 5 ¶ | skipping to change at page 11, line 11 ¶ | |||
reason to allow separate initial pause states for each SCID is that | reason to allow separate initial pause states for each SCID is that | |||
pause capability can be specified individually for each RTP payload | pause capability can be specified individually for each RTP payload | |||
type referenced by an SCID. Since pause capability specified via the | type referenced by an SCID. Since pause capability specified via the | |||
"a=rtcp-fb" attribute and SCID specified by "a=rid" can refer to | "a=rtcp-fb" attribute and SCID specified by "a=rid" can refer to | |||
common payload types, it is unfeasible to pause streams with SCID | common payload types, it is unfeasible to pause streams with SCID | |||
where any of the related RTP payload type(s) do not have pause | where any of the related RTP payload type(s) do not have pause | |||
capability. | capability. | |||
Examples: | Examples: | |||
a=simulcast:send 1,2,3;~4,~5 recv 6;~7,~8 | a=simulcast:send 1,2,3;~4,~5 recv 6;~7,~8 | |||
a=simulcast:recv 1;4,5 send 6;7 | a=simulcast:recv 1;4,5 send 6;7 | |||
Figure 2: Simulcast Examples | Figure 2: Simulcast Examples | |||
Above are two examples of different "a=simulcast" lines. | Above are two examples of different "a=simulcast" lines. | |||
The first line is an example offer to send two simulcast streams and | The first line is an example offer to send two simulcast streams and | |||
to receive two simulcast streams. The first simulcast stream in send | to receive two simulcast streams. The first simulcast stream in send | |||
direction can be sent in three different alternative formats (SCID 1, | direction can be sent in three different alternative formats (SCID 1, | |||
2, 3), and the second simulcast stream in send direction can be sent | 2, 3), and the second simulcast stream in send direction can be sent | |||
in two different alternative formats (SCID 4, 5). Both of the second | in two different alternative formats (SCID 4, 5). Both of the second | |||
skipping to change at page 17, line 40 ¶ | skipping to change at page 17, line 45 ¶ | |||
c=IN IP4 192.0.2.156 | c=IN IP4 192.0.2.156 | |||
m=audio 49200 RTP/AVP 0 | m=audio 49200 RTP/AVP 0 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
m=video 49300 RTP/AVP 97 98 | m=video 49300 RTP/AVP 97 98 | |||
a=rtpmap:97 H264/90000 | a=rtpmap:97 H264/90000 | |||
a=rtpmap:98 H264/90000 | a=rtpmap:98 H264/90000 | |||
a=fmtp:97 profile-level-id=42c01f; max-fs=3600; max-mbps=108000 | a=fmtp:97 profile-level-id=42c01f; max-fs=3600; max-mbps=108000 | |||
a=fmtp:98 profile-level-id=42c00b; max-fs=240; max-mbps=3600 | a=fmtp:98 profile-level-id=42c00b; max-fs=240; max-mbps=3600 | |||
a=imageattr:97 send [x=1280,y=720] recv [x=1280,y=720] | a=imageattr:97 send [x=1280,y=720] recv [x=1280,y=720] | |||
a=imageattr:98 send [x=320,y=180] recv [x=320,y=180] | a=imageattr:98 send [x=320,y=180] recv [x=320,y=180] | |||
a=rid:1 pt=97 send | a=rid:1 send pt=97 | |||
a=rid:2 pt=98 send | a=rid:2 send pt=98 | |||
a=rid:3 pt=97 recv | a=rid:3 recv pt=97 | |||
a=simulcast:send 1;2 recv 3 | a=simulcast:send 1;2 recv 3 | |||
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:RtpStreamId | a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:RtpStreamId | |||
Figure 4: Single-Source Simulcast Offer | Figure 4: Single-Source Simulcast Offer | |||
The only thing in the SDP that indicates simulcast capability is the | The only thing in the SDP that indicates simulcast capability is the | |||
line in the video media description containing the "simulcast" | line in the video media description containing the "simulcast" | |||
attribute. The included "a=fmtp" and "a=imageattr" parameters | attribute. The included "a=fmtp" and "a=imageattr" parameters | |||
indicates that sent simulcast streams can differ in video resolution. | indicates that sent simulcast streams can differ in video resolution. | |||
The RTP header extension for RtpStreamId is offered to avoid issues | The RTP header extension for RtpStreamId is offered to avoid issues | |||
with the initial binding between RTP streams (SSRCs) and the | with the initial binding between RTP streams (SSRCs) and the | |||
RtpStreamId identifying the simulcast stream and its format. | RtpStreamId identifying the simulcast stream and its format. | |||
The Answer from the server indicates that it too is simulcast | The Answer from the server indicates that it too is simulcast | |||
capable. Should it not have been simulcast capable, the | capable. Should it not have been simulcast capable, the | |||
"a=simulcast" line would not have been present and communication | "a=simulcast" line would not have been present and communication | |||
would have started with the media negotiated in the SDP. Also the | would have started with the media negotiated in the SDP. Also the | |||
usage of the RtpStreamId RTP header extension is accepted. | usage of the RtpStreamId RTP header extension is accepted. | |||
skipping to change at page 18, line 29 ¶ | skipping to change at page 18, line 33 ¶ | |||
c=IN IP4 192.0.2.43 | c=IN IP4 192.0.2.43 | |||
m=audio 49672 RTP/AVP 0 | m=audio 49672 RTP/AVP 0 | |||
a=rtpmap:0 PCMU/8000 | a=rtpmap:0 PCMU/8000 | |||
m=video 49674 RTP/AVP 97 98 | m=video 49674 RTP/AVP 97 98 | |||
a=rtpmap:97 H264/90000 | a=rtpmap:97 H264/90000 | |||
a=rtpmap:98 H264/90000 | a=rtpmap:98 H264/90000 | |||
a=fmtp:97 profile-level-id=42c01f; max-fs=3600; max-mbps=108000 | a=fmtp:97 profile-level-id=42c01f; max-fs=3600; max-mbps=108000 | |||
a=fmtp:98 profile-level-id=42c00b; max-fs=240; max-mbps=3600 | a=fmtp:98 profile-level-id=42c00b; max-fs=240; max-mbps=3600 | |||
a=imageattr:97 send [x=1280,y=720] recv [x=1280,y=720] | a=imageattr:97 send [x=1280,y=720] recv [x=1280,y=720] | |||
a=imageattr:98 send [x=320,y=180] recv [x=320,y=180] | a=imageattr:98 send [x=320,y=180] recv [x=320,y=180] | |||
a=rid:1 pt=97 recv | a=rid:1 recv pt=97 | |||
a=rid:2 pt=98 recv | a=rid:2 recv pt=98 | |||
a=rid:3 pt=97 send | a=rid:3 send pt=97 | |||
a=simulcast:recv 1;2 send 3 | a=simulcast:recv 1;2 send 3 | |||
a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:RtpStreamId | a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:RtpStreamId | |||
Figure 5: Single-Source Simulcast Answer | Figure 5: Single-Source Simulcast Answer | |||
Since the server is the simulcast media receiver, it reverses the | Since the server is the simulcast media receiver, it reverses the | |||
direction of the "simulcast" and "rid" attribute parameters. | direction of the "simulcast" and "rid" attribute parameters. | |||
6.6.2. Multi-Source Client | 6.6.2. Multi-Source Client | |||
skipping to change at page 26, line 16 ¶ | skipping to change at page 26, line 16 ¶ | |||
Simulcast is in this memo defined as the act of sending multiple | Simulcast is in this memo defined as the act of sending multiple | |||
alternative encoded streams of the same underlying media source. | alternative encoded streams of the same underlying media source. | |||
When transmitting multiple independent streams that originate from | When transmitting multiple independent streams that originate from | |||
the same source, it could potentially be done in several different | the same source, it could potentially be done in several different | |||
ways using RTP. A general discussion on considerations for use of | ways using RTP. A general discussion on considerations for use of | |||
the different RTP multiplexing alternatives can be found in | the different RTP multiplexing alternatives can be found in | |||
Guidelines for Multiplexing in RTP | Guidelines for Multiplexing in RTP | |||
[I-D.ietf-avtcore-multiplex-guidelines]. Discussion and | [I-D.ietf-avtcore-multiplex-guidelines]. Discussion and | |||
clarification on how to handle multiple streams in an RTP session can | clarification on how to handle multiple streams in an RTP session can | |||
be found in [I-D.ietf-avtcore-rtp-multi-stream]. | be found in [RFC8108]. | |||
The network aspects that are relevant for simulcast are: | The network aspects that are relevant for simulcast are: | |||
Quality of Service: When using simulcast it might be of interest to | Quality of Service: When using simulcast it might be of interest to | |||
prioritize a particular simulcast stream, rather than applying | prioritize a particular simulcast stream, rather than applying | |||
equal treatment to all streams. For example, lower bit-rate | equal treatment to all streams. For example, lower bit-rate | |||
streams may be prioritized over higher bit-rate streams to | streams may be prioritized over higher bit-rate streams to | |||
minimize congestion or packet losses in the low bit-rate streams. | minimize congestion or packet losses in the low bit-rate streams. | |||
Thus, there is a benefit to use a simulcast solution with good QoS | Thus, there is a benefit to use a simulcast solution with good QoS | |||
support. | support. | |||
skipping to change at page 27, line 39 ¶ | skipping to change at page 27, line 39 ¶ | |||
Contact name, email: IETF, contacted via mmusic@ietf.org, or a | Contact name, email: IETF, contacted via mmusic@ietf.org, or a | |||
successor address designated by IESG | successor address designated by IESG | |||
Attribute name: simulcast | Attribute name: simulcast | |||
Long-form attribute name: Simulcast stream description | Long-form attribute name: Simulcast stream description | |||
Charset dependent: No | Charset dependent: No | |||
Attribute value: See Section 6.1 of RFC XXXX. | Attribute value: sc-value; see Section 6.1 of RFC XXXX. | |||
Purpose: Signals simulcast capability for a set of RTP streams | Purpose: Signals simulcast capability for a set of RTP streams | |||
MUX category: NORMAL | MUX category: NORMAL | |||
Note to RFC Editor: Please replace "RFC XXXX" with the assigned | Note to RFC Editor: Please replace "RFC XXXX" with the assigned | |||
number of this RFC. | number of this RFC. | |||
11. Security Considerations | 11. Security Considerations | |||
skipping to change at page 28, line 41 ¶ | skipping to change at page 28, line 41 ¶ | |||
Morgan Lindqvist and Fredrik Jansson, both from Ericsson, have | Morgan Lindqvist and Fredrik Jansson, both from Ericsson, have | |||
contributed with important material to the first versions of this | contributed with important material to the first versions of this | |||
document. Robert Hansen and Cullen Jennings, from Cisco, Peter | document. Robert Hansen and Cullen Jennings, from Cisco, Peter | |||
Thatcher, from Google, and Adam Roach, from Mozilla, contributed | Thatcher, from Google, and Adam Roach, from Mozilla, contributed | |||
significantly to subsequent versions. | significantly to subsequent versions. | |||
13. Acknowledgements | 13. Acknowledgements | |||
The authors would like to thank Bernard Aboba, Thomas Belling, Roni | The authors would like to thank Bernard Aboba, Thomas Belling, Roni | |||
Even, and Adam Roach for the feedback they provided during the | Even, Adam Roach, Inaki Baz Castillo, and Paul Kyzivat for the | |||
development of this document. | feedback they provided during the development of this document. | |||
14. References | 14. References | |||
14.1. Normative References | 14.1. Normative References | |||
[I-D.ietf-avtext-rid] | [I-D.ietf-avtext-rid] | |||
Roach, A., Nandakumar, S., and P. Thatcher, "RTP Stream | Roach, A., Nandakumar, S., and P. Thatcher, "RTP Stream | |||
Identifier Source Description (SDES)", draft-ietf-avtext- | Identifier Source Description (SDES)", draft-ietf-avtext- | |||
rid-09 (work in progress), October 2016. | rid-09 (work in progress), October 2016. | |||
[I-D.ietf-mmusic-rid] | [I-D.ietf-mmusic-rid] | |||
Thatcher, P., Zanaty, M., Nandakumar, S., Burman, B., | Thatcher, P., Zanaty, M., Nandakumar, S., Burman, B., | |||
Roach, A., and B. Campen, "RTP Payload Format | Roach, A., and B. Campen, "RTP Payload Format | |||
Restrictions", draft-ietf-mmusic-rid-08 (work in | Restrictions", draft-ietf-mmusic-rid-09 (work in | |||
progress), October 2016. | progress), February 2017. | |||
[I-D.ietf-mmusic-sdp-bundle-negotiation] | [I-D.ietf-mmusic-sdp-bundle-negotiation] | |||
Holmberg, C., Alvestrand, H., and C. Jennings, | Holmberg, C., Alvestrand, H., and C. Jennings, | |||
"Negotiating Media Multiplexing Using the Session | "Negotiating Media Multiplexing Using the Session | |||
Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | Description Protocol (SDP)", draft-ietf-mmusic-sdp-bundle- | |||
negotiation-36 (work in progress), October 2016. | negotiation-36 (work in progress), October 2016. | |||
[I-D.ietf-mmusic-sdp-mux-attributes] | [I-D.ietf-mmusic-sdp-mux-attributes] | |||
Nandakumar, S., "A Framework for SDP Attributes when | Nandakumar, S., "A Framework for SDP Attributes when | |||
Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-16 | Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-16 | |||
skipping to change at page 30, line 5 ¶ | skipping to change at page 30, line 5 ¶ | |||
February 2016, <http://www.rfc-editor.org/info/rfc7728>. | February 2016, <http://www.rfc-editor.org/info/rfc7728>. | |||
14.2. Informative References | 14.2. Informative References | |||
[I-D.ietf-avtcore-multiplex-guidelines] | [I-D.ietf-avtcore-multiplex-guidelines] | |||
Westerlund, M., Perkins, C., and H. Alvestrand, | Westerlund, M., Perkins, C., and H. Alvestrand, | |||
"Guidelines for using the Multiplexing Features of RTP to | "Guidelines for using the Multiplexing Features of RTP to | |||
Support Multiple Media Streams", draft-ietf-avtcore- | Support Multiple Media Streams", draft-ietf-avtcore- | |||
multiplex-guidelines-03 (work in progress), October 2014. | multiplex-guidelines-03 (work in progress), October 2014. | |||
[I-D.ietf-avtcore-rtp-multi-stream] | ||||
Lennox, J., Westerlund, M., Wu, Q., and C. Perkins, | ||||
"Sending Multiple RTP Streams in a Single RTP Session", | ||||
draft-ietf-avtcore-rtp-multi-stream-11 (work in progress), | ||||
December 2015. | ||||
[RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., | [RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., | |||
Handley, M., Bolot, J., Vega-Garcia, A., and S. Fosse- | Handley, M., Bolot, J., Vega-Garcia, A., and S. Fosse- | |||
Parisis, "RTP Payload for Redundant Audio Data", RFC 2198, | Parisis, "RTP Payload for Redundant Audio Data", RFC 2198, | |||
DOI 10.17487/RFC2198, September 1997, | DOI 10.17487/RFC2198, September 1997, | |||
<http://www.rfc-editor.org/info/rfc2198>. | <http://www.rfc-editor.org/info/rfc2198>. | |||
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model | |||
with Session Description Protocol (SDP)", RFC 3264, | with Session Description Protocol (SDP)", RFC 3264, | |||
DOI 10.17487/RFC3264, June 2002, | DOI 10.17487/RFC3264, June 2002, | |||
<http://www.rfc-editor.org/info/rfc3264>. | <http://www.rfc-editor.org/info/rfc3264>. | |||
skipping to change at page 32, line 5 ¶ | skipping to change at page 31, line 46 ¶ | |||
[RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, | [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, | |||
DOI 10.17487/RFC7667, November 2015, | DOI 10.17487/RFC7667, November 2015, | |||
<http://www.rfc-editor.org/info/rfc7667>. | <http://www.rfc-editor.org/info/rfc7667>. | |||
[RFC7741] Westin, P., Lundin, H., Glover, M., Uberti, J., and F. | [RFC7741] Westin, P., Lundin, H., Glover, M., Uberti, J., and F. | |||
Galligan, "RTP Payload Format for VP8 Video", RFC 7741, | Galligan, "RTP Payload Format for VP8 Video", RFC 7741, | |||
DOI 10.17487/RFC7741, March 2016, | DOI 10.17487/RFC7741, March 2016, | |||
<http://www.rfc-editor.org/info/rfc7741>. | <http://www.rfc-editor.org/info/rfc7741>. | |||
[RFC8108] Lennox, J., Westerlund, M., Wu, Q., and C. Perkins, | ||||
"Sending Multiple RTP Streams in a Single RTP Session", | ||||
RFC 8108, DOI 10.17487/RFC8108, March 2017, | ||||
<http://www.rfc-editor.org/info/rfc8108>. | ||||
Appendix A. Changes From Earlier Versions | Appendix A. Changes From Earlier Versions | |||
NOTE TO RFC EDITOR: Please remove this section prior to publication. | NOTE TO RFC EDITOR: Please remove this section prior to publication. | |||
A.1. Modifications Between WG Version -05 and -06 | A.1. Modifications Between WG Version -07 and -08 | |||
o Correcting syntax of SDP examples in section 6.6.1, as found by | ||||
Inaki Baz Castillo. | ||||
o Changing ABNF to only define the sc-value, not the SDP attribute | ||||
itself, as suggested by Paul Kyzivat. | ||||
o Changing I-D reference to newly published RFC 8108. | ||||
o Adding list of modifications between -06 and -07. | ||||
A.2. Modifications Between WG Version -06 and -07 | ||||
o A scope clarification, as result of the discussion with Roni Even. | ||||
o A reformulation of the identification requirements for simulcast | ||||
stream. | ||||
o Correcting the statement related to source specific signalling | ||||
(RFC 5576) to address Roni Even's comment. | ||||
o Update of the last paragraph in Section 6.2 regarding simulcast | ||||
stream differences as well as forbidding multiple instances of the | ||||
same SCID within a single a=simulcast line. | ||||
o Removal of note in Section 6.4 as result of issue raised by Roni | ||||
Even. | ||||
o Use of "m=" has been changed to media description and a few other | ||||
editorial improvements and clarifications. | ||||
A.3. Modifications Between WG Version -05 and -06 | ||||
o Added section on RTP Aspects | o Added section on RTP Aspects | |||
o Added a requirement (5-4) on that capability exchange must be | o Added a requirement (5-4) on that capability exchange must be | |||
capable of handling multi RTP stream cases. | capable of handling multi RTP stream cases. | |||
o Added extmap attribute also on first signalling example as it is a | o Added extmap attribute also on first signalling example as it is a | |||
recommended to use mechanism. | recommended to use mechanism. | |||
o Clarified the definition of the simulcast attribute and how | o Clarified the definition of the simulcast attribute and how | |||
simulcast streams relates to simulcast formats and SCIDs. | simulcast streams relates to simulcast formats and SCIDs. | |||
o Updated References list and moved around some references between | o Updated References list and moved around some references between | |||
informative and normative categories. | informative and normative categories. | |||
o Editorial improvements and corrections. | o Editorial improvements and corrections. | |||
A.2. Modifications Between WG Version -04 and -05 | A.4. Modifications Between WG Version -04 and -05 | |||
o Aligned with recent changes in draft-ietf-mmusic-rid and draft- | o Aligned with recent changes in draft-ietf-mmusic-rid and draft- | |||
ietf-avtext-rid. | ietf-avtext-rid. | |||
o Modified the SDP offer/answer section to follow the generally | o Modified the SDP offer/answer section to follow the generally | |||
accepted structure, also adding a brief text on modifying the | accepted structure, also adding a brief text on modifying the | |||
session that is aligned with draft-ietf-mmusic-rid. | session that is aligned with draft-ietf-mmusic-rid. | |||
o Improved text around simulcast stream identification (as opposed | o Improved text around simulcast stream identification (as opposed | |||
to the simulcast stream itself) to consistently use the acronym | to the simulcast stream itself) to consistently use the acronym | |||
skipping to change at page 33, line 5 ¶ | skipping to change at page 33, line 33 ¶ | |||
o Changed references for RTP-level pause/resume and VP8 payload | o Changed references for RTP-level pause/resume and VP8 payload | |||
format that are now published as RFC. | format that are now published as RFC. | |||
o Improved IANA registration text. | o Improved IANA registration text. | |||
o Removed unused reference to draft-ietf-payload-flexible-fec- | o Removed unused reference to draft-ietf-payload-flexible-fec- | |||
scheme. | scheme. | |||
o Editorial improvements and corrections. | o Editorial improvements and corrections. | |||
A.3. Modifications Between WG Version -03 and -04 | A.5. Modifications Between WG Version -03 and -04 | |||
o Changed to only use RID identification, as was consensus during | o Changed to only use RID identification, as was consensus during | |||
IETF 94. | IETF 94. | |||
o ABNF improvements. | o ABNF improvements. | |||
o Clarified offer-answer rules for initially paused streams. | o Clarified offer-answer rules for initially paused streams. | |||
o Changed references for RTP topologies and RTP taxonomy documents | o Changed references for RTP topologies and RTP taxonomy documents | |||
that are now published as RFC. | that are now published as RFC. | |||
o Added reference to the new RID draft in AVTEXT. | o Added reference to the new RID draft in AVTEXT. | |||
o Re-structured section 6 to provide an easy reference by the | o Re-structured section 6 to provide an easy reference by the | |||
updated IANA section. | updated IANA section. | |||
o Added a sub-section 7.1 with a discussion of bitrate adaptation. | o Added a sub-section 7.1 with a discussion of bitrate adaptation. | |||
o Editorial improvements. | o Editorial improvements. | |||
A.4. Modifications Between WG Version -02 and -03 | A.6. Modifications Between WG Version -02 and -03 | |||
o Removed text on multicast / broadcast from use cases, since it is | o Removed text on multicast / broadcast from use cases, since it is | |||
not supported by the solution. | not supported by the solution. | |||
o Removed explicit references to unified plan draft. | o Removed explicit references to unified plan draft. | |||
o Added possibility to initiate simulcast streams in paused mode. | o Added possibility to initiate simulcast streams in paused mode. | |||
o Enabled an offerer to offer multiple stream identification (pt or | o Enabled an offerer to offer multiple stream identification (pt or | |||
rid) methods and have the answerer choose which to use. | rid) methods and have the answerer choose which to use. | |||
o Added a preference indication also in send direction offers. | o Added a preference indication also in send direction offers. | |||
o Added a section on limitations of the current proposal, including | o Added a section on limitations of the current proposal, including | |||
identification method specific limitations. | identification method specific limitations. | |||
A.5. Modifications Between WG Version -01 and -02 | A.7. Modifications Between WG Version -01 and -02 | |||
o Relying on the new RID solution for codec constraints and | o Relying on the new RID solution for codec constraints and | |||
configuration identification. This has resulted in changes in | configuration identification. This has resulted in changes in | |||
syntax to identify if pt or RID is used to describe the simulcast | syntax to identify if pt or RID is used to describe the simulcast | |||
stream. | stream. | |||
o Renamed simulcast version and simulcast version alternative to | o Renamed simulcast version and simulcast version alternative to | |||
simulcast stream and simulcast format respectively, and improved | simulcast stream and simulcast format respectively, and improved | |||
definitions for them. | definitions for them. | |||
o Clarification that it is possible to switch between simulcast | o Clarification that it is possible to switch between simulcast | |||
version alternatives, but that only a single one be used at any | version alternatives, but that only a single one be used at any | |||
point in time. | point in time. | |||
o Changed the definition so that ordering of simulcast formats for a | o Changed the definition so that ordering of simulcast formats for a | |||
specific simulcast stream do have a preference order. | specific simulcast stream do have a preference order. | |||
A.6. Modifications Between WG Version -00 and -01 | A.8. Modifications Between WG Version -00 and -01 | |||
o No changes. Only preventing expiry. | o No changes. Only preventing expiry. | |||
A.7. Modifications Between Individual Version -00 and WG Version -00 | A.9. Modifications Between Individual Version -00 and WG Version -00 | |||
o Added this appendix. | o Added this appendix. | |||
Authors' Addresses | Authors' Addresses | |||
Bo Burman | Bo Burman | |||
Ericsson | Ericsson | |||
Gronlandsgatan 31 | Gronlandsgatan 31 | |||
SE-164 60 Stockholm | SE-164 60 Stockholm | |||
Sweden | Sweden | |||
Email: bo.burman@ericsson.com | Email: bo.burman@ericsson.com | |||
Magnus Westerlund | Magnus Westerlund | |||
Ericsson | Ericsson | |||
End of changes. 31 change blocks. | ||||
57 lines changed or deleted | 88 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |