AVT Working Group J. Xia Internet-Draft H. Xia Intended status: Informational J. Zhang Expires: September 1, 2010 Huawei February 28, 2010 Splicing for MPEG2-TS Problem Statement in RTP Sessions draft-xia-avt-splicing-for-mpeg2ts-ps-00 Abstract The base splicing related protocols, i.e., Digital Program Insertion Splicing API [SCTE30] and Digital Program Insertion Cueing Message for Cable [SCTE35], only take into account how to insert the content (e.g. spot advertisements of various lengths, program substitution, public service announcements etc.) into any MPEG-2 Output Multiplex in the Splicer and how to carry notification of upcoming Splicing and other timing information in the transport stream, but not give enough mechanisms to direct underlying transport protocol such as RTP how to work compatibly with the spliced MPEG2-TS. This memo highlights the issues of what's the impact on RTP layer when performing splicing between the primary channel and the insertion channel. Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on September 1, 2010. Copyright Notice Xia, et al. Expires September 1, 2010 [Page 1] Internet-Draft seamless splicing ps February 2010 Copyright (c) 2010 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 the Trust Legal Provisions and are provided without warranty as described in the BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1. Overlap between Insertion Channel and Primary Channel . . . 5 3.2. Gap between Insertion Channel and Primary Channel . . . . . 7 4. Potential Approach . . . . . . . . . . . . . . . . . . . . . . 8 5. Security Considerations . . . . . . . . . . . . . . . . . . . . 8 6. IANA considerations . . . . . . . . . . . . . . . . . . . . . . 8 7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . 8 8. Normative References . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 9 Xia, et al. Expires September 1, 2010 [Page 2] Internet-Draft seamless splicing ps February 2010 1. Introduction MPEG2 Transport Stream (MPEG2-TS) [MPEG2TS] is an encapsulation method and transport that multiplexes digital video and audio content, together with ancillary metadata, and produces a synchronized multiplexed stream that is tailored for transport over packet or cell-oriented networks. MPEG2-TS are composed of 188 byte TS Packets, whose payloads may contain program information as well as Packetized Elementary Streams (PES), typically video and audio streams. The RTP payload format for carrying TS packets in an RTP stream is specified in [RFC2250]. With the expansive application of the MPEG2-TS, cable operators will need solutions that can efficiently manage and process an increasing number of ads. Solutions that can process and splice hundreds of ads in a single device is Digital Program Insertion (DPI) which involve the splicing of a single program transport stream and advertisements in most cases, into a broadcast program. The splicer will seamlessly insert valuable ads into primary programs. The details for describing splicing configuration defined in [SCTE30] are shown in Figure 1. Primary Channel +-----------+ ----------->| | Output Channel | Splicer |----------> ---------->| | | +-----------+ | ^ | Insertion Channel ' | ' +----------+ ' | | ' | Server | <'''''''''''''' | | Signaling Connect . +----------+ ----------> Data ''''''''''> Signaling Figure 1: Single Splicing Configuration [SCTE30] creates a standardized method for communication between Server and Splicer for the insertion of content into any MPEG2 output multiplex in the Splicer. Based on the cue message [SCTE35], Server and Splicer know when and how long for a insertion channel to splice into the specific primary channel. Xia, et al. Expires September 1, 2010 [Page 3] Internet-Draft seamless splicing ps February 2010 However SCET only takes into account the splicing process on application layer for MPEG2-TS regardless of the underlying transport protocol, such as RTP. From this viewpoint, this does not cause any problem for CATV operators who directly carry MPEG2-TS over cable. CATV operators concurrently output the ads MPEG2-TS instead of primary program on Splicer and return to the primary program after the Avail time. The whole procedure is processed only within the MPEG2-TS layer and without any transport protocol limitation. But IPTV operators who provide IP-based video services have to face the issues raised by splicing. In IPTV deployments, Splicer not only performs MPEG2-TS splicing but also needs to coordinate underlying RTP layer to compatibly with MPEG2-TS splicing. By deeply detecting the timing information conveied in MPEG2-TS payload, Splicer can clearly know when to perform splicing. However, during the certain Avail time, the number of insertion RTP packets, which are inserted into primary program by Splicer, is variable due to the different entropy coding. In such case, if the splicing between Insertion channel and Primary channel can not be appropriately handled by Splicer at the beginning and end of Avail time, the RTP sequence number gap or overlay between Insertion channel and Primary channel maybe result in the RTP receiver to request unnecessary retransmission for inexistent packet missing or to discard the useful packets due to the reduplicate sequence number. The use cases where the problems exist are briefly described in section Section Section 3. 2. Terminology The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Throughout this document, the terms used have specific meanings. Because some of the terms that are defined in SCTE30 and SCTE35 have very specific technical meanings, the reader is referred to the original source for their definition. For terms used in this document, brief definitions are given below. Digital Program Insertion (DPI) the digital splicing of MPEG programs into other MPEG programs. Xia, et al. Expires September 1, 2010 [Page 4] Internet-Draft seamless splicing ps February 2010 Avail Time space provided to cable operators by cable programming services during a program for use by the CATV operator; the time is usually sold to local advertisers or used for channel self promotion. Channel Channel is a synonym for a "Service" in DVB terminology, or a "Program" in MPEG terminology. Primary Channel The Primary Multiplex Channel carrying MPEG2-TS. It is spliced in whole or in part by insertion channle. Insertion Channel The Insertion Multiplex Channel(s) that replace the Primary Channel in whole or in part for the duration of a splicing. Splicer The device that splices the Insertion Channel(s) into the Primary Channel(s). It may receive cue messages [SCTE35]. This device also communicates with the Server about when and what to splice. Output Channel The Channel that is produced at the output of the Splicer Server The device that originates the Insertion Channel(s) to be spliced into the Primary Channel(s). This device communicates with the Splicer about when and what to splice. 3. Use Cases In this section, two use cases are listed to illustrate the issues resulting from this imperfect switch on RTP layer. 3.1. Overlap between Insertion Channel and Primary Channel Figure 2 gives the overlay issue at the beginning and end of Avail time. Xia, et al. Expires September 1, 2010 [Page 5] Internet-Draft seamless splicing ps February 2010 ' ' Primary Channel '<-------Avail Time-------->' ' ' +-----+ +-----+ ' +-----+ +-----+ ' +-----+ +-----+ | SN1 |...| SN15| ' | SN16| | SN17| ' | SN18|...| SN25| +-----+ +-----+ ' +-----+ +-----+ ' +-----+ +-----+ | | ' ' | | | | ' ' | | | | ' Insertion Channel ' | | | | ' ' | | | | ' +-----+ +-----+ +-----+ ' | | | | ' | SN1 | | SN2 | | SN3 | ' | | | | ' +-----+ +-----+ +-----+ ' | | | | ' ' ' ' ' | | | | ' ' ' ' ' | | | | ' ' ' ' ' | | v v ' v v v ' v v +-----+ +-----+ ' +-----+ +-----+ +-----+ ' +-----+ +-----+ | SN1 |...| SN15| ' | SN16| | SN17| | SN18| ' | SN19|...| SN26| +-----+ +-----+ ' +-----+ +-----+ +-----+ ' +-----+ +-----+ ' ' Output Channel ' ' Figure 2: Overlap at the end of insertion 1. Before the splicing, the stream of Output Channel on Splicer is from Primary Channel. 2. At the beginning of Avail time, The Splicer switches this Insertion Channel stream to the Output Channel. In order to achieve seamless switch-over, Splicer needs to coordinate the RTP sequence number of Insertion Channel packets with pervious Primary Channel packets prior to delivering them to Output Channel. For example, in figure 2, the RTP sequence number of last Primary Channel packet is SN15, the new RTP sequence number of next insertion packet should be changed to SN16 from SN1. 3. At the end of Avail time, The Splicer returns to the Primary Channel for direction to the Output Channel. If the Insertion Channel packets delivered through Output channel are more than the overridden Primary Channel packets during the Avail time, Splicer needs to coordinate the RTP sequence number of Primary Channel packets with pervious Insertion Channel packets again at this time prior to delivering them to Output Channel. For example, in figure 2, two Primary Channel packets are overridden by three Insertion Channel packets during the Avail time, the new Xia, et al. Expires September 1, 2010 [Page 6] Internet-Draft seamless splicing ps February 2010 RTP sequence number of next Primary Channel packet should be changed to SN19 from SN18. 3.2. Gap between Insertion Channel and Primary Channel Figure 3 gives the gap issue at the beginning and end of Avail time. ' ' Primary Channel '<-------Avail Time-------->' ' ' +-----+ +-----+ ' +-----+ +-----+ +-----+ ' +-----+ +-----+ | SN1 |...| SN15| ' | SN16| | SN17| | SN18| ' | SN19|...| SN25| +-----+ +-----+ ' +-----+ +-----+ +-----+ ' +-----+ +-----+ | | ' ' | | | | ' ' | | | | ' Insertion Channel ' | | | | ' ' | | | | ' +-----+ +-----+ ' | | | | ' | SN1 | | SN2 | ' | | | | ' +-----+ +-----+ ' | | | | ' ' ' ' | | | | ' ' ' ' | | | | ' ' ' ' | | v v ' v v ' v v +-----+ +-----+ ' +-----+ +-----+ ' +-----+ +-----+ | SN1 |...| SN15| ' | SN16| | SN17| ' | SN18|...| SN24| +-----+ +-----+ ' +-----+ +-----+ ' +-----+ +-----+ ' ' Output Channel ' ' Figure 3: Gap at the end of insertion 1. First two steps are same as overlay issue specified in section Section 3.1 2. At the end of Avail duration, The Splicer returns to the Primary Channel for direction to the Output Channel. If the Insertion Channel packets delivered through Output channel are less than the overridden Primary Channel packets during the Avail time, Splicer needs to coordinate the RTP sequence number of Primary Channel packets with pervious Insertion Channel packets again at this time prior to delivering them to Output Channel. For example, in figure 3, three Primary Channel packets are overridden by two Insertion Channel packets during the Avail Xia, et al. Expires September 1, 2010 [Page 7] Internet-Draft seamless splicing ps February 2010 time, the new RTP sequence number of next Primary Channel packet should be changed to SN18 from SN19. 4. Potential Approach Using a powerful Splicer for splicing is a possibility. Splicer takes off the RTP header of Primary Channel packets and Insertion Channel packet when receiving them and performs MPEG2-TS splicing specified in [SCTE30], then recomposes RTP packets to carry the compound Output Channel MPEG2-TS packets. However, Splicer has to decode and encode RTP packets for primary program even if no splicing occur. So the additional overhead is introduced on Splicer when Splicer performs unnecessary decoding and encoding. If we assume Splicer to decode and encode only after splicing occurs, the rest RTP packets of primary program still need to be recomposed even if the splicing is end, i.e., the overhead issue still exists. Furthermore, a Splicer may serve more than one Primary Channel simultaneously, the heavy-laden Splicer may has unpredictable overheads when performing splicing. Based on the above observations, a more efficient splicing mechanism on RTP layer can be justified that would be part of the RTP/RTCP base protocol. 5. Security Considerations 6. IANA considerations 7. Acknowledgments The authors would like to thank all colleagues for their review and comments of this draft. 8. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Xia, et al. Expires September 1, 2010 [Page 8] Internet-Draft seamless splicing ps February 2010 Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003. [RFC2250] Hoffman, D., Fernando, G., Goyal, V., and M. Civanlar, "RTP Payload Format for MPEG1/MPEG2 Video", RFC 2250, January 1998. [SCTE30] "Digital Program Insertion Splicing API", 2001. [SCTE35] "Digital Program Insertion Cueing Message for Cable", 2004. [MPEG2TS] "Generic Coding of Moving Pictures and Associated Audio Information: Systems", 2006. Authors' Addresses Jinwei Xia Huawei Hui Hong Mansion Nanjing, Baixia District 210001 China Phone: +86-025-84565890 Email: xiajinwei@huawei.com Hui Xia Huawei Site B,Floor 12F,Huihong Mansion, No.91 Baixia Rd. Nanjing, Jiangsu 21001 China Phone: +86-25-84565868 Jinhui Zhang Huawei Site B,Floor 12F,Huihong Mansion, No.91 Baixia Rd. Nanjing, Jiangsu 21001 China Phone: +86-25-84565866 Xia, et al. Expires September 1, 2010 [Page 9]