# US 11,310,546 B2 · Distributed multi-datacenter video packaging system

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

- Number: US 11,310,546 B2
- Document ID: US11310546B2
- Status: Granted
- Kind: B2
- Application number: 17/140,670
- Filed: 2021-01-04
- Published: 2021-04-29
- Granted: 2022-04-19
- Earliest claimed: 2017-09-13
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Saurav Sengupta; Kyle Sletmoe; Kristopher Kosmatka; William Shogren; Rory McCarthy; Gary Hertel; Michael Kale; Ramya Krishnamoorthy
- Web page: https://patentgrep.com/patent/US11310546B2

## CPC

- H04N 21/2408: {Monitoring of the upstream path of the transmission network, e.g. client requests (monitoring data switching networks utilization H04L43/0876; scheduling or organising the servicing of application requests H04L67/60)}
- H04L 65/60: Network streaming of media packets
- H04L 65/612: for unicast
- H04L 67/1021: based on client or server locations
- H04N 21/2181: {comprising remotely distributed storage units, e.g. when movies are replicated over a plurality of video servers (distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS], H04L67/1097)}
- H04N 21/21815: {comprising local storage units}
- H04N 21/2183: Cache memory {(caches in web servers or browsers G06F16/9574; intermediate storage and caching in data networks H04L67/568)}
- H04N 21/231: Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N 21/23106: {involving caching operations (prefetching while addressing of a memory level in which the access to the desired data or data block requires associative addressing means within memory systems or architectures G06F12/0862; caching at an intermediate stage in a data network H04L67/568)}
- H04N 21/234: Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N 21/2343: involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements {(video transcoding H04N19/40; media packet handling at the source H04L65/762)}
- H04N 21/235: Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N 21/239: Interfacing the upstream path of the transmission network, e.g. prioritizing client {content} requests (hybrid fiber coaxial [HFC] networks for upstream channel allocation for video distribution H04L12/2801; flow control in data networks H04L47/10; real-time communication protocols in data switching networks H04L65/00; scheduling or organising the servicing of application requests H04L67/60)
- H04N 21/2393: {involving handling client requests (scheduling or organising the servicing of application requests H04L67/60)}
- H04N 21/2402: {Monitoring of the downstream path of the transmission network, e.g. bandwidth available (traffic monitoring in data switching networks H04L43/00; monitoring data switching networks utilization H04L43/0876)}
- H04N 21/2405: {Monitoring of the internal components or processes of the server, e.g. server load (allocation of resources in multiprogramming arrangements G06F9/50; performance measurement of computer activity G06F11/34)}
- H04N 21/2407: {Monitoring of transmitted content, e.g. distribution time, number of downloads (arrangements for monitoring programmes for broadcast or for distribution combined with broadcast H04H20/14)}
- H04N 21/258: Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data {(arrangements for services using the result on the distributing side of broadcast systems H04H60/66; profiles in network data switching protocols H04L67/30)}
- H04N 21/8547: involving timestamps for synchronizing content
- H04N 21/433: Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N 21/4402: involving reformatting operations of video signals for household redistribution, storage or real-time display {(details of conversion of video standards at pixel level H04N7/01; video transcoding H04N19/40; adapting incoming signals to the display format of the display terminal G09G5/005; media handling at the source in data packet switching networks H04L65/764)}
- H04N 21/643: Communication protocols {(network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP], H04L65/65)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A content streaming system and methodology for facilitating the management of content streaming. A video packaging and origination service requests streaming content that is organized according to content segments. Individual content segments will be encoded according to a plurality of encoding profiles and generated by different encoders. The video packaging and origination service utilizes synchronization information provided to the encoders to select individual encoded content segments responsive to the request for streaming content.

## Claims

### Claim 1

A system to manage streaming content comprising:
one or more computing devices associated with a content delivery service, wherein the content delivery service is configured to:
transmit synchronization information to a content provider for incorporation into encoded segments from a plurality of encoding nodes;
obtain a first plurality of segments of a set of segments encoded according to an encoding profile from a first encoding node of the plurality of encoding nodes, the synchronization information incorporated into the first plurality of segments;
obtain a second plurality of segments of the set of segments encoded according to the encoding profile from a second encoding node of the plurality of encoding nodes, the synchronization information incorporated into the second plurality of segments, wherein the first plurality of segments and the second plurality of segments are at least partially overlapping segments;
assemble at least one segment from the first plurality of segments and at least one segment from the second plurality of segments to form a set of ordered segments utilizing the synchronization information, wherein forming the set of ordered segments includes removing duplicate segments of the at least partially overlapping segments based on one or more of a quality measurement, a priority designation, and attributable cost; and
store the set of ordered segments and meta-data associated with the stored set of ordered segments.

### Claim 2 (depends on 1)

The system of claim 1, wherein the synchronization information comprises at least one of sequence numbers corresponding to the set of encoded segments or time stamp information related to a relative time of the set of encoded segments.

### Claim 3 (depends on 1)

The system of claim 1, wherein the synchronization information comprises a time of operation.

### Claim 4 (depends on 1)

The system of claim 1, wherein the video packaging and origination service is further configured to generate deterministic data included in a set of the meta-data utilized to access and generate outgoing content streams.

### Claim 5 (depends on 4)

The system of claim 4, wherein the deterministic data includes at least one of timestamp information related to a time of play of the set of encoded segments, sequence number identifying an order of the encoded content segment in the set of encoded segments, or time of operation of the encoder.

### Claim 6

A computer-implemented method to manage transmission of content comprising:
generating synchronization information for incorporation into encoded segments from a plurality of encoders;
transmitting the synchronization information to a content provider, wherein the content provider provides the plurality of encoders corresponding identified streaming content to be encoded;
receiving a first portion of a set of segments associated with a request for streaming content from a first identifiable encoder of a plurality of encoders encoding according to an encoding profile, the first identifiable encoder incorporating the synchronization information into the first portion;
receiving a second portion of the set of segments associated with the request for the streaming content from a second identifiable encoder of the plurality of encoders encoding according to the encoding profile, the second identifiable encoder incorporating the synchronization information into the second portion, wherein the segments from the first and second portions are at least partially overlapping segments;
utilizing the synchronization information to assemble the set of segments that includes at least one segment from the first portion and at least one segment from the second portion to form the identified streaming content, wherein assembling the set of segments includes removing duplicate segments based on one or more of a quality measurement, a priority designation, and attributable cost; and
storing the set of segments.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6 further comprising identifying missing encoded segments not included in the first portion of the set of segments or the second portion of the set of segments.

### Claim 8 (depends on 6)

The computer-implemented method of claim 6 further comprising extrapolating at least one additional segment to facilitate the assembly of the set of segments.

### Claim 9 (depends on 6)

The computer-implemented method of claim 6 further comprising extrapolating a portion of a received encoded segment to facilitate assembly of the set of segments.

### Claim 10 (depends on 6)

The computer-implemented method of claim 6 further comprising removing duplicate encoded segments.

### Claim 11 (depends on 6)

The computer-implemented method of claim 6 further comprising determining a failure in the first identifiable encoder.

### Claim 12 (depends on 11)

The computer-implemented method of claim 11 further comprising requesting at least one segment from a third identifiable encoder of the plurality of encoders responsive to the determined failure of the first identifiable encoder.

### Claim 13 (depends on 6)

The computer-implemented method of claim 6 wherein a number of encoders of the plurality of encoders is based at least in part on a complexity of the encoding profile.

### Claim 14 (depends on 6)

The computer-implemented method of claim 6 wherein a number of encoders of the plurality of encoders is based at least in part on a frequency of requests for streaming content.

### Claim 15 (depends on 6)

The computer-implemented method of claim 6, wherein the synchronization information comprises sequence numbers corresponding to the set of encoded segments, time stamp information related to a relative time of the set of encoded segments, or a time of operation.

### Claim 16 (depends on 6)

The computer-implemented method of claim 6 further comprising distributing encoding among the first and second identifiable encoders, wherein the first and second portions comprise non-over lapping encoded segments.

### Claim 17

A computer-implemented method to manage transmission of content comprising:
identifying requested content corresponding to a content request for streaming content, the streaming content organized into a set of segments;
receiving synchronization information;
selecting a number of encoders to encode the requested content according to an encoding profile;
causing generation of a plurality of encoder streams corresponding to the selected number of encoders, each encoder stream of the plurality of encoder streams incorporating the synchronization information and encoding the requested content according to the encoding profile, wherein the plurality of encoder streams includes at least partially overlapping segments;
processing the plurality of encoder streams from the selected number of encoders by removing duplicate segments based on one or more of a quality measurement, a priority designation, and attributable cost; and
transmitting the processed plurality of encoder streams responsive to the content request.

### Claim 18 (depends on 17)

The computer-implemented method of claim 17 further comprising distributing encoding among the selected number of encoders, wherein the transmitted plurality of encoder streams comprises non-over lapping encoded segments.

### Claim 19 (depends on 17)

The computer-implemented method of claim 17, wherein the plurality of encoder streams comprises at least partially overlapping encoded segments.

### Claim 20 (depends on 17)

The computer-implemented method of claim 17, wherein the number of encoders is based at least in part on a complexity of the encoding profile.

### Claim 21 (depends on 17)

The computer-implemented method of claim 17, wherein the synchronization information comprises sequence numbers corresponding to the set of encoded segments, time stamp information related to a relative time of the set of encoded segments, or a time of operation.
