SSRC Group Based Simulcast Signaling
Author(s): Suhas Nandakumar
In some applications it may be necessary to send multiple media encodings corresponding to a media source with in independent RTP media streams. This is called Simulcast. This document discusses a framework for describing simulcast media streams in...
MMUSIC Working Group S. Nandakumar Internet-Draft Cisco Intended status: Standards Track July 15, 2013 Expires: January 16, 2014 SSRC Group Based Simulcast Signaling draft-nandakumar-mmusic-rtcweb-grouping-00 Abstract In some applications it may be necessary to send multiple media encodings corresponding to a media source with in independent RTP media streams. This is called Simulcast. This document discusses a framework for describing simulcast media streams in SDP and also defines semantics to express relationship amongst them. The semantics defined in this document are to be used with the source specific grouping framework defined in the [RFC5576] Status of This Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet- Drafts is at http://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on January 16, 2014. Copyright Notice Copyright (c) 2013 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of Nandakumar Expires January 16, 2014 [Page 1] Internet-Draft SSRC Group Simulcast July 2013 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Solution Overview . . . . . . . . . . . . . . . . . . . . . . 4 4. imageattr for a=ssrc attribute . . . . . . . . . . . . . . . 4 5. The SIMUCAST ssrc-group attribute . . . . . . . . . . . . . . 5 6. SDP Examples . . . . . . . . . . . . . . . . . . . . . . . . 5 7. Offer/Answer Consideration . . . . . . . . . . . . . . . . . 6 8. Simulcast and Multiplexing . . . . . . . . . . . . . . . . . 6 9. Simulcast under Multicast RTP Topology . . . . . . . . . . . 6 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 7 12. Normative References . . . . . . . . . . . . . . . . . . . . 7 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 8 1. Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC 2119]. Capture Device: The physical source of stream of media data of one type such as camera or microphone. Media Source: A Media Source logically defines the source of a raw stream of media data as generated either by a single capture device or by a conceptual source. A Media Source represents an Audio Source or a Video Source. Media Encoding: A particular encoding applied to the media data from a media source through the choice of sampling, bit-rate and other codec configuration parameters. Media Stream: Media from a Media Source is encoded and packetized to produce one or more Media Streams representing a sequence of RTP packets. RTP Source: Same as Media Stream. RTP Session: An RTP session is an association among a group of participants communicating with RTP. It is a group communications channel which can potentially carry a number of Media Streams. Within an RTP session, every participant finds out meta-data and control information (over RTCP) about all the Media Streams in the Nandakumar Expires January 16, 2014 [Page 2] Internet-Draft SSRC Group Simulcast July 2013 RTP session. The bandwidth of the RTCP control channel is shared within an RTP Session. Media Transport: A Media Transport defines an end-to-end transport association for carrying one or more RTP Sessions. The combination of a network address and port uniquely identifies such a transport association, for example an IP address and a UDP port. 2. Introduction Simulcast refers to taking media from a single media capture (e.g., a camera), and encoding it multiple times at different resolutions and / or frame rates. For example, a device with a single HD camera may send one version of the video at full HD resolution, and a second version encoded at a low resolution. This would allow a video conferencing bridge to be able to send the high resolution copy to some destination and low resolution copy to other destinations without having to recode the video at the conference bridge. [I-D.westerlund-avtcore-rtp-simulcast] describes different encodings of a media content to be combination of the following: o Bit-rate: The difference is the amount of bits spent to encode the media thus giving different quality. o Codec: Different media codecs are used to ensure that different receivers that do not have a common set of decoders can decode at least one of the versions. This can include codec configuration options that are not compatible, like video encoder profiles, or the capability of receiving the transport packetization. o Sampling: Different sampling of media, in spatial as well as in temporal domain, may be used to suit different rendering capabilities or needs at the receiving endpoints, as well as a method to achieve different bit-rates. For video streams, spatial sampling affects image resolution and temporal sampling affects video frame rate. For audio, spatial sampling relates to the number of audio channels and temporal sampling affects audio bandwidth. Obviously, a difference in sampling may result in difference in bit-rate. In any application that needs to send multiple encodings, there is a potential need for simulcast. The purpose of this document is to discuss suitable signaling solution in SDP for describing and negotiating simulcast streams, within the context of the Real Time Transport Protocol(RTP). Nandakumar Expires January 16, 2014 [Page 3] Internet-Draft SSRC Group Simulcast July 2013 3. Solution Overview The source-attribute specification [RFC5576] provides mechanisms describing Real-Time Protocol (RTP) [RFC3550] sources, identified by their synchronization source (SSRC) identifier, in the Session Description Protocol (SDP) [RFC4566], to associate attributes with these sources, and to express relationships among individual sources. To describe and negotiate simulcast streams with in SDP for a given media source, the following framework is been proposed: o Each physical media source is represented by its own unique m-line. This is a strict one-to-one mapping; a single media source device cannot be spread across several m-lines, nor may a single m-line represent multiple media sources. o Each simulcast media stream is marked with an a=ssrc attribute to correlate it with its RTP Packets o A new SSRC Grouping semantic is proposed to express the simulcast relationship between the media streams. o In the absence of the above grouping semantic, multiple SSRCs in a single m-line are interpreted as alternate sources for the same media source. o For multi-resolution simulcast, [RFC6236] imageattr is proposed for a=ssrc attribute line, to specify send multiple resolutions, for example. o For the receiver control of selecting the simulcast stream to receive, the mechanisms defined in [I-D.lennox-mmusic-sdp-source-selection] is proposed. o When multicast topology is used to distribute RTP/RTCP packets, having same multicast address across all the m=lines is proposed when multiplexing framework such as BUNDLE [I-D.ietf-mmusic-sdp-bundle-negotiation] is in operation. Providing explicit resolutions on a per-SSRC basis for SIMULCAST groupings allows an intermediary (such as a Media Translator [RFC5117]) to be able to select an appropriate SIMULCAST layer without inspecting the media stream, which could otherwise require decrypting and possibly partially decoding media packets. 4. imageattr for a=ssrc attribute Nandakumar Expires January 16, 2014 [Page 4] Internet-Draft SSRC Group Simulcast July 2013 This document extends a=ssrc attribute [RFC5576] by introducing [RFC6236] imageattr enabling specification of multi-resolution simulcast streams for a given media source. 5. The SIMUCAST ssrc-group attribute This document also extends [RFC5576] SSRC Grouping Framework semantics (a=ssrc-group) to indicate relationship between the simulcast media streams for a given media source. A semantic called "SIMULCAST" is defined to achieve this purpose. 6. SDP Examples The example SDP in Figure 1 shows simulcast encoding with the use of different codec-specific parameters using two different payload types for a camera source. It also describes different resolutions for each encoded simulcast media stream. The "SIMULCAST" SSRC grouping semantic is included to signal the relationship. m=video 62537 RTP/SAVPF 96 97 a=rtpmap:96 VP8/90000 a=rtpmap:97 VP8/90000 a=sendrecv a=ssrc:29154 a=imageattr:96 [x=1280,y=720] //Stream 1 a=fmtp:96 max-fr=30;max-fs=3600 a=ssrc:47182 a=imageattr:97 [x=640,y=360] //Stream 2 a=fmtp:97 max-fr=15;max-fs=880 a=ssrc-group:SIMULCAST 29154 47182 Figure 1 The SDP example in Figure 2, advertises simulcast of 2 video sources corresponding to 2 cameras, each at 2 resolutions. m=video 62537 RTP/SAVPF 96 97 //Camera 1 a=rtpmap:96 VP8/90000 a=rtpmap:97 VP8/90000 a=sendrecv a=ssrc:11111 a=ssrc:22222 a=imageattr:96 [x=1280,y=720] a=fmtp:96 max-fr=30;max-fs=3600 a=imageattr:97 [x=640,y=360] a=fmtp:97 max-fr=15;max-fs=880 a=ssrc-group:SIMULCAST 29154 47182 Nandakumar Expires January 16, 2014 [Page 5] Internet-Draft SSRC Group Simulcast July 2013 m=video 54890 RTP/SAVPF 96 97 //Camera 2 a=rtpmap:96 H264/90000 a=rtpmap:97 H264/90000 a=sendrecv a=ssrc:33333 a=ssrc:44444 a=fmtp:96 profile-level-id=4d0028;packetization-mode=1;max-fr=30 a=fmtp:97 profile-level-id=4d0028;packetization-mode=1;max-fr=15 a=ssrc-group:SIMULCAST 33333 44444 Figure 2 7. Offer/Answer Consideration The Offer/Answer model for this specification adheres to the model as applicable to Source-Specific Media SDP attributes [RFC5576] and its extensions [I-D.lennox-mmusic-sdp-source-selection]. 8. Simulcast and Multiplexing Multiplexing in RTP can be achieved in several ways as listed: Payload Type based Multiplexing Media Stream Multiplexing based on SSRC in a Single RTP Session RTP Session Multiplexing over a single Media Transport. The proposed solution in this document assumes Media Stream Multiplexing to transport the simulcast encodings from several media sources with in a single RTP Session,whenever possible. Such a solution can be envisioned by the usage of multiplexing frameworks, such as, BUNDLE [I-D.ietf-mmusic-sdp-bundle-negotiation]. In the absence of such a framework, each media source gets its own RTP Session with its associated simulcast encodings multiplexed based on their respective SSRCs. 9. Simulcast under Multicast RTP Topology [RFC5117] describes several underlying network topologies supported by RTP. In this section the operation of the solution under multicast topologies is analyzed. The proposed solution enables right behavior for RTCP reporting across the members of the group, since all the sources and their simulcast streams form a single RTP Session under the BUNDLE multiplexing framework. Nandakumar Expires January 16, 2014 [Page 6] Internet-Draft SSRC Group Simulcast July 2013 In the scenarios where using a single 5-tuple for all the media sources is not possible, carrying each source with its simulcast encodings in its own RTP Session ensures correct behavior. Allowing media sources to send different simulcast encodings to different multicast group addresses is not directly enabled within the solution proposed. Such a situation might arise to enable the receivers to selectively choose the multicast groups based on their receiving capabilities or interests. However, the mechanisms defined in [I-D.lennox-mmusic-sdp-source-selection] enables receiver control to selectively choose the simulcast streams of interest. 10. IANA Considerations TBD 11. Acknowledgements I would like to thanks Cullen Jennings for his inputs and review on the proposed solution. 12. Normative References [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with Session Description Protocol (SDP)", RFC3264, June 2002. [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC4566, July 2006. [RFC5888] Camarillo, G. and H. Schulzrinne, "The Session Description Protocol (SDP) Grouping Framework", RFC5888, June 2010. [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific Media Attributes in the Session Description Protocol (SDP)", RFC5576, June 2009. [RFC6236] Johansson, I. and K. Jung, "Negotiation of Generic Image Attributes in the Session Description Protocol (SDP)", RFC 6236, May 2011. [RFC5117] Westerlund, M. and S. Wenger, "RTP Topologies", RFC5117, January 2008. Nandakumar Expires January 16, 2014 [Page 7] Internet-Draft SSRC Group Simulcast July 2013 [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC3550, July 2003. [I-D.lennox-mmusic-sdp-source-selection] Lennox, J. and H. Schulzrinne, "Mechanisms for Media Source Selection in the Session Description Protocol (SDP)", draft-lennox-mmusic-sdp-source-selection-05 (work in progress), October 2012. [I-D.westerlund-avtcore-rtp-simulcast] Westerlund, M., Lindqvist, M., and F. Jansson, "Using Simulcast in RTP Sessions", draft-westerlund-avtcore-rtp- simulcast-02 (work in progress), February 2013. [I-D.lennox-raiarea-rtp-grouping-taxonomy] Lennox, J. and K. Gross, "A Taxonomy of Grouping Semantics and Mechanisms for Real-Time Transport Protocol (RTP) Sources", draft-lennox-raiarea-rtp-grouping-taxonomy-00 (work in progress), February 2013. [I-D.ietf-mmusic-sdp-bundle-negotiation] Holmberg, C., Alvestrand, H., and C. Jennings, "Multiplexing Negotiation Using Session Description Protocol (SDP) Port Numbers", draft-ietf-mmusic-sdp- bundle-negotiation-04 (work in progress), June 2013. Author's Address Suhas Nandakumar Cisco 170 West Tasman Drive San Jose, CA 95134 USA Email: email@example.com Nandakumar Expires January 16, 2014 [Page 8]