# US 10,375,444 B2 · Partial video pre-fetch

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

- Number: US 10,375,444 B2
- Document ID: US10375444B2
- Status: Granted
- Kind: B2
- Application number: 15/042,952
- Filed: 2016-02-12
- Published: 2016-08-18
- Granted: 2019-08-06
- Earliest claimed: 2015-02-13
- Assignees: Performance and Privacy Ireland Ltd.
- Applicants: Opera Software Ireland Limited
- Inventors: Nitin Bhandari; Erik R. Swenson
- Web page: https://patentgrep.com/patent/US10375444B2

## CPC

- H04N 21/4621: {Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen (arrangements for using the results of monitoring on user's side in broadcast systems H04H60/65; flow control in packet networks H04L47/10)}
- H04L 65/60: Network streaming of media packets
- H04L 65/613: for the control of the source by the destination (control signals issued by the client directed to the server or network components specially adapted for selective content distribution H04N21/637)
- H04L 65/762: {at the source (reformatting of additional data in video distribution servers H04N21/2355)}
- H04L 65/80: Responding to QoS
- H04L 67/61: taking into account QoS or priority requirements
- H04N 21/4331: {Caching operations, e.g. of an advertisement for later insertion during playback}
- H04N 21/437: Interfacing the upstream path of the transmission network, e.g. for transmitting client requests to a VOD server {(flow control in data networks H04L47/10; streaming protocols, e.g. RTP or RTCP, H04L65/65; scheduling or organising the servicing of application requests in data packet switching networks H04L67/60)}
- 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/6373: for rate control {, e.g. request to the server to modify its transmission rate (flow control in packet networks H04L47/10)}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The disclosed configuration includes a partial pre-fetching of source files from an origin server for playback. After pre-fetch, the remaining portions of a source file may be optimized for retrieval. By providing partial pre-fetch of source files, in conjunction with optimization, automatic video preview may be supported and source file presentation may begin in a timely fashion in response to user requested playback without inordinate bandwidth consumption.

## Claims

### Claim 1

A computer implemented method for playback of online content on a user device, the method comprising:
pre-fetching a first portion of an embedded media file;
storing the first portion of the embedded media file in a file cache of the user device;
in response user-playback of the embedded media file:
providing, from the file cache, data from the first portion of the embedded media file for playback, and
requesting a next portion of the embedded media file;
determining a quality of a network connection of the user device by evaluating, from the user device, network parameters indicative of available bandwidth to the user device associated with providing of the next portion of the embedded media file to the user device;
in response to providing last data from the first portion of the embedded media file from the file cache for playback, switching to providing data from the next portion of the embedded media file, the next portion and one or more remaining portions of the embedded media file being streamed to the user device by an origin server, wherein only the first portion of the embedded media file is stored in the file cache of the user device; and
requesting, in response to availability of an adaptive bitrate (ABR), the one or more remaining portions of the embedded media file with a varying bitrate based on the quality of the network connection.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first portion of the embedded media file is played automatically upon a display area for presentation of the embedded media file appearing within a viewable display on a screen of the user device.

### Claim 3 (depends on 2)

The method of claim 2, further comprising distinguishing between the automatic playback of the embedded media file and the user-playback of the embedded media file.

### Claim 4 (depends on 3)

The method of claim 3, wherein, in response to the automatic playback of the embedded media file, the first portion of the embedded media file is looped from the file cache while the display area for presentation of the embedded media file appears within the viewable display on the screen.

### Claim 5 (depends on 1)

The method of claim 1, wherein user-playback of the embedded media file comprises detection of user input requesting playback of the embedded media file, the method further comprising:
playing the first portion of the embedded media file from the data provided by the file cache to begin playback of the embedded media file;
receiving the next portion of the embedded media file; and
continuing playback of the embedded media file by playing the data provided from the next portion from an end of the first portion of the embedded media file.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining the quality of the network connection of the user device comprises evaluating one or more network parameters including round trip time, latency, and packet size.

### Claim 7 (depends on 1)

The method of claim 1, wherein requesting, in response to availability of an adaptive bitrate (ABR), one or more remaining portions of the embedded media file with a varying bitrate based on the quality of the network connection comprises specifying at least one of a new bitrate, a new frame width, and a new frame height in a request for a remaining portion of the embedded media file.

### Claim 8

A non-transitory computer-readable storage medium comprising computer program instructions for playback of online content on a user device, the instructions when executed by a processor of the user device causing the processor to:
pre-fetch a first portion of an embedded media file;
store the first portion of the embedded media file in a file cache of the user device;
in response user-playback of the embedded media file:
provide, from the file cache, data from the first portion of the embedded media file for playback, and
request a next portion of the embedded media file;
determine a quality of a network connection of the user device by evaluating, from the user device, network parameters indicative of available bandwidth to the user device associated with providing of the next portion of the embedded media file to the user device;
in response to providing last data from the first portion of the embedded media file from the file cache for playback, switch to providing data from the next portion of the embedded media file, the next portion and one or more remaining portions of the embedded media file being streamed to the user device by an origin server, wherein only the first portion of the embedded media file is stored in the file cache of the user device; and
request, in response to availability of an adaptive bitrate (ABR), the one or more remaining portions of the embedded media file with a varying bitrate based on the quality of the network connection.

### Claim 9 (depends on 8)

The computer-readable storage medium of claim 8, wherein the first portion of the embedded media file is played automatically upon a display area for presentation of the embedded media file appearing within a viewable display on a screen of the user device.

### Claim 10 (depends on 9)

The computer-readable storage medium of claim 9, wherein the instructions further cause the processor to distinguish between the automatic playback of the embedded media file and the user-playback of the embedded media file.

### Claim 11 (depends on 10)

The computer-readable storage medium of claim 10, wherein, in response to the automatic playback of the embedded media file, the first portion of the embedded media file is looped from the file cache while the display area for presentation of the embedded media file appears within the viewable display on the screen.

### Claim 12 (depends on 8)

The computer-readable storage medium of claim 8, wherein user-playback of the embedded media file comprises detection of user input requesting playback of the embedded media file, the instructions further causing the processor to:
play the first portion of the embedded media file from the data provided by the file cache to begin playback of the embedded media file;
receive the next portion of the embedded media file; and
continue playback of the embedded media file by playing the data provided from the next portion from an end of the first portion of the embedded media file.

### Claim 13 (depends on 8)

The computer-readable storage medium of claim 8, wherein determining the quality of the network connection of the user device comprises evaluating one or more network parameters including round trip time, latency, and packet size.

### Claim 14 (depends on 8)

The computer-readable storage medium of claim 8, wherein requesting, in response to availability of an adaptive bitrate (ABR), one or more remaining portions of the embedded media file with a varying bitrate based on the quality of the network connection comprises specifying at least one of a new bitrate, a new frame width, and a new frame height in a request for a remaining portion of the embedded media file.

### Claim 15

A user device comprising:
a processor; and
a non-transitory computer-readable storage medium comprising computer program instructions that cause the processor to:
pre-fetch a first portion of an embedded media file;
store the first portion of the embedded media file in a file cache of the user device;
in response user-playback of the embedded media file:
provide, from the file cache, data from the first portion of the embedded media file for playback, and
request a next portion of the embedded media file;
determine a quality of a network connection of the user device by evaluating, from the user device, network parameters indicative of available bandwidth to the user device associated with providing of the next portion of the embedded media file to the user device;
in response to providing last data from the first portion of the embedded media file from the file cache for playback, switch to providing data from the next portion of the embedded media file, the next portion and one or more remaining portions of the embedded media file being streamed to the user device by an origin server, wherein only the first portion of the embedded media file is stored in the file cache of the user device; and
request, in response to availability of an adaptive bitrate (ABR), the one or more remaining portions of the embedded media file with a varying bitrate based on the quality of the network connection.

### Claim 16 (depends on 15)

The user device of claim 15, wherein the user device comprises a screen, and wherein the first portion of the embedded media file is played automatically upon a display area for presentation of the embedded media file appearing within a viewable display on the screen of the user device.

### Claim 17 (depends on 16)

The user device of claim 16, wherein the instructions further cause the processor to distinguish between the automatic playback of the embedded media file and the user-playback of the embedded media file.

### Claim 18 (depends on 17)

The user device of claim 17, wherein, in response to the automatic playback of the embedded media file, the first portion of the embedded media file is looped from the file cache while the display area for presentation of the embedded media file appears within the viewable display on the screen.

### Claim 19 (depends on 15)

The user device of claim 15, wherein user-playback of the embedded media file comprises detection of user input requesting playback of the embedded media file, the instructions further causing the processor to:
play the first portion of the embedded media file from the data provided by the file cache to begin playback of the embedded media file;
receive the next portion of the embedded media file; and
continue playback of the embedded media file by playing the data provided from the next portion from an end of the first portion of the embedded media file.

### Claim 20 (depends on 15)

The user device of claim 15, wherein determining the quality of the network connection of the user device comprises evaluating one or more network parameters including round trip time, latency, and packet size.

### Claim 21 (depends on 15)

The user device of claim 15, wherein requesting, in response to availability of an adaptive bitrate (ABR), one or more remaining portions of the embedded media file with a varying bitrate based on the quality of the network connection comprises specifying at least one of a new bitrate, a new frame width, and a new frame height in a request for a remaining portion of the embedded media file.
