# US 9,521,354 B2 · Adaptive streaming for digital content distribution

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

- Number: US 9,521,354 B2
- Document ID: US9521354B2
- Status: Granted
- Kind: B2
- Application number: 14/691,534
- Filed: 2015-04-20
- Published: 2015-08-13
- Granted: 2016-12-13
- Earliest claimed: 2009-07-24
- Assignees: Netflix, Inc.
- Applicants: Netflix, Inc.
- Inventors: Anthony Neal Park; Wei Wei
- Web page: https://patentgrep.com/patent/US9521354B2

## CPC

- H04N 21/2223: {being a public access point, e.g. for downloading to or uploading from clients (arrangements specially adapted to plural spots in a confined site in broadcast systems H04H20/63)}
- H04N 5/76: Television signal recording
- H04N 7/173: with two-way working, e.g. subscriber sending a programme selection signal
- H04N 21/23406: {involving management of server-side video buffer}
- H04N 21/23439: {for generating different versions}
- H04N 21/2387: Stream processing in response to a playback request from an end-user, e.g. for trick-play
- H04N 21/4392: {involving audio buffer management}
- H04N 21/44004: {involving video buffer management, e.g. video decoder buffer or video display buffer}
- H04N 21/44209: {Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network (arrangements for maintenance or administration in data switching networks involving bandwidth and capacity management H04L41/0896)}
- H04N 21/462: Content or additional data management e.g. creating a master electronic programme guide from data received from the Internet and a Head-end or controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N 21/6125: {involving transmission via Internet (transmission by internet of broadcast information H04H60/82)}
- H04N 21/6379: directed to encoder {, e.g. for requesting a lower encoding rate}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

One embodiment of the present invention sets forth a technique for adapting playback bit rate to available delivery bandwidth in a content delivery system comprising a content server and a content player. A content player periodically estimates whether a given playback bit rate can feasibly provide complete playback for a given title assuming currently available bandwidth. If playback becomes unfeasible at a current bit rate assuming currently available bandwidth, then the content player adapts the bit rate downward until a feasible bit rate is achieved. If playback is feasible using a higher bit rate, then the content player may adapt the bit rate upward.

## Claims

### Claim 1

A method, comprising: for adaptively downloading a digital content title from a content server to a content player, the method comprising:
downloading to a client machine for playback a first unit of digital content from a first encoded sequence included in a plurality of encoded sequences stored on a content server, wherein each encoded sequence included in the plurality of encoded sequences comprises a digital content title encoded at a different bit rate and is capable of being separately played back on the client machine;
determining that at least one unit of the digital content title has not yet been downloaded to the client machine for playback;
determining that all remaining units of the digital content title not yet downloaded to the client machine for playback can be downloaded from a second encoded sequence included in the plurality of encoded sequences and played back on the client machine without resulting in a buffer under-run; and
downloading to the client machine for playback a second unit of digital content from the second encoded sequence.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first encoded sequence comprises the digital content title encoded at bit rate that is lower than the different bit rates associated with the other encoded sequences included in the plurality of encoded sequences.

### Claim 3 (depends on 1)

The method of claim 1, wherein the first encoded sequence comprises the digital content title encoded at a first bit rate, and the second encoded sequence comprises the digital content title encoded at a second bit rate, and wherein the first bit rate is lower than the second bit rate.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first encoded sequence comprises the digital content title encoded at a first bit rate, and the second encoded sequence comprises the digital content title encoded at a second bit rate, and wherein the first bit rate is greater than the second bit rate.

### Claim 5 (depends on 1)

The method of claim 1, further comprising downloading to the client machine for playback a third unit of digital content from a third encoded sequence included in the plurality of encoded sequences.

### Claim 6 (depends on 5)

The method of claim 5, wherein the first encoded sequence comprises the digital content title encoded at a first bit rate, the second encoded sequence comprises the digital content title encoded at a second bit rate, and the third encoded sequence comprises the digital content title encoded at a third bit rate, and wherein the third bit rate is greater than the first bit rate, but is lower than the second bit rate.

### Claim 7 (depends on 5)

The method of claim 5, wherein the first encoded sequence comprises the digital content title encoded at a first bit rate, the second encoded sequence comprises the digital content title encoded at a second bit rate, and the third encoded sequence comprises the digital content title encoded at a third bit rate, and wherein the third bit rate is greater than the second bit rate, and the second bit rate is greater than the first bit rate.

### Claim 8 (depends on 5)

The method of claim 5, further comprising determining that all remaining units of the digital content title not yet downloaded to the client machine for playback can be downloaded from the third encoded sequence and played back on the client machine without resulting in a buffer under-run.

### Claim 9 (depends on 1)

The method of claim 1, wherein a quality level associated with the units of digital content from the second encoded sequence is higher than a quality level associated with the units of digital content from the first encoded sequence.

### Claim 10 (depends on 1)

The method of claim 1, wherein the digital content title comprises a movie or a television show.

### Claim 11

A non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to download for playback a digital content title from a content server by performing the steps of:
downloading for playback a first unit of digital content from a first encoded sequence included in a plurality of encoded sequences stored on the content server, wherein each encoded sequence included in the plurality of encoded sequences comprises the digital content title encoded at a different bit rate and is capable of being separately played back on a client machine;
determining for a first time that at least one unit of the digital content title has not yet been downloaded;
downloading for playback a second unit of digital content from a second encoded sequence included in the plurality of encoded sequences;
determining for a second time that at least one unit of the digital content title has not yet been downloaded; and
downloading for playback a third unit of digital content from a third encoded sequence included in the plurality of encodes sequences.

### Claim 12 (depends on 11)

The computer-readable medium of claim 11, further comprising, after determining for the first time, determining that all remaining units of the digital content title not yet downloaded can be downloaded from the second encoded sequence played back on the client machine without resulting in a buffer under-run.

### Claim 13 (depends on 12)

The computer-readable medium of claim 12, further comprising, after determining for the second time, determining that all remaining units of the digital content title not yet downloaded can be downloaded from the third encoded sequence and played back on the client machine without resulting in a buffer under-run.

### Claim 14 (depends on 11)

The computer-readable medium of claim 11, wherein the first encoded sequence comprises the digital content title encoded at a first bit rate, the second encoded sequence comprises the digital content title encoded at a second bit rate, and the third encoded sequence comprises the digital content title encoded at a third bit rate, and wherein the third bit rate is greater than the first bit rate, but is lower than the second bit rate.

### Claim 15 (depends on 11)

The computer-readable medium of claim 11, wherein the first encoded sequence comprises the digital content title encoded at a first bit rate, the second encoded sequence comprises the digital content title encoded at a second bit rate, and the third encoded sequence comprises the digital content title encoded at a third bit rate, and wherein the third bit rate is greater than the second bit rate, and the second bit rate is greater than the first bit rate.

### Claim 16 (depends on 11)

The computer-readable medium of claim 11, wherein the first encoded sequence comprises the digital content title encoded at a first bit rate, the second encoded sequence comprises the digital content title encoded at a second bit rate, and the third encoded sequence comprises the digital content title encoded at a third bit rate, and wherein the first bit rate is greater than the second bit rate, and the second bit rate is greater than the third bit rate.

### Claim 17 (depends on 11)

The computer-readable medium of claim 11, wherein the digital content title comprises a movie or a television show.

### Claim 18

A computing device, comprising:
a memory storing a playback application; and
a processor coupled to the memory, wherein, when executed by the processor, the playback application configures the processor to:
determine whether all remaining units of a digital content title encoded at a current bit rate can be downloaded from a content server and played back without a buffer under-run; and
if all remaining units of the digital content title encoded at the current bit rate cannot be downloaded and played back without a buffer under-run, then:
select a first encoded sequence stored on the current sever that comprises the digital content title encoded at a first bit rate that is lower than the current bit rate,
determine that all remaining units of the digital content title encoded at the first bit rate can be downloaded via the first encoded sequence and played back without a buffer under-run, and
download from the content server for playback a next unit of the digital content title via the first encoded sequence, or
if all remaining units of the digital content title encoded at the current bit rate can be downloaded and played back without a buffer under-run, then:
select a second encoded sequence that comprises the digital content title encoded at a second bit rate that is greater than the current bit rate,
determine whether all remaining units of the digital content title encoded at the second bit rate can be downloaded via the second encoded sequence and played back without a buffer under-run, and
download from the content server for playback a next unit of the digital content title via either a current encoded sequence that comprises the digital content title encoded at the current bit rate or the second encoded sequence.

### Claim 19 (depends on 18)

The computing device of claim 18, wherein all remaining units of the digital content title encoded at the second bit rate cannot be downloaded via the second encoded sequence and played back without a buffer under-run, and the next unit of the digital content title downloaded from the content server is encoded at the current bit rate.

### Claim 20 (depends on 18)

The computing device of claim 18, wherein all remaining units of the digital content title encoded at the second bit rate can be downloaded via the second encoded sequence and played back without a buffer under-run, and the next unit of the digital content title downloaded from the content server is encoded at the second bit rate.
