Adaptive streaming transcoder synchronization
First Claim
1. An adaptive transcoder for synchronizing multiple stream representations in an output group, the transcoder comprising:
- at least one input for receiving an input stream;
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, each transcoding processor comprising;
a decoder for receiving an input to the transcoding processor and decoding the stream;
a pre-processor for receiving the decoded stream from the decoder, detecting frame content, and outputting a stream with frames identified for encoding;
a plurality of encoders for outputting stream representations associated with the same input stream, wherein at least one of the plurality of encoders is designated as a master encoder based on an output frame rate and resolution of stream representations output from the plurality of encoders, the output group comprising of at least one of;
a 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,wherein one or more of the remaining encoders associated with the output group are designated as slave encoders;
the master encoder determining where to fragment a received stream;
the master encoder identifying fragment boundary points for synchronizing stream representations in the output group with the master encoder output representation stream; and
the master encoder providing the identified fragment boundary points and corresponding presentation time stamps (PTS) to each slave encoder associated with the output group for generating a slave encoder output stream representation that is synchronized with the master encoder output stream representation.
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 enforcing decisions of a master encoder for inverse telecine, frame rate conversion, and segment boundary to slave encoders associated with the same group of output stream representations.
69 Citations
43 Claims
-
1. An adaptive transcoder for synchronizing multiple stream representations in an output group, the transcoder comprising:
-
at least one input for receiving an input stream; 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, each transcoding processor comprising; a decoder for receiving an input to the transcoding processor and decoding the stream; a pre-processor for receiving the decoded stream from the decoder, detecting frame content, and outputting a stream with frames identified for encoding; a plurality of encoders for outputting stream representations associated with the same input stream, wherein at least one of the plurality of encoders is designated as a master encoder based on an output frame rate and resolution of stream representations output from the plurality of encoders, the output group comprising of at least one of;
a 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,wherein one or more of the remaining encoders associated with the output group are designated as slave encoders; the master encoder determining where to fragment a received stream; the master encoder identifying fragment boundary points for synchronizing stream representations in the output group with the master encoder output representation stream; and the master encoder providing the identified fragment boundary points and corresponding presentation time stamps (PTS) to each slave encoder associated with the output group for generating a slave encoder output stream representation that is synchronized with the master encoder output stream representation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A master encoder designated from a plurality of encoders for synchronizing stream representations in an output group, the master encoder comprising:
-
at least one input for receiving a video stream pre-processed with frames within the input stream identified; a processor configured to perform; determining at which frames within the input stream to segment the stream; identifying segment boundary points for providing to slave encoders for synchronizing the plurality of output stream representations in the output group with the master encoder output representation stream, wherein the output group comprises at least one of a plurality of stream representations generated from a single stream input to a transcoder, or a plurality of stream representations generated from corresponding input streams input to a plurality of transcoders including said transcoder, and wherein one or more of the remaining encoders associated with the output group are designated as slave encoders, wherein the master encoder is designated based on an output frame rate and resolution of stream representations output from the plurality of encoders, providing results of an inverse telecine determination and a selection of one or more frames for frame rate conversion, both determined internal to a transcoding processor, to each slave encoder associated with the output group; providing the identified segment boundary points and corresponding presentation time stamps (PTS) to each slave encoder associated with the output group to enable generation of an output representation that synchronizes with the master encoder output stream representation; and wherein the information is provided to the slave encoders within the transcoding processor or within the plurality of encoders associated with the output group for synchronizing the outputs of the slave encoder to the outputs of the master encoder.
-
-
41. An adaptive transcoder for synchronizing multiple stream representations in an output group, the transcoder comprising:
-
at least one input for receiving an input stream; 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, each transcoding processor comprising; a decoder for receiving an input to the transcoding processor and decoding the stream; a pre-processor for receiving the decoded stream from the decoder, detecting frame content, and outputting a stream with frames identified for encoding; a plurality of encoders for outputting stream representations associated with the same input stream, wherein at least one of the plurality of encoders is designated as a master encoder, the output group comprising of at least one of;
a 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,wherein one or more of the remaining encoders associated with the output group are designated as slave encoders; the master encoder determining where to fragment a received stream; the master encoder identifying fragment boundary points for synchronizing stream representations in the output group with the master encoder output representation stream; and the master encoder providing the identified fragment boundary points and corresponding presentation time stamps (PTS) to each slave encoder associated with the output group for generating a slave encoder output stream representation that is synchronized with the master encoder output stream representation, wherein the transcoder determines for each fragment identified whether the fragment is a complete segment, and if a segment picture count (SegmentPicCnt) added to a maximum fragment size (MaxFragment Size) is greater than a segment size (SegmentSize), then the fragment is a segment, else if the segment picture count (SegmentPicCnt) is a number of frames since a last segment boundary, a MaxFragmentSize is set as a longest fragment size defined by a user and a SegmentSize is set as a longest SegmentSize defined by the user.
-
-
42. An adaptive transcoder for synchronizing multiple stream representations in an output group, the transcoder comprising:
-
at least one input for receiving an input stream; 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, each transcoding processor comprising; a decoder for receiving an input to the transcoding processor and decoding the stream; a pre-processor for receiving the decoded stream from the decoder, detecting frame content, and outputting a stream with frames identified for encoding; a plurality of encoders for outputting stream representations associated with the same input stream, wherein at least one of the plurality of encoders is designated as a master encoder, the output group comprising of at least one of;
a 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,wherein one or more of the remaining encoders associated with the output group are designated as slave encoders; the master encoder determining where to fragment a received stream; the master encoder identifying fragment boundary points for synchronizing stream representations in the output group with the master encoder output representation stream, wherein when a group of pictures (GOP) selection code sets a current frame as an instantaneous decode refresh (IDR), the current frame is reset as a fragment boundary so a next frame is not forced as the instantaneous decode refresh (IDR); and the master encoder providing the identified fragment boundary points and corresponding presentation time stamps (PTS) to each slave encoder associated with the output group for generating a slave encoder output stream representation that is synchronized with the master encoder output stream representation.
-
-
43. An adaptive transcoder for synchronizing multiple stream representations in an output group, the transcoder comprising:
-
at least one input for receiving an input stream; 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, each transcoding processor comprising; a decoder for receiving an input to the transcoding processor and decoding the stream; a pre-processor for receiving the decoded stream from the decoder, detecting frame content, and outputting a stream with frames identified for encoding; a plurality of encoders for outputting stream representations associated with the same input stream, wherein at least one of the plurality of encoders is designated as a master encoder based on the encoder that produces a stream representation with a highest resolution in the output group, the output group comprising of at least one of;
a 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,wherein one or more of the remaining encoders associated with the output group are designated as slave encoders; the master encoder determining where to fragment a received stream; the master encoder identifying fragment boundary points for synchronizing stream representations in the output group with the master encoder output representation stream; and the master encoder providing the identified fragment boundary points and corresponding presentation time stamps (PTS) to each slave encoder associated with the output group for generating a slave encoder output stream representation that is synchronized with the master encoder output stream representation.
-
Specification