| rfc8853v3.txt | rfc8853.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) B. Burman | Internet Engineering Task Force (IETF) B. Burman | |||
| Request for Comments: 8853 M. Westerlund | Request for Comments: 8853 M. Westerlund | |||
| Category: Standards Track Ericsson | Category: Standards Track Ericsson | |||
| ISSN: 2070-1721 S. Nandakumar | ISSN: 2070-1721 S. Nandakumar | |||
| M. Zanaty | M. Zanaty | |||
| Cisco | Cisco | |||
| May 2020 | January 2021 | |||
| Using Simulcast in Session Description Protocol (SDP) and RTP Sessions | Using Simulcast in Session Description Protocol (SDP) and RTP Sessions | |||
| 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 the Session | to accomplish simulcast in RTP and how to signal it in the Session | |||
| Description Protocol (SDP). The described solution uses an RTP/RTCP | Description Protocol (SDP). The described solution uses an RTP/RTCP | |||
| skipping to change at line 41 ¶ | skipping to change at line 41 ¶ | |||
| received public review and has been approved for publication by the | received public review and has been approved for publication by the | |||
| Internet Engineering Steering Group (IESG). Further information on | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | Internet Standards is available in Section 2 of RFC 7841. | |||
| Information about the current status of this document, any errata, | Information about the current status of this document, any errata, | |||
| and how to provide feedback on it may be obtained at | and how to provide feedback on it may be obtained at | |||
| https://www.rfc-editor.org/info/rfc8853. | https://www.rfc-editor.org/info/rfc8853. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| 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 | |||
| skipping to change at line 1166 ¶ | skipping to change at line 1166 ¶ | |||
| those agreed between the SFM and the receiver, and no MID values from | those agreed between the SFM and the receiver, and no MID values from | |||
| the originating side of the SFM are to be forwarded. | the originating side of the SFM are to be forwarded. | |||
| An SFM could expose corresponding RTP streams for all the media | An SFM could expose corresponding RTP streams for all the media | |||
| sources and their simulcast streams and then, for any media source | sources and their simulcast streams and then, for any media source | |||
| that is to be provided, forward one selected simulcast stream. | that is to be provided, forward one selected simulcast stream. | |||
| However, this is not recommended, as it would unnecessarily increase | However, this is not recommended, as it would unnecessarily increase | |||
| the number of RTP streams and require the receiver to timely detect | the number of RTP streams and require the receiver to timely detect | |||
| switching between simulcast streams. The above usage requires the | switching between simulcast streams. The above usage requires the | |||
| same SFM functionality for switching, while avoiding the | same SFM functionality for switching, while avoiding the | |||
| uncertainties of timely detecting that a RTP stream ends. The | uncertainties of timely detecting that an RTP stream ends. The | |||
| benefit would be that the received simulcast stream would be | benefit would be that the received simulcast stream would be | |||
| implicitly provided by which RTP stream would be active for a media | implicitly provided by which RTP stream would be active for a media | |||
| source. However, using RtpStreamId to make this explicit also | source. However, using RtpStreamId to make this explicit also | |||
| exposes which alternative format is used. The conclusion is that | exposes which alternative format is used. The conclusion is that | |||
| using one RTP stream per simulcast stream is unnecessary. The issue | using one RTP stream per simulcast stream is unnecessary. The issue | |||
| with timely detecting end of streams, independent of whether they are | with timely detecting end of streams, independent of whether they are | |||
| stopped temporarily or long term, is that there is no explicit | stopped temporarily or long term, is that there is no explicit | |||
| indication that the transmission has intentionally been stopped. The | indication that the transmission has intentionally been stopped. The | |||
| RTCP-based pause and resume mechanism [RFC7728] includes a PAUSED | RTCP-based pause and resume mechanism [RFC7728] includes a PAUSED | |||
| indication that provides the last RTP sequence number transmitted | indication that provides the last RTP sequence number transmitted | |||
| skipping to change at line 1216 ¶ | skipping to change at line 1216 ¶ | |||
| they are. The RTP-stream-to-MID and -RtpStreamId associations should | they are. The RTP-stream-to-MID and -RtpStreamId associations should | |||
| here be long-term stable. | here be long-term stable. | |||
| 7. Network Aspects | 7. Network Aspects | |||
| 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. | |||
| Transmitting multiple independent streams that originate from the | Transmitting multiple independent streams that originate from the | |||
| same source could potentially be done in several different ways using | same source could potentially be done in several different ways using | |||
| RTP. A general discussion on considerations for use of the different | RTP. A general discussion on considerations for use of the different | |||
| RTP multiplexing alternatives can be found in "Guidelines for using | RTP multiplexing alternatives can be found in "Guidelines for Using | |||
| the Multiplexing Features of RTP to Support Multiple Media Streams" | the Multiplexing Features of RTP to Support Multiple Media Streams" | |||
| [MULTIPLEX]. Discussion and clarification on how to handle multiple | [RFC8872]. Discussion and clarification on how to handle multiple | |||
| streams in an RTP session can be found in [RFC8108]. | streams in an RTP session can 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 (QoS): When using simulcast, it might be of | Quality of Service (QoS): When using simulcast, it might be of | |||
| interest to prioritize a particular simulcast stream, rather than | interest to prioritize a particular simulcast stream, rather than | |||
| applying equal treatment to all streams. For example, lower- | applying equal treatment to all streams. For example, lower- | |||
| bitrate streams may be prioritized over higher-bitrate streams to | bitrate streams may be prioritized over higher-bitrate streams to | |||
| minimize congestion or packet losses in the low-bitrate streams. | minimize congestion or packet losses in the low-bitrate streams. | |||
| Thus, there is a benefit to using a simulcast solution with good | Thus, there is a benefit to using a simulcast solution with good | |||
| skipping to change at line 1371 ¶ | skipping to change at line 1371 ¶ | |||
| Stream Pause and Resume", RFC 7728, DOI 10.17487/RFC7728, | Stream Pause and Resume", RFC 7728, DOI 10.17487/RFC7728, | |||
| February 2016, <https://www.rfc-editor.org/info/rfc7728>. | February 2016, <https://www.rfc-editor.org/info/rfc7728>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | [RFC8843] Holmberg, C., Alvestrand, H., and C. Jennings, | |||
| "Negotiating Media Multiplexing Using the Session | "Negotiating Media Multiplexing Using the Session | |||
| Description Protocol (SDP)", RFC 8843, | Description Protocol (SDP)", RFC 8843, | |||
| DOI 10.17487/RFC8843, April 2020, | DOI 10.17487/RFC8843, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8843>. | <https://www.rfc-editor.org/info/rfc8843>. | |||
| [RFC8851] Roach, A.B., Ed., "RTP Payload Format Restrictions", | [RFC8851] Roach, A.B., Ed., "RTP Payload Format Restrictions", | |||
| DOI 10.17487/RFC8851, RFC 8851, April 2020, | RFC 8851, DOI 10.17487/RFC8851, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8851>. | <https://www.rfc-editor.org/info/rfc8851>. | |||
| [RFC8852] Roach, A.B., Nandakumar, S., and P. Thatcher, "RTP Stream | [RFC8852] Roach, A.B., Nandakumar, S., and P. Thatcher, "RTP Stream | |||
| Identifier Source Description (SDES)", | Identifier Source Description (SDES)", RFC 8852, | |||
| DOI 10.17487/RFC8852, RFC 8852, April 2020, | DOI 10.17487/RFC8852, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8852>. | <https://www.rfc-editor.org/info/rfc8852>. | |||
| [RFC8859] Nandakumar, S., "A Framework for SDP Attributes when | [RFC8859] Nandakumar, S., "A Framework for Session Description | |||
| Multiplexing", RFC 8859, DOI 10.17487/RFC8859, April 2020, | Protocol (SDP) Attributes When Multiplexing", RFC 8859, | |||
| DOI 10.17487/RFC8859, January 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8859>. | <https://www.rfc-editor.org/info/rfc8859>. | |||
| 11.2. Informative References | 11.2. Informative References | |||
| [MULTIPLEX] | ||||
| Westerlund, M., Burman, B., Perkins, C., Alvestrand, H., | ||||
| and R. Even, "Guidelines for using the Multiplexing | ||||
| Features of RTP to Support Multiple Media Streams", Work | ||||
| in Progress, Internet-Draft, draft-ietf-avtcore-multiplex- | ||||
| guidelines-12, 16 June 2020, <https://tools.ietf.org/html/ | ||||
| draft-ietf-avtcore-multiplex-guidelines-12>. | ||||
| [RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., | [RFC2198] Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., | |||
| Handley, M., Bolot, J.C., Vega-Garcia, A., and S. Fosse- | Handley, M., Bolot, J.C., 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, | |||
| <https://www.rfc-editor.org/info/rfc2198>. | <https://www.rfc-editor.org/info/rfc2198>. | |||
| [RFC3389] Zopf, R., "Real-time Transport Protocol (RTP) Payload for | [RFC3389] Zopf, R., "Real-time Transport Protocol (RTP) Payload for | |||
| Comfort Noise (CN)", RFC 3389, DOI 10.17487/RFC3389, | Comfort Noise (CN)", RFC 3389, DOI 10.17487/RFC3389, | |||
| September 2002, <https://www.rfc-editor.org/info/rfc3389>. | September 2002, <https://www.rfc-editor.org/info/rfc3389>. | |||
| skipping to change at line 1487 ¶ | skipping to change at line 1480 ¶ | |||
| [RFC8108] Lennox, J., Westerlund, M., Wu, Q., and C. Perkins, | [RFC8108] Lennox, J., Westerlund, M., Wu, Q., and C. Perkins, | |||
| "Sending Multiple RTP Streams in a Single RTP Session", | "Sending Multiple RTP Streams in a Single RTP Session", | |||
| RFC 8108, DOI 10.17487/RFC8108, March 2017, | RFC 8108, DOI 10.17487/RFC8108, March 2017, | |||
| <https://www.rfc-editor.org/info/rfc8108>. | <https://www.rfc-editor.org/info/rfc8108>. | |||
| [RFC8627] Zanaty, M., Singh, V., Begen, A., and G. Mandyam, "RTP | [RFC8627] Zanaty, M., Singh, V., Begen, A., and G. Mandyam, "RTP | |||
| Payload Format for Flexible Forward Error Correction | Payload Format for Flexible Forward Error Correction | |||
| (FEC)", RFC 8627, DOI 10.17487/RFC8627, July 2019, | (FEC)", RFC 8627, DOI 10.17487/RFC8627, July 2019, | |||
| <https://www.rfc-editor.org/info/rfc8627>. | <https://www.rfc-editor.org/info/rfc8627>. | |||
| [RFC8872] Westerlund, M., Burman, B., Perkins, C., Alvestrand, H., | ||||
| and R. Even, "Guidelines for Using the Multiplexing | ||||
| Features of RTP to Support Multiple Media Streams", | ||||
| RFC 8872, DOI 10.17487/RFC8872, January 2021, | ||||
| <https://www.rfc-editor.org/info/rfc8872>. | ||||
| Appendix A. Requirements | Appendix A. Requirements | |||
| The following requirements are met by the defined solution to support | The following requirements are met by the defined solution to support | |||
| the use cases (Section 3): | the use cases (Section 3): | |||
| REQ-1: Identification: | REQ-1: Identification: | |||
| REQ-1.1: It must be possible to identify a set of simulcasted RTP | REQ-1.1: It must be possible to identify a set of simulcasted RTP | |||
| streams as originating from the same media source in SDP | streams as originating from the same media source in SDP | |||
| signaling. | signaling. | |||
| End of changes. 11 change blocks. | ||||
| 19 lines changed or deleted | 18 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||