# US 2013/0156094 A1 · System and Method for Synchronizing Timing Across Multiple Streams

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2013/0156094 A1
- Document ID: US20130156094A1
- Status: Published application
- Kind: A1
- Application number: 13/326,563
- Filed: 2011-12-15
- Published: 2013-06-20
- Earliest claimed: 2011-12-15
- Assignees: Comcast Cable Communications, LLC
- Inventors: Yasser F. Syed; Daniel Holden
- Web page: https://patentgrep.com/patent/US20130156094A1

## CPC

- H04N 19/40: using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
- H04N 19/103: Selection of coding mode or of prediction mode
- H04N 19/184: the unit being bits, e.g. of the compressed video stream
- H04N 21/23424: {involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement}
- H04N 21/23439: {for generating different versions}
- H04N 21/242: Synchronisation processes, e.g. processing of PCR [Programme Clock References] {(arrangements for synchronising broadcast or distribution via plural systems in broadcast distribution systems H04H20/18)}
- H04N 19/115: Selection of the code volume for a coding unit prior to coding
- H04N 19/156: Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

Systems and methods of adaptive streaming are discussed. Transcoded copies of a source stream may be aligned with one another such that the independently specified portions of each transcoded stream occur at the same locations within the content. These transcoded copies may be produced by one or more transcoders, whose outputs are synchronized by a delay adjuster. A fragmenter may use the synchronized and aligned streams to efficiently produce fragments suitable for use in adaptive streaming.

## Claims

### Claim 1

A method comprising:
receiving, at a computing device, a plurality of encodings of a common piece of content;
identifying a time when a common location within the encodings was received for each encoding;
based on the identified times, calculating an amount of delay for each encoding such that delaying each encoding by the calculated amount allows for the common location to occurr at the same time;
delaying each encoding by its corresponding calculated amount; and
outputting the delayed encodings from the computing device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the common location within each encoding is identified by a clock signal included within each encoding,
wherein the encodings are received simultaneously at the computing device, and
wherein the delayed encodings are output simultaneously from the computing device.

### Claim 3 (depends on 1)

The method of claim 1, wherein the common location within each encoding is identified by an SCTE-35 signal included within each encoding.

### Claim 4 (depends on 1)

The method of claim 1, wherein the common location within each encoding is identified by examining the encodings and locating i-frames that begin independently specified portions of each encoding.

### Claim 5 (depends on 1)

The method of claim 1, wherein calculating an amount of delay for each encoding includes:
identifying the latest time when the common location was received in one of the encodings; and
determining, for each encoding, the difference between when the common location was received in the encoding and the latest time when the common location was received.

### Claim 6 (depends on 5)

The method of claim 5, wherein calculating an amount of delay for each encoding also includes:
adding, for each encoding, a common amount to the determined difference.

### Claim 7 (depends on 1)

The method of claim 1, wherein calculating an amount of delay for each encoding includes:
identifying the earliest time when the common location was received in one of the encodings;
determining the difference between when the common location was received in the encoding and the earliest time when the common location was received; and
subtracting the determined difference from a preset amount of time.

### Claim 8

An apparatus comprising:
a processor; and
a memory storing executable instructions that configure the apparatus to perform:
receiving a plurality of aligned, synchronized encodings of a common piece of content;
without examining the contents of at least one of the plurality of encodings, packaging each of the encodings into fragments that are each independently specified.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the instructions further configure the apparatus to perform:
receiving an indication of times when independently specified portions of at least one of said encodings begin;
wherein said packaging is performed by using the received indication to begin fragments of each of the encodings at the indicated times.

### Claim 10 (depends on 8)

The apparatus of claim 8, wherein the packaging is performed by:
examining a first of the encodings to identify when independently specified portions begin; and
beginning fragments of each of the encodings at the identified times when independently specified portions begin.

### Claim 11 (depends on 10)

The apparatus of claim 10, wherein identifying when independently specified portions begin includes identifying when i-frames occur in the first encoding.

### Claim 12 (depends on 8)

The apparatus of claim 8, wherein the packaging is performed by:
locating a signal contained in a first of the encodings that coincides with when independently specified portions of the first encoding begin;
beginning fragments of each of the encodings at the times that coincide with said signal.

### Claim 13 (depends on 12)

The apparatus of claim 12, wherein the signal is a clock signal.

### Claim 14 (depends on 12)

The apparatus of claim 12, wherein the signal is an SCTE-35 signal.

### Claim 15

A method comprising:
transcoding a first content stream into a plurality of formats at a plurality of transcoders, wherein the transcoders align independently specified portions at common locations within each transcoding of the first content;
sending the transcodings of the first content to a first computing device that is configured to delay one or more streams;
synchronizing, at the first computing device, the transcodings of the first content and outputting the transcodings to a second computing device configured to fragment one or more streams;
packaging, at said second computing device, each of the transcodings of the first content into fragments that are each independently specified without examining the contents of at least one of the transcodings.

### Claim 16 (depends on 15)

The method of claim 15, further comprising:
delivering the content of the first content stream from an adaptive streaming server to a receiver by delivering:
a first set of fragments that were created, at said second computing device, from one of the transcodings; and
at least a second set of fragments that were created, at said second computing device, from another of the transcodings.

### Claim 17 (depends on 15)

The method of claim 15, further comprising:
outputting an indication of where the independently specified portions of at least one transcoding is located from at least one of the transcoders to said first computing device; and
sending the indication of where independently specified portions are located from said first computing device to said second computing device;
wherein the packaging at said second computing device is performed by using the indication to locate where to begin and end the fragments of each of the transcodings.

### Claim 18 (depends on 15)

The method of claim 15, further comprising:
sending the first content stream to said first computing device;
wherein said first computing device synchronizes the transcodings by delaying each transcoding by an amount that is calculated by:
identifying when a common location was received in the first content stream;
determining, for each transcoding of the first content stream, the difference between when the common location was received in the first content stream and when the common location was received in the transcoding; and
subtracting the determined difference from a preset amount of time.

### Claim 19 (depends on 18)

The method of claim 18, wherein said first computing device synchronizes the first content stream with the transcodings and outputs the synchronized version of the first content stream to said second computing device simultaneously with the transcodings of the first content stream.

### Claim 20 (depends on 15)

The method of claim 15, further comprising:
transcoding a second content stream into the same plurality of formats as the first content stream, wherein the transcoders align independently specified portions at the same locations within each transcoding of the second content, and wherein each independently specified portion of the transcoded second content has a corresponding independently specified portion of the transcoded first content that has the same duration;
sending the transcodings of the second content to said first computing device;
synchronizing, at said first computing device, the transcodings of the second content such that independently specified portions of the transcodings of the second content begin at the same time as the corresponding independently specified portions of the transcodings of the first content;
outputting the transcodings of the second content to said second computing device;
packaging, at said second computing device, each of the transcodings of the second content into fragments that are each independently specified without examining the contents of any of the transcodings of the second content.
