Adaptive streaming transcoder synchronization
First Claim
Patent Images
1. A method for synchronizing between multiple stream representations in an output group, the method comprising:
- receiving, at a transcoder, an input stream and periodic external time clock stamps associated with the input stream;
determining a master transcoding processor selected from a plurality of transcoding processors associated with said output group,computing external/internal clock offsets between the periodic external time clock stamp and an internal clock time stamped at a point in processing by the master transcoder processor;
storing each computed external/internal clock offset and the respective internal clock time stamp as a pair in memory;
deriving a segment boundary point time stamp associated with a segment in a stream representation generated by the master transcoding processor;
identifying an internal clock time stamp in the stored pairs that is most recent relative to the derived segment boundary point time stamp;
determining an adjusted segment boundary point time stamp based on the external/internal clock offset paired with the identified internal clock time stamp in memory and the derived segment boundary point time stamp;
inserting the adjusted time stamp in to the stream representation for the segment corresponding to the derived segment boundary point time stamp; and
outputting the same external/internal offset used to adjust the derived segment boundary point time stamp in the master transcoding processor to the one or more slave transcoding processors associated with the output group.
9 Assignments
0 Petitions
Accused Products
Abstract
Techniques for synchronizing streams in an adaptive streaming environment include cross-chassis and intra-chassis synchronization of video and/or audio. In an adaptive streaming system that streams content in segments or chunks at varying levels of quality corresponding to different coding rates, implementations enable seamless switching between output streams. For example, synchronizing multiple output streams for switching between coded adaptive bit rate streams across multiple chassis involve calculating an NTP/UTC offset.
63 Citations
24 Claims
-
1. A method for synchronizing between multiple stream representations in an output group, the method comprising:
-
receiving, at a transcoder, an input stream and periodic external time clock stamps associated with the input stream; determining a master transcoding processor selected from a plurality of transcoding processors associated with said output group, computing external/internal clock offsets between the periodic external time clock stamp and an internal clock time stamped at a point in processing by the master transcoder processor; storing each computed external/internal clock offset and the respective internal clock time stamp as a pair in memory; deriving a segment boundary point time stamp associated with a segment in a stream representation generated by the master transcoding processor; identifying an internal clock time stamp in the stored pairs that is most recent relative to the derived segment boundary point time stamp; determining an adjusted segment boundary point time stamp based on the external/internal clock offset paired with the identified internal clock time stamp in memory and the derived segment boundary point time stamp; inserting the adjusted time stamp in to the stream representation for the segment corresponding to the derived segment boundary point time stamp; and outputting the same external/internal offset used to adjust the derived segment boundary point time stamp in the master transcoding processor to the one or more slave transcoding processors associated with the output group. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. An adaptive transcoder for synchronizing between multiple stream representations in an output group, the transcoder comprising:
-
at least one input for receiving an input stream and periodic external time clock stamps associated with the input stream from a content delivery network; a switch coupling the at least one input to one or more transcoding modules; each of the one or more transcoding modules hosting a plurality of transcoding processors, wherein the transcoder is configured, via the transcoding modules and the respective transcoding processors, to generate from the input stream a plurality of stream representations, each of the plurality of representations of the input stream comprising one or more corresponding segments within the output group, wherein the output group comprises as at least one of;
the plurality of stream representations generated from a single stream input to said transcoder, or a plurality of stream representations generated from corresponding input streams input to a plurality of transcoders including said transcoder;an internal clock for time stamping streams at points of processing within the transcoder, wherein a time between a periodically received external time stamp associated with the input stream and an internal clock time stamp of the one or more segments is variable creating misaligned timestamps between corresponding segments in the plurality of stream representations; a master transcoding processor selected from said plurality of transcoding processors, the master transcoding processor providing processing for aligning segments between the plurality of stream representations in the output group and configured to; receive a periodic external time clock stamp received at said transcoder'"'"'s input, determine an external/internal clock offset between the periodic external time clock stamp and an internal clock time stamped once the input stream is provided to the master transcoder processer; store the external/internal clock offset and the corresponding internal clock time stamp as a pair in memory, derive a segment boundary point time stamp associated with a segment in the stream representation transcoded by the master transcoding processor, identifying in the memory the stored external/internal clock offset and the corresponding internal clock time stamp pair most recent relevant to the derived segment boundary point time stamp, determine an adjusted segment boundary point time stamp based on the external/internal clock offset and the derived segment boundary point time stamp; inserting the adjusted time stamp in to the stream representation associated with the corresponding segment; and the transcoder outputting the same external/internal offset used to adjust the derived segment boundary point time stamp in the master transcoding processor to the one or more slave transcoding processors associated with the output group. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification