# US 10,484,446 B1 · VBR encoding of live content

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

- Number: US 10,484,446 B1
- Document ID: US10484446B1
- Status: Granted
- Kind: B1
- Application number: 15/421,145
- Filed: 2017-01-31
- Granted: 2019-11-19
- Earliest claimed: 2017-01-31
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Charles Benjamin Franklin Waggoner; Marc Joliveau; Stefan Christian Richter; Yongjun Wu
- Web page: https://patentgrep.com/patent/US10484446B1

## CPC

- H04N 21/2187: Live feed
- H04L 47/24: Traffic characterised by specific attributes, e.g. priority or QoS
- H04L 47/2416: Real-time traffic
- H04L 47/38: by adapting coding or compression rate
- H04L 65/00: Network arrangements, protocols or services for supporting real-time applications in data packet communication (real-time or near real-time messaging, e.g. instant messaging [IM] H04L51/04; selective video distribution H04N21/00)
- H04L 65/70: Media network packetisation
- H04L 65/752: adapting media to network capabilities
- H04L 65/80: Responding to QoS
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04N 21/23439: {for generating different versions}
- H04N 21/6373: for rate control {, e.g. request to the server to modify its transmission rate (flow control in packet networks H04L47/10)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N 21/8543: using a description language, e.g. Multimedia and Hypermedia information coding Expert Group [MHEG], eXtensible Markup Language [XML] {(information retrieval of semistructured data, the underlying structure being taken into account, e.g. mark-up language structure data G06F16/80)}
- H04N 21/858: Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques are described that enable the use of variable bit rate (VBR) encoding for live content.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving media content representing a live event while the live event is ongoing;
encoding segments of the media content while the live event is ongoing with a plurality of variable-bit-rate (VBR) encoders operating in parallel thereby generating a plurality of encodings of the media content, each encoding corresponding to one of a plurality of quality levels and including a fragment for each of the segments of the media content;
providing manifest data to each of a plurality of client devices, the manifest data indicating a URL template for generating HTTP requests that enable each client device to generate requests corresponding to the segments of the media content including future segments of the media content that have yet to be encoded;
receiving a first request indicating a first index value corresponding to a first segment of the media content from a first client device;
selecting a first fragment corresponding to the first segment of the media content and a first encoding based on one or more of a first quality level specified in the first request, a supported frame size of the first client device, a video decode buffer constraint of the first client device, or a network bandwidth associated with the first client device;
associating metadata with the first fragment, the metadata representing a set of fragments corresponding to a second segment of the media content subsequent to the first segment and including a duration of the second segment and a plurality of fragment sizes, each of the fragment sizes corresponding to one or more of the plurality of quality levels of the media content;
transmitting the first fragment to the first client device for playback while the live event is ongoing;
receiving a second request indicating a second index value corresponding to the second segment of the media content and one of the plurality of quality levels from the first client device, the second request having been generated using at least the duration of the second segment indicated in the metadata, the duration of the first segment being different from the duration of the second segment;
selecting a second fragment from among the set of fragments based on the second request; and
transmitting the second fragment to the first client device for playback while the live event is ongoing.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, further comprising:
establishing a correspondence between the first fragment and a second encoding, the first encoding corresponding to a first VBR cap value, the second encoding corresponding to a second VBR cap value, the second VBR cap value being lower than the first VBR cap value, wherein establishing the correspondence includes determining that a maximum bit rate of the first fragment is no higher than the second VBR cap value; and
configuring a content delivery system to deliver the first fragment in response to a third request corresponding to the first segment of the media content and the second encoding.

### Claim 3 (depends on 1)

The computer implemented method of claim 1, wherein one or both of the video decode buffer constraint or the network bandwidth are indicated in the first request.

### Claim 4

A computer-implemented method, comprising:
receiving media content representing a live event while the live event is ongoing;
encoding segments of the media content while the live event is ongoing with a plurality of variable-bit-rate (VBR) encoders operating in parallel thereby generating a plurality of encodings of the media content, each encoding corresponding to one of a plurality of quality levels and including a fragment for each of the segments of the media content;
providing manifest data to each of a plurality of client devices, the manifest data being configured to enable each client device to generate requests corresponding to the segments of the media content including future segments of the media content that have yet to be encoded;
receiving a first request corresponding to a first segment of the media content from a first client device;
selecting a first fragment corresponding to the first segment of the media content and a first encoding based on one or more of a first quality level specified in the first request, a characteristic of the first client device, a processing resource constraint of the first client device, or a network condition associated with the first client device;
associating metadata with the first fragment, the metadata representing a fragment characteristic of a second fragment corresponding to a second segment of the media content subsequent to the first segment, the fragment characteristic corresponding to one of the plurality of VBR encoders; and
transmitting the first fragment and the associated metadata to the first client device for playback while the live event is ongoing.

### Claim 5 (depends on 4)

The computer implemented method of claim 4, further comprising:
establishing a correspondence between the first fragment and a second encoding; and
configuring a content delivery system to deliver the first fragment in response to a second request corresponding to the first segment of the media content and the second encoding.

### Claim 6 (depends on 5)

The computer implemented method of claim 5, wherein the first encoding corresponds to a first VBR cap value, and the second encoding corresponds to a second VBR cap value, the second VBR cap value being lower than the first VBR cap value, and wherein establishing the correspondence between the first fragment and the second encoding includes determining that a maximum bit rate of the first fragment is no higher than the second VBR cap value.

### Claim 7 (depends on 4)

The computer implemented method of claim 4, wherein the manifest data indicate one or more templates for generating requests, each of the requests corresponding to a segment of the media content and a respective one of the plurality of quality levels.

### Claim 8 (depends on 4)

The computer implemented method of claim 4, further comprising:
receiving a second request corresponding to the second segment of the media content and one of the plurality of quality levels from the first client device, the second request having been generated based on the fragment characteristic of the second fragment represented in the metadata associated with the first fragment, the fragment characteristic being at least one of a duration or a size;
selecting the second fragment from among a set of fragments corresponding to the second segment of the media content based on the second request; and
transmitting the second fragment to the first client device for playback while the live event is ongoing.

### Claim 9 (depends on 4)

The computer implemented method of claim 4, further comprising:
processing the first request to determine one or more of the first quality level specified in the first request, the characteristic of the first client device, the processing resource constraint of the first client device, or the network condition associated with the first client device.

### Claim 10 (depends on 9)

The computer implemented method of claim 9, wherein one or both of the processing resource constraint or the network condition are indicated in the first request.

### Claim 11 (depends on 4)

The computer implemented method of claim 4, further comprising determining the characteristic of the first client device by performing a database lookup using a device identifier that corresponds to the first client device.

### Claim 12 (depends on 4)

The computer implemented method of claim 4, further comprising:
receiving a second request corresponding to a second segment of the media content from the first client device, the second request corresponding to a second quality level that corresponds to a second encoding;
selecting a second fragment corresponding to the second segment of the media content based on the second request, the second fragment corresponding to one of the encodings other than the second encoding; and
transmitting the second fragment to the first client device for playback while the live event is ongoing.

### Claim 13 (depends on 4)

The computer implemented method of claim 4, further comprising:
receiving a second request corresponding to the first segment of the media content from a second client device;
selecting a second fragment corresponding to the first segment of the media content and a second encoding based, at least in part, on a characteristic of the second client device, wherein the characteristic of the first client device and the characteristic of the second client device are the same, and wherein the quality level corresponding to the first encoding and the quality level corresponding to the second encoding are different; and
transmitting the second fragment to the second client device for playback while the live event is ongoing.

### Claim 14

A system, comprising one or more computing devices configured to:
receive media content representing a live event while the live event is ongoing;
encode segments of the media content while the live event is ongoing with a plurality of variable-bit-rate (VBR) encoders operating in parallel thereby generating a plurality of encodings of the media content, each encoding corresponding to one of a plurality of quality levels and including a fragment for each of the segments of the media content;
provide manifest data to each of a plurality of client devices, the manifest data being configured to enable each client device to generate requests corresponding to the segments of the media content including future segments of the media content that have yet to be encoded;
receive a first request corresponding to a first segment of the media content from a first client device;
select a first fragment corresponding to the first segment of the media content and a first encoding based on one or more of a first quality level specified in the first request, a characteristic of the first client device, a processing resource constraint of the first client device, or a network condition associated with the first client device;
associate metadata with the first fragment, the metadata representing a fragment characteristic of a second fragment corresponding to a second segment of the media content subsequent to the first segment, the fragment characteristic corresponding to one of the plurality of VBR encoders; and
transmit the first fragment and the associated metadata to the first client device for playback while the live event is ongoing.

### Claim 15 (depends on 14)

The system of claim 14, wherein the one or more computing devices are further configured to:
establish a correspondence between the first fragment and a second encoding; and
configure a content delivery system to deliver the first fragment in response to a second request corresponding to the first segment of the media content and the second encoding.

### Claim 16 (depends on 15)

The system of claim 15, wherein the first encoding corresponds to a first VBR cap value, and the second encoding corresponds to a second VBR cap value, the second VBR cap value being lower than the first VBR cap value, and wherein establishing the correspondence between the first fragment and the second encoding includes determining that a maximum bit rate of the first fragment is no higher than the second VBR cap value.

### Claim 17 (depends on 14)

The system of claim 14, wherein the manifest data indicate one or more templates for generating requests, each of the requests corresponding to a segment of the media content and a respective one of the plurality of quality levels.

### Claim 18 (depends on 14)

The system of claim 14, wherein the one or more computing devices are further configured to:
receive a second request corresponding to the second segment of the media content and one of the plurality of quality levels from the first client device, the second request having been generated based on the fragment characteristic of the second fragment represented in the metadata associated with the first fragment, the fragment characteristic being at least one of a duration or a size;
select the second fragment from among a set of fragments corresponding to the second segment of the media content based on the second request; and
transmit the second fragment to the first client device for playback while the live event is ongoing.

### Claim 19 (depends on 14)

The system of claim 14, wherein the one or more computing devices are further configured to:
process the first request to determine one or more of the first quality level specified in the first request, the characteristic of the first client device, the processing resource constraint of the first client device, or the network condition associated with the first client device.

### Claim 20 (depends on 19)

The system of claim 19, wherein one or both of the processing resource constraint or the network condition are indicated in the first request.

### Claim 21 (depends on 14)

The system of claim 14, wherein the one or more computing devices are further configured to:
determine the characteristic of the first client device by performing a database lookup using a device identifier that corresponds to the first client device.

### Claim 22 (depends on 14)

The system of claim 14, wherein the one or more computing devices are further configured to:
receive a second request corresponding to a second segment of the media content from the first client device, the second request corresponding to a second quality level that corresponds to a second encoding;
select a second fragment corresponding to the second segment of the media content based on the second request, the second fragment corresponding to one of the encodings other than the second encoding; and
transmit the second fragment to the first client device for playback while the live event is ongoing.

### Claim 23 (depends on 14)

The system of claim 14, wherein the one or more computing devices are further configured to:
receive a second request corresponding to the first segment of the media content from a second client device;
select a second fragment corresponding to the first segment of the media content and a second encoding based, at least in part, on a characteristic of the second client device, wherein the characteristic of the first client device and the characteristic of the second client device are the same, and wherein the quality level corresponding to the first encoding and the quality level corresponding to the second encoding are different; and
transmit the second fragment to the second client device for playback while the live event is ongoing.
