US20110072148A1 - Distributed Coordination of Network Elements for Packet Encapsulation - Google Patents

Distributed Coordination of Network Elements for Packet Encapsulation Download PDF

Info

Publication number
US20110072148A1
US20110072148A1 US12/566,007 US56600709A US2011072148A1 US 20110072148 A1 US20110072148 A1 US 20110072148A1 US 56600709 A US56600709 A US 56600709A US 2011072148 A1 US2011072148 A1 US 2011072148A1
Authority
US
United States
Prior art keywords
stream
source
packets
packet
encapsulator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US12/566,007
Inventor
Ali C. Begen
William C. Ver Steeg
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Priority to US12/566,007 priority Critical patent/US20110072148A1/en
Assigned to CISCO TECHNOLOGY, INC. reassignment CISCO TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VER STEEG, WILLIAM C, BEGEN, ALI C
Publication of US20110072148A1 publication Critical patent/US20110072148A1/en
Priority to US14/718,807 priority patent/US10142387B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234309Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by transcoding between formats or standards, e.g. from MPEG-2 to MPEG-4 or from Quicktime to Realvideo
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
    • H04N21/23605Creation or processing of packetized elementary streams [PES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L21/00Apparatus or local circuits for mosaic printer telegraph systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals

Definitions

  • the present disclosure relates to distribution of video streams.
  • a video encoder (with N ⁇ 1 redundancy) has two Ethernet outputs, feeding two encapsulator devices.
  • the encapsulator devices are not able to generate identical streams because the RTP identifiers such as the sequence numbers and timestamps are not coordinated between the devices. Different encapsulator devices may produce totally different streams even for the same content.
  • FIG. 1 is a block diagram illustrating a video distribution system comprising a plurality of encapsulator devices each configured to perform a coordinated packet encapsulation process according to the techniques described herein.
  • FIG. 2 is a block diagram of an encapsulator device configured to perform a coordinated packet encapsulation process.
  • FIG. 3 is a flow chart depicting the coordinated packet encapsulation process according to a first embodiment.
  • FIG. 4 is a flow chart depicting the coordinated packet encapsulation process according to a second embodiment.
  • FIG. 5 is a diagram depicting an example of one or more fields of a source stream packet from which information is used to generate parameters for the output stream packets.
  • FIG. 6 is a diagram further depicting functions of the coordinated packet encapsulation process of the second embodiment.
  • each of a plurality of encapsulator devices receives a source stream of encoded packets in a first transport format to be converted to packets of an output stream in a second transport format for communication over a data network.
  • Each encapsulator device generates one or more fundamental identifying characteristics for the output stream based on information contained in one or more fields of a packet in the source stream so that the packets in the output stream generated by each of the encapsulator devices from the source stream are coordinated with respect to each other.
  • each encapsulator device is configured to generate a packet sequence number and a timing reference for each packet in the output stream based on information in one or more fields of a packet in the source stream.
  • each encapsulator device is configured to generate a source stream identifier for the output stream from information contained in one or more packets of the source stream such that the output stream from each encapsulator device has the same source stream identifier for the same incoming source stream of encoded packets in the first transport format.
  • an arbitrary one (referred to as a “first”) of the plurality of encapsulator devices is configured to generate a preliminary encapsulation and packetization of the packets in the source stream into packets for the output stream of packets in the second transport format.
  • This first encapsulator device transmits information describing the preliminary encapsulation and packetization to at least one other encapsulator device in the plurality of encapsulator devices.
  • the other encapsulator devices receive the information describing the preliminary encapsulation and packetization from the first encapsulator device, and generate an output stream of packets in the second transport format based on packets of the source stream and the information describing the preliminary encapsulation and packetization.
  • FIG. 1 an example block diagram is shown for a video distribution system 5 to which the techniques described herein may be useful.
  • a source video encoder 10 that generates a source stream of video (containing audio) data.
  • the source video encoder 10 may reside or be associated with a service provider's headend facilities.
  • the source video encoder 10 may be configured to generate a source stream for a single channel, e.g., a specific television (TV) program or channel.
  • the source stream comprises encoded video packets in accordance with a first transport format.
  • the source stream comprises raw user datagram protocol (UDP) encapsulated MPEG2-TS packets over Internet Protocol (IP) for a given program or channel.
  • UDP raw user datagram protocol
  • IP Internet Protocol
  • the source stream is transmitted over a network 20 , such as the Internet or one or more proprietary and closed networks.
  • a network 20 is a hybrid fiber coax (HFC), coax or other similar network.
  • HFC hybrid fiber coax
  • the source stream needs to be converted into a transport stream according to a second transport format, an example of which is the real-time transport protocol (RTP) format.
  • RTP real-time transport protocol
  • the RTP format is a standardized packet format for delivering audio and video over the Internet.
  • the RTP is used extensively in communication and entertainment systems that involve streaming media, such as telephony, video/teleconferencing applications and web-based push-to-talk features, Internet TV (IPTV), etc.
  • IPTV Internet TV
  • An example of an encapsulator device is the Digital Content Manager device, manufactured and sold by Cisco Systems, Inc.
  • the produced output streams e.g., RTP streams
  • the plurality of different encapsulator devices produce identical output (e.g., RTP) streams for a given input source stream.
  • centrally managing the encapsulator devices 30 ( 1 )- 30 (N) within an operator's network is not desirable.
  • a distributed coordination solution is preferable because it offers greater scalability.
  • the output RTP streams 1 -N produced by corresponding ones of the encapsulator devices 30 ( 1 )- 30 (N) may be distributed over a network 50 to corresponding destination devices 60 ( 1 )- 60 (N).
  • the network 50 may be the Internet, and may be the same network as that identified by reference numeral 20 in FIG. 1 .
  • Each RTP stream is identified by a synchronization source (SSRC) number. Similar to port number(s) assigned to a specific MPEG2-TS, the SSRC number can be set (globally, if desired) by an operator.
  • SSRC synchronization source
  • Each encapsulator device 30 ( 1 )- 30 (N) is configured to encapsulate packets in the source stream to packets in an output stream, e.g., an RTP stream, such that the output streams generated and output by devices 30 ( 1 )- 30 (N) for the same source stream (and thus carrying the same video stream) are coordinated. That is, one or more fundamental identifying characteristics for each of the RTP streams is the same across RTP streams 1 -N output by encapsulator devices 30 ( 1 )- 30 (N), respectively.
  • An example fundamental identifying characteristic is a packet sequence number for each packet in the output streams.
  • An example of another fundamental identifying characteristic is timestamps or in general a timing reference for packets in the output streams.
  • Still another fundamental characteristic is the SSRC number (stream source identifier) that is assigned to each output RTP stream. It is desirable to configure each encapsulator device 30 ( 1 )- 30 (N) to generate for the same source stream multiple output streams having the same fundamental characteristics described above.
  • the output stream comprises:
  • the techniques described herein are applicable to any device that is configured to perform RTP encapsulation for an incoming stream.
  • a secondary RTP encapsulation may be needed for an incoming RTP stream.
  • each encapsulator device receives the source stream without any loss and with packets in order. If this is not the case, the encapsulator device may use some additional methods (such as live/live where the same stream is received from different networks and one stream can be used if the other fails, forward error correction, etc.) to recover the missing packets before RTP encapsulation. If the incoming packets of the source stream are out of order, some MPEG-level checking analysis, for example, may be employed at an encapsulator device to put them back in order.
  • a first form of the coordinated encapsulation process logic 100 is described. This form is particularly usefully when the encapsulation devices 30 ( 1 )- 30 (N) are co-located and can communicate with each other to coordinate how each device encapsulates the RTP packets. For example, the encapsulation devices 30 ( 1 )- 30 (N) can communicate with each other over the network 50 shown in FIG. 1 .
  • both timestamps and seqnums can be generated in a coordinated fashion for multiple output RTP streams.
  • each encapsulation device receives the source stream of encoded packets in a first transport format, ultimately to be converted to an output stream of packets in a second transport format, e.g., the RTP format.
  • a determination is made as to whether the encapsulation device is to serve as a “master” with respect to other encapsulation devices in connection with setting up basic parameters for the encapsulation process to be used for all the encapsulation devices.
  • the encapsulation device in which the logic 100 is running is to serve as the master then the functions on the left-hand side of FIG. 3 are performed, and otherwise, the functions on the right-hand side of FIG. 3 are performed, as indicated by the decision block 104 .
  • the master encapsulator device sends a message to the other encapsulator devices, the message comprising information describing the preliminary encapsulation and packetization plan. This message is transmitted as an “out-of-band” message and is referred to herein as an “out-of-band mapping stream”.
  • the master encapsulator device receives feedback, if any, sent from other encapsulator devices as to the preliminary encapsulation and packetization plan and resolves any conflicts or issues raised in the received feedback messages.
  • the master encapsulator device continues encapsulating the incoming packets into packets for the output stream using the finalized encapsulation and packetization plan.
  • each of the other encapsulator devices receives the preliminary encapsulation and packetization plan from the master encapsulator device.
  • each encapsulator device evaluates the plan and sends feedback, if any, to the master encapsulator device in the form of a feedback message.
  • the other encapsulator devices continue encapsulating the packets from the source stream into packets for the outputs stream according to the preliminary (or finalized) encapsulation and packetization plan.
  • FIG. 4 the second form of the coordinated RTP encapsulation process logic 100 ′ is now described.
  • This approach does not require any communication between encapsulator devices 30 ( 1 )- 30 (N). Each operates autonomously as described hereinafter. Consequently, this approach is useful whether or not the encapsulator devices are co-located.
  • this approach involves each encapsulator device generating one or more fundamental identifying characteristics for the output stream in the second transport format based on information contained in one or more fields of a packet in the source stream so that the packets in the output stream generated by each of the encapsulator devices from the source stream are coordinated with respect to each other.
  • determining only the initial seqnum is essential. If the initial seqnum is coordinated across the encapsulator devices, the subsequent seqnums for subsequent packets can be generated from the initial seqnum in a straightforward manner. At the end, the same sequence numbers are generated for packets in the output streams which carry the same data even if the respective encapsulator devices start generating sequence numbers based on different packets from the source stream.
  • FIG. 5 a diagram is shown for several header fields of an MPEG2-TS packet.
  • the input to the first one-to-one mapping function comprises, for example, PES private data field 200 , that is used to generate the RTP seqnums for RTP packets.
  • Examples of one-to-one mapping functions are perfect hashing functions that map one or more input values to a unique output value such that the same input value(s) is/are always mapped to the same output values. However, a perfect hashing function is not required. Any mapping function that makes a one-to-one mapping of inputs to outputs is suitable and the function need not also perform a one-to-one mapping of outputs to inputs.
  • a source identifier e.g., an SSRC number
  • the SSRC number is an identifier for the overall RTP stream.
  • the SSRC number is unique within an RTP session, which means that different RTP streams in different RTP sessions may share the same SSRC value (32 bits).
  • the encapsulator devices create the same SSRC numbers for the same incoming source stream. For example, in IPTV distribution systems, each channel of programming is offered on a source-specific multicast (SSM) session, and is identified by the address pair (S, G), where S is the source IP address and G is the destination multicast address.
  • SSM source-specific multicast
  • the destination multicast address G is shared, using only G as input to a hashing function produces the same SSRC number. In that case, the source address S values will be different. Consequently, a combination of the source address S values and destination multicast address values can be used as input to hashing function to generate the SSRC number for RTP streams.
  • the SSRC computation function 136 need be made only once for a given RTP stream, but the same SSRC number is included in all RTP packets for that stream, and for all the RTP streams produced by the encapsulator devices 30 ( 1 )- 30 (N) when generated from the same source stream.
  • RTP packet containing the seqnum generated at 132 , the timestamp generated at 134 and the SSRC generated at 136 (for that packet or for a prior packet that is part of the same RTP stream) is transmitted as part of the output RTP stream.
  • each encapsulator device in order for each encapsulator device to generate the same RTP seqnum and timestamp, they need to use the same packet as the “seed” for the mapping functions. Actually, if all the encapsulator devices receive the same first packet, by default they will all use that packet as the seed and produce identical RTP streams. However, it cannot be guaranteed that all the encapsulator devices will receive the same first packet (due to loss or other reasons). They may receive different (first) packets. If the seed is different, the output of the mapping function will be different.
  • an encapsulator device uses information from a source stream packet as a seed, it continues to monitor the incoming source stream packets and makes any necessary adjustments in case there is a gap (i.e., loss) of a source stream packet in the sequence of source stream packets.
  • the encapsulator device may use fields of information from new source stream packets to produce the one or more fundamental characteristics.
  • the techniques described herein are designed not to coordinate all the packet flows going thru the encapsulator. Depending on the content source, encoder settings, etc., the PCR/PTS/DTS values of different source stream packet flows generated by different source video encoders will be different. Rather, the techniques are directed to coordinating the RTP streams produced by different encapsulator devices from the same source stream. Seqnum coordination is a lot more useful in RTP-level monitoring/processing and stream switching as that is more apparent in RTCP reports and RTP-level processing. However, timestamp coordination may also be desired.
  • the techniques described herein provide allow for generation of identical RTP stream by different encapsulator devices (for the same raw source stream feed, e.g., MPEG2-TS feed) in a distributed fashion.
  • all the RTP streams produced from a source stream feed are identical in a service provider network, correlation of the events and feedback (such as RTCP reports) associated with RTP streams generated by different devices becomes much easier. This increases the overall benefit of RTP-level monitoring. Also, when multiple RTP streams are generated for redundancy purposes, having them identical will make recovery much faster and more reliable.
  • one encapsulator device When one encapsulator device has a failure, another encapsulator device can take over for it as a backup and thus becomes the source for the RTP stream. Since their output streams were coordinated, the destination devices for the failed encapsulator device will experience minimal disruption from the failure. Moreover, two encapsulator devices can be configured to perform live/live transmission whereby both supply streams simultaneously, and duplicate suppression may be performed on the streams before they reach the receivers. If one stream fails, the packet transmission to the destination devices will be nevertheless be perfect (assuming the coordination between the streams was perfect).
  • the one-to-one mapping function referred to above converts a bit pattern from one or more fields of source stream packet into a bit pattern representing one or more of the fundamental identifying characteristics (e.g., packet sequence number, timing reference and source stream identifier) in the packets of the output stream. Since each encapsulator device is configured to use the same one-to-one mapping function to generate corresponding fundamental identifying characteristics for the output stream, this ensures that each encapsulator device will generate an output stream having the same fundamental characteristics from the same source stream.
  • the fundamental identifying characteristics e.g., packet sequence number, timing reference and source stream identifier

Abstract

In one embodiment, each of a plurality of encapsulator devices receives a source stream of encoded packets in a first transport format to be converted to packets of an output stream in a second transport format for communication over a data network. Each encapsulator device generates a one or more fundamental identifying characteristics for the output stream based on information contained in one or more fields of a packet in the source stream so that the packets in the output stream generated by each of the encapsulator devices from the source stream are coordinated with respect to each other.

Description

    TECHNICAL FIELD
  • The present disclosure relates to distribution of video streams.
  • BACKGROUND
  • Distribution of video information over networks, such as a wide area distribution network (i.e., the Internet), involves encapsulating raw video into a streaming format that is suitable for transmission over the network. For example, the raw video may be in a MPEG format, such as an MPEG2-transport stream (MPEG2-TS) and it is desirable to produce a real-time transport protocol (RTP) stream that is compatible with the RFC3550 standard. This is an important task as many of existing headend equipment deployments cannot output RTP streams. However, telecommunication service providers need the RTP encapsulation function in order to serve advanced features for improving video quality experience. Therefore, the service providers are required to perform RTP encapsulation somewhere in the network before secondary distribution.
  • It is often desirable to have redundant (and identical) copies of the video stream so that the end-to-end system does not have a single point of failure. A video encoder (with N−1 redundancy) has two Ethernet outputs, feeding two encapsulator devices. The encapsulator devices are not able to generate identical streams because the RTP identifiers such as the sequence numbers and timestamps are not coordinated between the devices. Different encapsulator devices may produce totally different streams even for the same content.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram illustrating a video distribution system comprising a plurality of encapsulator devices each configured to perform a coordinated packet encapsulation process according to the techniques described herein.
  • FIG. 2 is a block diagram of an encapsulator device configured to perform a coordinated packet encapsulation process.
  • FIG. 3 is a flow chart depicting the coordinated packet encapsulation process according to a first embodiment.
  • FIG. 4 is a flow chart depicting the coordinated packet encapsulation process according to a second embodiment.
  • FIG. 5 is a diagram depicting an example of one or more fields of a source stream packet from which information is used to generate parameters for the output stream packets.
  • FIG. 6 is a diagram further depicting functions of the coordinated packet encapsulation process of the second embodiment.
  • DESCRIPTION OF EXAMPLE EMBODIMENTS Overview
  • In one embodiment, each of a plurality of encapsulator devices receives a source stream of encoded packets in a first transport format to be converted to packets of an output stream in a second transport format for communication over a data network. Each encapsulator device generates one or more fundamental identifying characteristics for the output stream based on information contained in one or more fields of a packet in the source stream so that the packets in the output stream generated by each of the encapsulator devices from the source stream are coordinated with respect to each other. For example, each encapsulator device is configured to generate a packet sequence number and a timing reference for each packet in the output stream based on information in one or more fields of a packet in the source stream. Furthermore, each encapsulator device is configured to generate a source stream identifier for the output stream from information contained in one or more packets of the source stream such that the output stream from each encapsulator device has the same source stream identifier for the same incoming source stream of encoded packets in the first transport format.
  • In another embodiment, an arbitrary one (referred to as a “first”) of the plurality of encapsulator devices is configured to generate a preliminary encapsulation and packetization of the packets in the source stream into packets for the output stream of packets in the second transport format. This first encapsulator device transmits information describing the preliminary encapsulation and packetization to at least one other encapsulator device in the plurality of encapsulator devices. The other encapsulator devices receive the information describing the preliminary encapsulation and packetization from the first encapsulator device, and generate an output stream of packets in the second transport format based on packets of the source stream and the information describing the preliminary encapsulation and packetization.
  • Example Embodiments
  • Referring first to FIG. 1, an example block diagram is shown for a video distribution system 5 to which the techniques described herein may be useful. In particular, there is a source video encoder 10 that generates a source stream of video (containing audio) data. For example, the source video encoder 10 may reside or be associated with a service provider's headend facilities. The source video encoder 10 may be configured to generate a source stream for a single channel, e.g., a specific television (TV) program or channel. The source stream comprises encoded video packets in accordance with a first transport format. For example, the source stream comprises raw user datagram protocol (UDP) encapsulated MPEG2-TS packets over Internet Protocol (IP) for a given program or channel.
  • The source stream is transmitted over a network 20, such as the Internet or one or more proprietary and closed networks. In another form, the network 20 is a hybrid fiber coax (HFC), coax or other similar network.
  • In order to serve certain features or functions, the source stream needs to be converted into a transport stream according to a second transport format, an example of which is the real-time transport protocol (RTP) format. The RTP format is a standardized packet format for delivering audio and video over the Internet. The RTP is used extensively in communication and entertainment systems that involve streaming media, such as telephony, video/teleconferencing applications and web-based push-to-talk features, Internet TV (IPTV), etc. There is a plurality of encapsulator devices 30(1)-30(N) connected to the network 20, each of which receives the source stream in the first transport format and converts it to an output stream in the second transport format. An example of an encapsulator device is the Digital Content Manager device, manufactured and sold by Cisco Systems, Inc.
  • Without coordination/synchronization among the encapsulator devices 30(1)-30(N), the produced output streams, e.g., RTP streams, will not necessarily be identical even though they are processing the same source stream. There are significant advantages if the plurality of different encapsulator devices produce identical output (e.g., RTP) streams for a given input source stream. Moreover, centrally managing the encapsulator devices 30(1)-30(N) within an operator's network is not desirable. A distributed coordination solution is preferable because it offers greater scalability.
  • The output RTP streams 1-N produced by corresponding ones of the encapsulator devices 30(1)-30(N) may be distributed over a network 50 to corresponding destination devices 60(1)-60(N). The network 50 may be the Internet, and may be the same network as that identified by reference numeral 20 in FIG. 1. Each RTP stream is identified by a synchronization source (SSRC) number. Similar to port number(s) assigned to a specific MPEG2-TS, the SSRC number can be set (globally, if desired) by an operator.
  • Each encapsulator device 30(1)-30(N) is configured to encapsulate packets in the source stream to packets in an output stream, e.g., an RTP stream, such that the output streams generated and output by devices 30(1)-30(N) for the same source stream (and thus carrying the same video stream) are coordinated. That is, one or more fundamental identifying characteristics for each of the RTP streams is the same across RTP streams 1-N output by encapsulator devices 30(1)-30(N), respectively. An example fundamental identifying characteristic is a packet sequence number for each packet in the output streams. An example of another fundamental identifying characteristic is timestamps or in general a timing reference for packets in the output streams. Still another fundamental characteristic is the SSRC number (stream source identifier) that is assigned to each output RTP stream. It is desirable to configure each encapsulator device 30(1)-30(N) to generate for the same source stream multiple output streams having the same fundamental characteristics described above.
  • For example, suppose that the following is the input to the encapsulator devices 30(1)-30(N):
  • . . . TS_14 . . . TS_9 TS_8 TS_7 . . . TS_2 TS_1
  • Without loss of generality, seven MPEG2-TS packets can be grouped to create a single RTP packet. Thus, the output stream comprises:
  • . . . RTP_2 RTP_1
  • A goal of the techniques described herein is to have each independent encapsulator device 30(1)-30(N) produce RTP packets with identical payloads, sequence numbers and (if possible) timestamps. As a result, the operators can easily correlate events/feedback, such as RTP Control Protocol (RTCP) reports, concerning the RTP streams generated by different encapsulator devices. The resulting RTP-level monitoring provides more visibility throughout the operator's network.
  • The techniques described herein are applicable to any device that is configured to perform RTP encapsulation for an incoming stream. In some cases, a secondary RTP encapsulation may be needed for an incoming RTP stream.
  • There are three types of synchronization or coordination considered, though there may be others as well. They are RTP streams with:
  • Identical sequence numbers (seqnums), but their timestamps can be different;
  • Identical timestamps, but their seqnums can be different; and
  • Identical seqnums and timestamps.
  • In each case, of course, the RTP payloads should be identical; otherwise, synchronization is not of much use.
  • In general, each encapsulator device receives the source stream without any loss and with packets in order. If this is not the case, the encapsulator device may use some additional methods (such as live/live where the same stream is received from different networks and one stream can be used if the other fails, forward error correction, etc.) to recover the missing packets before RTP encapsulation. If the incoming packets of the source stream are out of order, some MPEG-level checking analysis, for example, may be employed at an encapsulator device to put them back in order.
  • Another approach is that if a missing packet of the source stream cannot be recovered, the corresponding RTP packet in the output stream can be generated with a fewer number of source stream packet(s). This keeps an unsynchronized portion of the source stream to a limited number of packets. Similarly, if a UDP packet which carries seven MPEG2-TS packets is missing, the corresponding RTP packet in the output stream can be skipped all together. That is, there will be a jump in the RTP seqnums. In this way, the destination devices will indeed know that there has been data loss. This situation is described in more detail hereinafter in conjunction with FIG. 6.
  • Reference is now made to FIG. 2. FIG. 2 shows a block diagram of an encapsulator device generally identified at reference numeral 30(i) to indicate that each of the encapsulator devices 30(1)-30(N) has a similar structure/configuration. Each encapsulator device comprises a network interface unit 32 that is configured to receive and transmit data (packets) over a network, such as via network 20 and via network 50 (which again, may be the same network). In particular, the network interface unit 32 is configured to receive the incoming source stream and to transmit RTP packets as part of the output stream. Each encapsulator device comprises a processor 34, such as a microcontroller or microprocessor, digital signal processor, etc., and a memory 36. The memory 36 stores instructions that, when executed by the processor 34, cause the processor 34 to perform various functions for the encapsulator device 30(i). In particular, the memory 36 is a tangible memory medium, such as random access memory (RAM) or read only memory (ROM), which is encoded with instructions for coordinated packet encapsulation process logic 100 or 100′. In another form, the functions of the process logic 100 are implemented with fixed digital logic, such as an application specific integrated circuit, or digital logic in the form of a programmable logic device, such as a programmable gate array device. A flow chart for a first form of the coordinated packet encapsulation process logic designated by reference numeral 100 is described hereinafter in conjunction with FIG. 3 and a flow chart for a second form of the coordinated packet encapsulation process logic designated by reference numeral 100′ is described hereinafter in conjunction with FIG. 4.
  • Referring now to FIG. 3, a first form of the coordinated encapsulation process logic 100 is described. This form is particularly usefully when the encapsulation devices 30(1)-30(N) are co-located and can communicate with each other to coordinate how each device encapsulates the RTP packets. For example, the encapsulation devices 30(1)-30(N) can communicate with each other over the network 50 shown in FIG. 1. In this form of the process logic 100, both timestamps and seqnums can be generated in a coordinated fashion for multiple output RTP streams.
  • At 102, each encapsulation device receives the source stream of encoded packets in a first transport format, ultimately to be converted to an output stream of packets in a second transport format, e.g., the RTP format. At 104, a determination is made as to whether the encapsulation device is to serve as a “master” with respect to other encapsulation devices in connection with setting up basic parameters for the encapsulation process to be used for all the encapsulation devices. When the encapsulation device in which the logic 100 is running is to serve as the master then the functions on the left-hand side of FIG. 3 are performed, and otherwise, the functions on the right-hand side of FIG. 3 are performed, as indicated by the decision block 104.
  • When an encapsulation device is to serve as the master, then at 110, the master encapsulator device generates a preliminary encapsulation and packetization plan for converting the encoded video packets in the first transport format into an output stream of packets in the second transport format. The preliminary encapsulation and packetization plan is a “trial” encapsulation and packetization. The master encapsulator device builds RTP packets from the packets in the source stream and a mapping stream that describes which packets in the incoming source stream went into building which packets in the output stream. For example, the mapping stream indicates which MPEG2-TS cell (packet identifier (PID), modulo 7 continuity counter and Payload Unit Start indicator) went into which RTP packet. The master encapsulator device may concatenate these record streams together and compress them for efficiency.
  • At 112, the master encapsulator device sends a message to the other encapsulator devices, the message comprising information describing the preliminary encapsulation and packetization plan. This message is transmitted as an “out-of-band” message and is referred to herein as an “out-of-band mapping stream”. At 114, the master encapsulator device receives feedback, if any, sent from other encapsulator devices as to the preliminary encapsulation and packetization plan and resolves any conflicts or issues raised in the received feedback messages. At 116, the master encapsulator device continues encapsulating the incoming packets into packets for the output stream using the finalized encapsulation and packetization plan.
  • The right-hand side of the flow chart in FIG. 3 is now described to explain how the other encapsulator devices operate with respect to the preliminary encapsulation and packetization plan. At 120, each of the other encapsulator devices receives the preliminary encapsulation and packetization plan from the master encapsulator device. At 122, each encapsulator device evaluates the plan and sends feedback, if any, to the master encapsulator device in the form of a feedback message. At 124, the other encapsulator devices continue encapsulating the packets from the source stream into packets for the outputs stream according to the preliminary (or finalized) encapsulation and packetization plan. The other encapsulator devices know the PID and MPEG continuity counter of every cell, and while they are receiving a complete source stream, they can synchronize the in-band video packet flow with the out-of-band RTP mappings. If an encapsulator device determines that it is missing data, it can either “leave a hole” or send a message to the master encapsulator device to request the missing data (or use forward error correction or other means to recover the missing data). Similarly, if one of the other encapsulator devices has data that the master encapsulator device does not have, the master device could send a message to the other devices advising them to “leave a hole” or requesting one of the other encapsulator devices to send the missing data to the master encapsulator device.
  • The process 100 shown in FIG. 3, at a high level, is a 2-pass encapsulation process in which the master encapsulator device does a preliminary encapsulation of the data, informs its peers about the encapsulation, and resolves any conflicts in the encapsulation. This may be achieved through the master-slave approach described above, or a peer-to-peer approach.
  • Turning now to FIG. 4, the second form of the coordinated RTP encapsulation process logic 100′ is now described. This approach does not require any communication between encapsulator devices 30(1)-30(N). Each operates autonomously as described hereinafter. Consequently, this approach is useful whether or not the encapsulator devices are co-located. Generally, this approach involves each encapsulator device generating one or more fundamental identifying characteristics for the output stream in the second transport format based on information contained in one or more fields of a packet in the source stream so that the packets in the output stream generated by each of the encapsulator devices from the source stream are coordinated with respect to each other.
  • At 130, the source stream of packets in the first transport format is received. At 132, using information extracted from one or more header fields of the source stream packets as a seed to a one-to-one mapping function, a unique RTP seqnum is generated for each RTP packet. The information from the one or more header fields may comprise any combination of the fields in the header of the source stream packets, such as MPEG2-TS preamble information. Since each encapsulator devices uses the same one-to-one mapping function, each encapsulator apparatus will generate the same seqnums from the same header field information in the source stream packets. Thus, the output stream generated by each encapsulator device from the same source stream is coordinated with respect to seqnums. Generally, determining only the initial seqnum is essential. If the initial seqnum is coordinated across the encapsulator devices, the subsequent seqnums for subsequent packets can be generated from the initial seqnum in a straightforward manner. At the end, the same sequence numbers are generated for packets in the output streams which carry the same data even if the respective encapsulator devices start generating sequence numbers based on different packets from the source stream.
  • It is noteworthy that for security reasons, the RFC 3550 standard suggests to choose a random initial seqnum. Fortunately, the seqnum produced by aforementioned one-to-one mapping function will appear “random” to a hacker Likewise, the selection of which seven MPEG2-TS packets are grouped together to create an RTP packet is determined by this mapping function.
  • At 134, using a second and different one-on-one mapping function (different from the one used at 132 for the seqnums) based on information in the header fields of the source stream packets, timestamps are generated for RTP packets. For example, the Program Clock Reference (PCR), Presentation Time Stamp (PTS), and/or Decoding Time Stamp (DTS) information from the header fields of an MPEG2-TS packet may be used to generated the RTP timestamp using a second one-to-one mapping function. Again, similar to seqnums, the initial timestamp is important. Once the initial timestamp is determined, timestamps for subsequent RTP packets may be filled in based on the initial timestamp and a clock rate of the content of the packets in the source stream. Alternatively, the PCR/PTS/DTS information is used as input to the second mapping function to determine the timestamps for the successive packets.
  • Turning to FIG. 5, a diagram is shown for several header fields of an MPEG2-TS packet. FIG. 5 shows that the input to the first one-to-one mapping function comprises, for example, PES private data field 200, that is used to generate the RTP seqnums for RTP packets.
  • FIG. 5 also shows that the input to the second one-to-one mapping function comprises, for example, the PTS and DTS field 210 and/or the PCR field 220 are used as input to a second one-to-one mapping function to generate the RTP seqnum for an RTP packet. While FIG. 5 shows that different fields of a source stream packet are used to generate the packet sequence number and the timestamp, it should be understood that the same fields may be used to generate both the packet sequence number and the timestamp, albeit with different one-to-one mapping functions as indicated by the first and second one-to-one mapping functions referred to in FIG. 5.
  • Examples of one-to-one mapping functions are perfect hashing functions that map one or more input values to a unique output value such that the same input value(s) is/are always mapped to the same output values. However, a perfect hashing function is not required. Any mapping function that makes a one-to-one mapping of inputs to outputs is suitable and the function need not also perform a one-to-one mapping of outputs to inputs.
  • Referring back to FIG. 4, at 136, a source identifier, e.g., an SSRC number, is generated for the output stream of RTP packets from information in the incoming source stream packets. The SSRC number is an identifier for the overall RTP stream. The SSRC number is unique within an RTP session, which means that different RTP streams in different RTP sessions may share the same SSRC value (32 bits). The encapsulator devices create the same SSRC numbers for the same incoming source stream. For example, in IPTV distribution systems, each channel of programming is offered on a source-specific multicast (SSM) session, and is identified by the address pair (S, G), where S is the source IP address and G is the destination multicast address. In the IPv4 standard, S and G are both 32 bits and in IPv6 S and G are both 128 bits. In practice, S may be common to multiple channels, but G varies and is unique per channel. Thus, when IPTV channel is received at 130, what is actually received is a multicast session for a channel of video programming, wherein each channel of video programming is identified by a source address and a destination multicast address such that the source address may be common across multiple channels and in some circumstances the destination address is unique for each channel. By applying a one-to-one mapping (e.g., hashing) function to the destination multicast address G, an SSRC number is generated for the RTP stream for each channel. In the event that the destination multicast address G is shared, using only G as input to a hashing function produces the same SSRC number. In that case, the source address S values will be different. Consequently, a combination of the source address S values and destination multicast address values can be used as input to hashing function to generate the SSRC number for RTP streams. The SSRC computation function 136 need be made only once for a given RTP stream, but the same SSRC number is included in all RTP packets for that stream, and for all the RTP streams produced by the encapsulator devices 30(1)-30(N) when generated from the same source stream.
  • Still referring to FIG. 4, at 138, RTP packet, containing the seqnum generated at 132, the timestamp generated at 134 and the SSRC generated at 136 (for that packet or for a prior packet that is part of the same RTP stream) is transmitted as part of the output RTP stream.
  • Reference is now made to FIG. 6 to illustrate another aspect of the techniques described herein. As should be apparent from the foregoing description of FIGS. 4 and 5, in order for each encapsulator device to generate the same RTP seqnum and timestamp, they need to use the same packet as the “seed” for the mapping functions. Actually, if all the encapsulator devices receive the same first packet, by default they will all use that packet as the seed and produce identical RTP streams. However, it cannot be guaranteed that all the encapsulator devices will receive the same first packet (due to loss or other reasons). They may receive different (first) packets. If the seed is different, the output of the mapping function will be different.
  • For example, as shown in FIG. 6, Packet 1 is the first packet to be received at encapsulator devices 30(1) and 30(2), whereas Packet 2 is the first packet to be received at encapsulator device 30(N). Consequently, the first RTP packet output by encapsulator device 30(1) has a seqnum=SN as does the first RTP packet output by encapsulator device 30(2). The next RTP packet output by encapsulator devices 30(1) and 30(2) have a seqnum=SN+1. However, the first RTP packet output by encapsulator device 30(N) has a seqnum=SN+1 because the first packet it received, from which it generated a seqnum, is packet 2 and not Packet 1. Nevertheless, the RTP packets with the same seqnums out of encapsulators 30(1), 30(2) and 30(N) will carry the same data, which is most important.
  • Generally, when an encapsulator device uses information from a source stream packet as a seed, it continues to monitor the incoming source stream packets and makes any necessary adjustments in case there is a gap (i.e., loss) of a source stream packet in the sequence of source stream packets. The encapsulator device may use fields of information from new source stream packets to produce the one or more fundamental characteristics.
  • In summary, the techniques described herein are designed not to coordinate all the packet flows going thru the encapsulator. Depending on the content source, encoder settings, etc., the PCR/PTS/DTS values of different source stream packet flows generated by different source video encoders will be different. Rather, the techniques are directed to coordinating the RTP streams produced by different encapsulator devices from the same source stream. Seqnum coordination is a lot more useful in RTP-level monitoring/processing and stream switching as that is more apparent in RTCP reports and RTP-level processing. However, timestamp coordination may also be desired.
  • Again, the techniques described herein provide allow for generation of identical RTP stream by different encapsulator devices (for the same raw source stream feed, e.g., MPEG2-TS feed) in a distributed fashion. When all the RTP streams produced from a source stream feed are identical in a service provider network, correlation of the events and feedback (such as RTCP reports) associated with RTP streams generated by different devices becomes much easier. This increases the overall benefit of RTP-level monitoring. Also, when multiple RTP streams are generated for redundancy purposes, having them identical will make recovery much faster and more reliable.
  • There are still other benefits to the techniques described herein. When one encapsulator device has a failure, another encapsulator device can take over for it as a backup and thus becomes the source for the RTP stream. Since their output streams were coordinated, the destination devices for the failed encapsulator device will experience minimal disruption from the failure. Moreover, two encapsulator devices can be configured to perform live/live transmission whereby both supply streams simultaneously, and duplicate suppression may be performed on the streams before they reach the receivers. If one stream fails, the packet transmission to the destination devices will be nevertheless be perfect (assuming the coordination between the streams was perfect).
  • The one-to-one mapping function referred to above converts a bit pattern from one or more fields of source stream packet into a bit pattern representing one or more of the fundamental identifying characteristics (e.g., packet sequence number, timing reference and source stream identifier) in the packets of the output stream. Since each encapsulator device is configured to use the same one-to-one mapping function to generate corresponding fundamental identifying characteristics for the output stream, this ensures that each encapsulator device will generate an output stream having the same fundamental characteristics from the same source stream.
  • Although the techniques are illustrated and described herein as embodied in one or more specific examples, it is nevertheless not intended to be limited to the details shown, since various modifications and structural changes may be made therein without departing from the scope of the and range of equivalents of the claims.

Claims (25)

1. A method comprising:
at each of a plurality of encapsulator devices:
receiving a source stream of encoded packets in a first transport format to be converted to packets of an output stream in a second transport format for communication over a data network; and
generating one or more fundamental identifying characteristics for the output stream based on information contained in one or more fields of a packet in the source stream so that the packets in the output stream generated by each of the encapsulator devices from the source stream are coordinated with respect to each other.
2. The method of claim 1, wherein generating comprises applying a first one-to-one mapping function at each of the plurality of encapsulator devices to information contained in one or more fields of a packet in the source stream to produce a packet sequence number.
3. The method of claim 2, and further comprising applying a second one-to-one mapping function to information contained in one or more fields of a packet in the source stream to generate a timing reference for a packet in the output stream in the second transport format.
4. The method of claim 3, wherein applying comprise a second one-to-one mapping function to information contained in one or more fields of a packet in the source stream to generate an initial timing reference, and further comprising generating timing references for subsequent packets in the output stream based on the initial timing reference and a clock rate of content of the packets in the source stream.
5. The method of claim 1, wherein generating comprises generating an initial packet sequence number for a packet in the output stream in the second transport format, and generating subsequent packet sequence numbers for subsequent packets in the output stream from the initial packet sequence number.
6. The method of claim 1, wherein generating comprises generating, at the plurality of encapsulator devices, the same packet sequence numbers for packets in their output streams which carry the same data even if the respective encapsulator devices start generating packet sequence numbers based on different packets in the source stream.
7. The method of claim 1, and further comprising generating a source stream identifier for the output stream at each of the plurality of encapsulator devices from information contained in packets of the source stream such that the output stream from each encapsulator devices has the same source stream identifier for the same source stream.
8. The method of claim 7, wherein generating the source stream identifier for the output stream comprises applying a one-to-one mapping function to information contained in one or more fields of the source packets of the source stream.
9. The method of claim 7, wherein receiving the source stream comprises receiving a multicast session for a channel of video programming, wherein each channel of video programming of a plurality of channels is identified by a source address and a destination multicast address such that the source address may be common across multiple channels and in some circumstances the destination address is unique for each channel, and wherein generating the source identifier is based on a combination of the destination multicast address and the source address.
10. The method of claim 9, wherein generating the source identifier comprises applying a one-to-one mapping function to a combination of the destination multicast address and the source address.
11. The method of claim 1, wherein the source stream comprises an MPEG2 transport stream and the output stream comprises a real-time transport protocol (RTP) stream.
12. A method comprising:
at a plurality of encapsulator devices:
receiving a source stream of encoded packets in a first transport format to be converted to an output stream of packets in a second transport format for communication over a data network;
at a first encapsulator device:
generating preliminary encapsulation and packetization of the packets of the source stream into packets for the output stream of packets in the second transport format;
transmitting information describing the preliminary encapsulation and packetization to at least one other encapsulator device in the plurality of encapsulator devices; and
at the at least one other encapsulator device:
receiving the information describing the preliminary encapsulation and packetization from the first encapsulator device; and
generating an output stream of packets in the second transport format based on packets of the source stream and the information describing the preliminary encapsulation and packetization received from the first encapsulator device.
13. The method of claim 12, wherein at the at least one other encapsulator device, transmitting to the first encapsulator device a request for data in the source stream that is determined to be missing at the at least one other encapsulator device.
14. The method of claim 12, wherein at the first encapsulator device, generating final encapsulation and packetization based on feedback received from the at least one other encapsulator device, transmitting the final encapsulation and packetization to the at least one other encapsulator device, and wherein generating the output stream at the at least one other encapsulator device is based on the final encapsulation and packetization.
15. The method of claim 12, wherein the source stream comprises an MPEG2 transport stream and the output stream comprises a real-time transport protocol (RTP) stream.
16. A device comprising:
a network interface unit configured to receive a source stream of encoded video packets in a first transport format; and
a processor configured to be coupled to the first network interface unit, wherein the processor is configured to convert packets in the source stream into packets for an output stream in a second transport format, and to generate one or more fundamental identifying characteristics for the output stream based on information contained in one or more fields of a packet in the source stream.
17. The device of claim 16, wherein the processor is configured to generate a packet sequence number for each packet in the output stream by applying a first one-to-one mapping function to information contained in one or more fields of a packet in the source stream.
18. The device of claim 17, wherein the processor is further configured to apply a second one-to-one mapping function to information contained in one or more fields of a packet in the source stream to generate a timing reference for a packet in the output stream in the second transport format.
19. The device of claim 16, wherein the processor is further configured to generate a source stream identifier for the output stream from information contained in packets of the source stream.
20. The device of claim 19, wherein the processor is configured to generate the source stream identifier for the output stream by applying a one-to-one mapping function to a combination of a source address and a destination multicast address contained in a packet of the source stream.
21. A system comprising a plurality of devices as recited in claim 16, wherein each of the plurality of devices is configured to receive the same source stream and to generate the same one or more fundamental identifying characteristics from the source stream.
22. A processor readable memory medium encoded with instructions that, when executed by a processor, cause the processor to:
receive a source stream of encoded packets in a first transport format to be converted to packets of an output stream in a second transport format for communication over a data network; and
generate one or more fundamental identifying characteristics for the output stream based on information contained in one or more fields of a packet in the source stream.
23. The processor readable medium of claim 22, wherein the instructions that generate comprise instructions configured to generate a packet sequence number for a packet in the output stream by applying a first one-to-one mapping function to information contained in one or more fields of a packet in the source stream.
24. The processor readable medium of claim 23, and further comprising instructions that, when executed by the processor, cause the processor to apply a second one-to-one mapping function to information contained in one or more fields of a packet in the source stream to generate a timing reference for a packet in the output stream.
25. The processor readable medium of claim 22, and further comprising instructions, that when executed by the processor, cause the processor to generate a source stream identifier for the output stream from information contained in a packet of the source stream.
US12/566,007 2009-09-24 2009-09-24 Distributed Coordination of Network Elements for Packet Encapsulation Abandoned US20110072148A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/566,007 US20110072148A1 (en) 2009-09-24 2009-09-24 Distributed Coordination of Network Elements for Packet Encapsulation
US14/718,807 US10142387B2 (en) 2009-09-24 2015-05-21 Distributed coordination of network elements for packet encapsulation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/566,007 US20110072148A1 (en) 2009-09-24 2009-09-24 Distributed Coordination of Network Elements for Packet Encapsulation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/718,807 Division US10142387B2 (en) 2009-09-24 2015-05-21 Distributed coordination of network elements for packet encapsulation

Publications (1)

Publication Number Publication Date
US20110072148A1 true US20110072148A1 (en) 2011-03-24

Family

ID=43757579

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/566,007 Abandoned US20110072148A1 (en) 2009-09-24 2009-09-24 Distributed Coordination of Network Elements for Packet Encapsulation
US14/718,807 Expired - Fee Related US10142387B2 (en) 2009-09-24 2015-05-21 Distributed coordination of network elements for packet encapsulation

Family Applications After (1)

Application Number Title Priority Date Filing Date
US14/718,807 Expired - Fee Related US10142387B2 (en) 2009-09-24 2015-05-21 Distributed coordination of network elements for packet encapsulation

Country Status (1)

Country Link
US (2) US20110072148A1 (en)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154424A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method for transmitting video stream
US20120201245A1 (en) * 2011-02-07 2012-08-09 Seiko Epson Corporation Network communication apparatus, network communication method, and program
US8683013B2 (en) 2011-04-18 2014-03-25 Cisco Technology, Inc. System and method for data streaming in a computer network
US8819714B2 (en) 2010-05-19 2014-08-26 Cisco Technology, Inc. Ratings and quality measurements for digital broadcast viewers
US8898717B1 (en) 2012-01-11 2014-11-25 Cisco Technology, Inc. System and method for obfuscating start-up delay in a linear media service environment
US20140348174A1 (en) * 2011-05-02 2014-11-27 Apple Inc. Methods and apparatus for isochronous data delivery within a network
FR3011415A1 (en) * 2013-10-01 2015-04-03 Orange METHOD FOR BROADCASTING MULTICAST SOURCE IDENTIFIERS
US9001886B2 (en) 2010-11-22 2015-04-07 Cisco Technology, Inc. Dynamic time synchronization
US9148386B2 (en) 2013-04-30 2015-09-29 Cisco Technology, Inc. Managing bandwidth allocation among flows through assignment of drop priority
US9591098B2 (en) 2012-02-01 2017-03-07 Cisco Technology, Inc. System and method to reduce stream start-up delay for adaptive streaming
US20170094296A1 (en) * 2015-09-28 2017-03-30 Cybrook Inc. Bandwidth Adjustment For Real-time Video Transmission
US9923945B2 (en) 2013-10-10 2018-03-20 Cisco Technology, Inc. Virtual assets for on-demand content generation
US20180167305A1 (en) * 2012-12-27 2018-06-14 Comcast Cable Communications, Llc Information Stream Management
US10341292B2 (en) * 2013-07-23 2019-07-02 Avi Networks Increased port address space
US10506257B2 (en) 2015-09-28 2019-12-10 Cybrook Inc. Method and system of video processing with back channel message management
US10516892B2 (en) 2015-09-28 2019-12-24 Cybrook Inc. Initial bandwidth estimation for real-time video transmission
US10756997B2 (en) * 2015-09-28 2020-08-25 Cybrook Inc. Bandwidth adjustment for real-time video transmission
US11368437B2 (en) * 2017-07-05 2022-06-21 Siemens Mobility GmbH Method and apparatus for repercussion-free unidirectional transfer of data to a remote application server

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040158872A1 (en) * 2003-02-06 2004-08-12 Naofumi Kobayashi Data generating device
US20060062200A1 (en) * 2003-01-09 2006-03-23 Wang Charles C Method and an apparatus for mapping an mpeg transport stream into ip packets for wlan broadcast
US20060262716A1 (en) * 2005-05-19 2006-11-23 Anantha Ramaiah High availability transport protocol method and apparatus
US20070115969A1 (en) * 2005-11-18 2007-05-24 Isnardi Michael A Systems and methods for digital stream denting
US7506194B2 (en) * 2004-03-24 2009-03-17 Cisco Technology, Inc. Routing system and method for transparently rocovering routing states after a failover or during a software upgrade
US7515525B2 (en) * 2004-09-22 2009-04-07 Cisco Technology, Inc. Cooperative TCP / BGP window management for stateful switchover
US20100290428A1 (en) * 2007-09-26 2010-11-18 Kyocera Corporation Mobile communication system, base station device, and handover method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2053821B1 (en) * 2007-10-22 2013-05-15 Nokia Siemens Networks Oy Method, apparatus and computer program product for service decomposition in IP-broadcast networks
FR2928513B1 (en) * 2008-03-07 2011-02-11 Enensys Technologies METHOD OF SYNCHRONIZING A PLURALITY OF FORMAT MODULES
US8406296B2 (en) * 2008-04-07 2013-03-26 Qualcomm Incorporated Video refresh adaptation algorithms responsive to error feedback

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060062200A1 (en) * 2003-01-09 2006-03-23 Wang Charles C Method and an apparatus for mapping an mpeg transport stream into ip packets for wlan broadcast
US20040158872A1 (en) * 2003-02-06 2004-08-12 Naofumi Kobayashi Data generating device
US7506194B2 (en) * 2004-03-24 2009-03-17 Cisco Technology, Inc. Routing system and method for transparently rocovering routing states after a failover or during a software upgrade
US7515525B2 (en) * 2004-09-22 2009-04-07 Cisco Technology, Inc. Cooperative TCP / BGP window management for stateful switchover
US20060262716A1 (en) * 2005-05-19 2006-11-23 Anantha Ramaiah High availability transport protocol method and apparatus
US20070115969A1 (en) * 2005-11-18 2007-05-24 Isnardi Michael A Systems and methods for digital stream denting
US20100290428A1 (en) * 2007-09-26 2010-11-18 Kyocera Corporation Mobile communication system, base station device, and handover method

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110154424A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Apparatus and method for transmitting video stream
US8819714B2 (en) 2010-05-19 2014-08-26 Cisco Technology, Inc. Ratings and quality measurements for digital broadcast viewers
US9001886B2 (en) 2010-11-22 2015-04-07 Cisco Technology, Inc. Dynamic time synchronization
US10154320B2 (en) 2010-11-22 2018-12-11 Cisco Technology, Inc. Dynamic time synchronization
US9124438B2 (en) * 2011-02-07 2015-09-01 Seiko Epson Corporation Network communication apparatus, network communication method, and program
US20120201245A1 (en) * 2011-02-07 2012-08-09 Seiko Epson Corporation Network communication apparatus, network communication method, and program
US8683013B2 (en) 2011-04-18 2014-03-25 Cisco Technology, Inc. System and method for data streaming in a computer network
US20140348174A1 (en) * 2011-05-02 2014-11-27 Apple Inc. Methods and apparatus for isochronous data delivery within a network
US10992404B2 (en) * 2011-05-02 2021-04-27 Apple Inc. Methods and apparatus for isochronous data delivery within a network
US8898717B1 (en) 2012-01-11 2014-11-25 Cisco Technology, Inc. System and method for obfuscating start-up delay in a linear media service environment
US9591098B2 (en) 2012-02-01 2017-03-07 Cisco Technology, Inc. System and method to reduce stream start-up delay for adaptive streaming
US11792103B2 (en) * 2012-12-27 2023-10-17 Comcast Cable Communications, Llc Information stream management
US20180167305A1 (en) * 2012-12-27 2018-06-14 Comcast Cable Communications, Llc Information Stream Management
US9148386B2 (en) 2013-04-30 2015-09-29 Cisco Technology, Inc. Managing bandwidth allocation among flows through assignment of drop priority
US10341292B2 (en) * 2013-07-23 2019-07-02 Avi Networks Increased port address space
US10027496B2 (en) 2013-10-01 2018-07-17 Orange Method for distributing identifiers of multicast sources
CN105706425A (en) * 2013-10-01 2016-06-22 奥兰治 Method for distributing identifiers of multicast sources
WO2015049432A1 (en) * 2013-10-01 2015-04-09 Orange Method for distributing identifiers of multicast sources
FR3011415A1 (en) * 2013-10-01 2015-04-03 Orange METHOD FOR BROADCASTING MULTICAST SOURCE IDENTIFIERS
US9923945B2 (en) 2013-10-10 2018-03-20 Cisco Technology, Inc. Virtual assets for on-demand content generation
US20170094296A1 (en) * 2015-09-28 2017-03-30 Cybrook Inc. Bandwidth Adjustment For Real-time Video Transmission
US10506257B2 (en) 2015-09-28 2019-12-10 Cybrook Inc. Method and system of video processing with back channel message management
US10516892B2 (en) 2015-09-28 2019-12-24 Cybrook Inc. Initial bandwidth estimation for real-time video transmission
US10756997B2 (en) * 2015-09-28 2020-08-25 Cybrook Inc. Bandwidth adjustment for real-time video transmission
US11368437B2 (en) * 2017-07-05 2022-06-21 Siemens Mobility GmbH Method and apparatus for repercussion-free unidirectional transfer of data to a remote application server

Also Published As

Publication number Publication date
US10142387B2 (en) 2018-11-27
US20150264101A1 (en) 2015-09-17

Similar Documents

Publication Publication Date Title
US10142387B2 (en) Distributed coordination of network elements for packet encapsulation
US7835406B2 (en) Surrogate stream for monitoring realtime media
US10034058B2 (en) Method and apparatus for distributing video
US8819714B2 (en) Ratings and quality measurements for digital broadcast viewers
US8839340B2 (en) Method, system and device for synchronization of media streams
EP2409432B1 (en) Modified stream synchronization
US7940644B2 (en) Unified transmission scheme for media stream redundancy
EP2919436B1 (en) Apparatus for processing streaming media service
US20120140645A1 (en) Method and apparatus for distributing video
CN106233735A (en) Multicast Flows transmits
JP2011509543A (en) Method and system for synchronizing terminal output
US10477282B2 (en) Method and system for monitoring video with single path of video and multiple paths of audio
US8966559B2 (en) Method and device for ensuring reliability during transmission of television data in a television system based on internet protocol
US9647951B2 (en) Media stream rate reconstruction system and method
US20170195742A1 (en) Apparatus and method for providing broadcast service for hybrid service using broadcast and communication convergence networks
JP2015506614A (en) System and method for multiplexed streaming of multimedia content
JP7188510B2 (en) Transmitting method and receiving device
JP2008054078A (en) Multicast system
US9143722B2 (en) Method and apparatus for providing session description for a media session
Schierl et al. Improving P2P live-content delivery using SVC
Xing et al. Base of control and transmission technology

Legal Events

Date Code Title Description
AS Assignment

Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BEGEN, ALI C;VER STEEG, WILLIAM C;SIGNING DATES FROM 20090918 TO 20090923;REEL/FRAME:023278/0833

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION