# US 11,115,688 B2 · Global approach to buffering media content

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

- Number: US 11,115,688 B2
- Document ID: US11115688B2
- Status: Granted
- Kind: B2
- Application number: 16/716,405
- Filed: 2019-12-16
- Published: 2021-06-17
- Granted: 2021-09-07
- Earliest claimed: 2019-12-16
- Assignees: Netflix, Inc.
- Applicants: Netflix, Inc.
- Inventors: Mark Watson
- Web page: https://patentgrep.com/patent/US11115688B2

## CPC

- H04N 21/23406: {involving management of server-side video buffer}
- H04N 21/2401: {Monitoring of the client buffer}
- 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/2387: Stream processing in response to a playback request from an end-user, e.g. for trick-play
- H04N 21/24: Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests {(monitoring of server performance or load G06F11/34; arrangements for observation, testing or troubleshooting for broadcast or for distribution combined with broadcast H04H20/12)}
- H04N 21/25891: {being end-user preferences (retrieval of video data in a video database based on user preferences G06F16/739; arrangements for recognizing users' preferences H04H60/46; user profiles in network data switching protocols H04L67/306; processing of user preferences or user profiles in wireless networks H04W8/18)}
- H04N 21/26208: {the scheduling operation being performed under constraints}
- H04N 21/4331: {Caching operations, e.g. of an advertisement for later insertion during playback}
- H04N 21/47217: {for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks (specific graphical features in visual interfaces H04N21/4312)}
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

In various embodiments, a graph streaming application computes a first distance along a first potential playback path between a first playback position and a first media content block. The graph streaming application then computes a first score for the first media content block based on the first distance and a first probability associated with the first potential playback path. Similarly, the graph streaming application computes a second score for a second media content block based on a second playback position, a second potential playback path, and a second probability associated with the second potential playback path. The graph streaming application compares the first score and the second score to determine that the first media content block should be buffered by a client device. The graph streaming application then causes the first media content block to be stored in a playback buffer for subsequent playback on the client device.

## Claims

### Claim 1

A computer-implemented method for streaming media content to a client device, the method comprising:
computing a first distance along a first potential playback path between a first playback position and a first media content block;
computing a first score for the first media content block based on the first distance and a first probability that the first potential playback path is to be followed during a playback session associated with the client device;
computing a second distance along a second potential playback path between a second playback position and a second media content block;
computing a second score for the second media content block based on the second distance and a second probability that the second potential playback path is to be followed during the playback session;
comparing the first score to the second score to determine that the first media content block should be buffered by the client device; and
causing the first media content block to be stored in a playback buffer for subsequent playback on the client device.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the first media content block is included in a first media content item, and the second media content block is included in a second media content item that differs from the first media content item.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein the first potential playback path comprises a sequence of media content blocks, and further comprising determining that each media content block that precedes the first media content block in the sequence of media content blocks has been previously stored in the playback buffer.

### Claim 4 (depends on 1)

The method of claim 1, wherein computing the first distance comprises:
computing a first partial distance between the first playback position and the start of a control region associated with an immediate transition to the start of a third media content block;
computing a second partial distance between the start of the third media content block and the start of the first media content block; and
performing an addition operation between the first partial distance and the second partial distance.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1, wherein computing the first distance comprises:
computing a first number of frames between the first playback position and the end of a first segment of a first media content item; and
computing a second number of frames between the start of a second segment of a second media content item and the start of the first media content block, wherein the first media content block is included in the second segment; and
performing an addition operation between the first number of frames and the second number of frames.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein the first playback position is associated with a first media content item and corresponds to a frame that is displayed on the client device, and the second playback position corresponds to a start frame associated with the second potential playback path.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, wherein the first potential playback path is included in a playback graph that represents at least one of a fast post play use case, a skip introduction use case, a branched narrative use case, or a repeat use case.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, where computing the first score comprises:
mapping the first distance to a first streaming value based on a re-buffer risk curve, wherein the first streaming value is associated with an importance of transmitting the first media content block to the client device to reducing the risk of re-buffering events; and
performing a multiplication operation between the first streaming value and the first probability.

### Claim 9 (depends on 1)

The computer-implemented method of claim 1, wherein the first probability equals a product of one or more local weights associated with the first potential playback path and a global weight that corresponds to a probability that a playback graph that includes the first potential playback path is to be followed during the playback session.

### Claim 10 (depends on 1)

The computer-implemented method of claim 1, wherein the first media content block is included in a first episode of a television show, and the second media content block is included in a second episode of the television show.

### Claim 11

One or more non-transitory computer readable media including instructions that, when executed by one or more processors, cause the one or more processors to stream media content to a client device by performing the steps of:
computing a first distance along a first potential playback path between a first playback position and a first media content block that has not been previously stored in a playback buffer;
computing a first score for the first media content block based on the first distance and a first probability that the first potential playback path is to be followed during a playback session associated with the client device;
computing a second distance along a second potential playback path between a second playback position and a second media content block that has not been previously stored in the playback buffer;
computing a second score for the second media content block based on the second distance and a second probability that the second potential playback path is to be followed during the playback session;
performing one or more ranking operations on a plurality of scores that includes the first score and the second score to determine that the first media content block should be buffered by the client device; and
causing the first media content block to be stored in the playback buffer for subsequent playback on the client device.

### Claim 12 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein a sequence of blocks associated with a first media content item comprises a sequence of the first media content block, at least a third media content block, and the second media content block.

### Claim 13 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein the first potential playback path comprises a sequence of media content blocks, and further comprising determining that each media content block that precedes the first media content block in the sequence of media content blocks has been previously stored in the playback buffer.

### Claim 14 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein computing the first distance comprises:
determining that the first playback position is within a control region associated with an immediate transition to the start of a third media content block; and
setting the first distance equal to the total number of frames along the first potential playback path that reside between the start of the third media content block and the start of the first media content block.

### Claim 15 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein the first playback position is associated with a first media content item and corresponds to a frame that is displayed on the client device, and the second playback position corresponds to a start frame associated with the second potential playback path.

### Claim 16 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein the first potential playback path is included in a playback graph that represents at least one of a fast post play use case, a skip introduction use case, a branched narrative use case, or a repeat use case.

### Claim 17 (depends on 11)

The one or more non-transitory computer readable media of claim 11, where computing the first score comprises:
computing a first streaming value based on the first distance, wherein the first streaming value is associated with an importance of transmitting the first media content block to the client device to reducing the risk of re-buffering events; and
performing a multiplication operation between the first streaming value and the first probability.

### Claim 18 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein the first probability equals a product of one or more local weights associated with the first potential playback path and a global weight that corresponds to a probability that a playback graph that includes the first potential playback path is to be followed during the playback session.

### Claim 19 (depends on 11)

The one or more non-transitory computer readable media of claim 11, wherein the first media content block is included in an introduction to a movie, and the second media content block is included in a main portion of the movie.

### Claim 20

A system, comprising:
one or more memories storing instructions; and
one or more processors that are coupled to the one or more memories and, when executing the instructions, are configured to:
compute a first distance along a first potential playback path between a first frame that is displayed on a client device and a first media content block;
compute a first score for the first media content block based on the first distance and a first probability that the first potential playback path is to be followed during a playback session associated with the client device;
compute a second distance along a second potential playback path between the first frame or a start frame of the second potential playback path and a second media content block;
compute a second score for the second media content block based on the second distance and a second probability that the second potential playback path is to be followed during the playback session;
compare the first score to the second score to determine that the first media content block should be buffered by the client device; and
cause the first media content block to be stored in the playback buffer for subsequent playback on the client device.
