IP Library Granted Patent US 8,028,081
Granted Patent B2
US 8,028,081 · App. 12/126,169 · Granted Sep 27, 2011

System and method for adaptive segment prefetching of streaming media

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,028,081
App. No.
12/126,169
Granted
Sep 27, 2011
Kind
B2
Abstract

Systems and methods are provided for obtaining look-ahead segments for a streaming media item during playback such that the viewer can easily skip to the look-ahead segments without experiencing any substantial interruption or delay in playback. In general, a streaming media source begins streaming a media item to a streaming media client for playback. In one embodiment, the streaming media client selects one or more segments of the media item as one or more look-ahead segments to prefetch from the streaming media source. Then, while the media item is being streamed to the streaming media client for playback, the streaming media client prefetches the one or more look-ahead segments of the media item from the streaming media source. The look-ahead segments are thereafter utilized to enable the viewer to skip ahead in playback without experiencing a substantial interruption or delay in playback.

Claims (67)

1. A method of operation of a user device comprising:

receiving a stream of a media item from a streaming media source;

providing playback of the stream of the media item;

obtaining one or more look-ahead segments of the media item, wherein the one or more look-ahead segments are one or more segments of the media item that have not yet been streamed to the user device selected based on information that describes content of the one or more look-ahead segments and wherein the information is not indicative of a location of the one or more look-ahead segments in the media item; and

storing the one or more look-ahead segments in local storage of the user device;

wherein obtaining the one or more look-ahead segments of the media item comprises:

selecting the one or more look-ahead segments based on the information that describes the content of the one or more look-ahead segments; and

prefetching the one or more look-ahead segments from the streaming media source; and

wherein selecting the one or more look-ahead segments comprises selecting the one or more look-ahead segments from a plurality of segments of the media item that have not yet been streamed to the user device based on a comparison of information describing content of the plurality of segments of the media item and user preferences of a user of the user device.

2. The method of claim 1 wherein at least one look-ahead segment of the one or more look-ahead segments is a segment of the media item beyond that which is being streamed to the user device at a time the at least one look-ahead segment is obtained.

3. The method of claim 1 wherein at least one look-ahead segment of the one or more look-ahead segments is a segment of the media item prior to a current point in playback of the media item that has not yet been streamed to the user device at a time at which the at least one look-ahead segment is obtained.

4. The method of claim 1 further comprising:

receiving user input from the user of the user device instructing the user device to skip to a look-ahead segment of the one or more look-ahead segments during playback of the stream of the media item;

providing playback of the look-ahead segment from the local storage;

requesting a stream of the media item starting at a point corresponding to an end of the look-ahead segment stored in the local storage;

receiving the stream of the media item starting at the point corresponding to the end of the look-ahead segment stored in the local storage from the streaming media source while providing playback of the look-ahead segment from the local storage such that the stream of the media item starting at the point corresponding to the end of the look-ahead segment stored in the local storage is buffered while providing playback of the look-ahead segment from the local storage; and

transitioning playback from the look-ahead segment to the stream of the media item starting at the point corresponding to the end of the look-ahead segment stored in the local storage once playback of the look-ahead segment from the local storage is complete.

5. The method of claim 1 wherein obtaining the one or more look-ahead segments of the media item further comprises adaptively updating the one or more segments selected as the one or more look-ahead segments.

6. The method of claim 1 wherein obtaining the one or more look-ahead segments of the media item further comprises adaptively updating the one or more segments selected as the one or more look-ahead segments based on at least one user action taken by the user of the user device during playback of the stream of the media item.

7. The method of claim 6 wherein the at least one user action is one of a group consisting of: skipping over a segment of the stream of the media item during playback, skipping to a segment of the stream of the media item during playback, repeating playback of a segment of the stream of the media item during playback, and fast-forwarding through a segment of the stream of the media item during playback.

8. A method of operation of a user device comprising:

receiving a stream of a media item from a streaming media source;

providing playback of the stream of the media item;

obtaining one or more look-ahead segments of the media item, wherein the one or more look-ahead segments are one or more segments of the media item that have not yet been streamed to the user device selected based on information that describes content of the one or more look-ahead segments and wherein the information is not indicative of a location of the one or more look-ahead segments in the media item; and

storing the one or more look-ahead segments in local storage of the user device;

wherein obtaining the one or more look-ahead segments of the media item comprises:

selecting the one or more look-ahead segments based on the information that describes the content of the one or more look-ahead segments; and

prefetching the one or more look-ahead segments from the streaming media source: and

wherein selecting the one or more look-ahead segments comprises selecting the one or more look-ahead segments based on the information that describes the content of the one or more look-ahead segments and a profile of a user of the user device obtained from a social networking service.

9. The method of claim 1 further comprising prioritizing the one or more look-ahead segments to assign a priority to each of the one or more look-ahead segments.

10. The method of claim 9 wherein prefetching the one or more look-ahead segments comprises, for each look-ahead segment:

allocating an amount of an available bandwidth to the look-ahead segment based on a priority assigned to the look-ahead segment; and prefetching the look-ahead segment from the streaming media source using the amount of available bandwidth allocated to the look-ahead segment.

11. The method of claim 1 wherein prefetching the one or more look-ahead segments comprises, for each look-ahead segment from the one or more look-ahead segments, prefetching a complete version of the look-ahead segment from the streaming media source.

12. The method of claim 1 wherein prefetching the one or more look-ahead segments comprises, for each look-ahead segment from the one or more look-ahead segments, prefetching a portion of the look-ahead segment from the streaming media source.

13. The method of claim 1 wherein prefetching the one or more look-ahead segments comprises, for each look-ahead segment from the one or more look-ahead segments, prefetching a version of the look-ahead segment from the streaming media source having a quality essentially equal to that of the stream of the media item received by the user device.

14. The method of claim 1 wherein prefetching the one or more look-ahead segments comprises, for each look-ahead segment from the one or more look-ahead segments, prefetching a low-quality version of the look-ahead segment from the streaming media source.

15. The method of claim 1 wherein prefetching the one or more look-ahead segments comprises, for each look-ahead segment from the one or more look-ahead segments:

selecting one of a plurality of versions of the look-ahead segment based on a priority assigned to the look-ahead segment, each of the plurality of versions of the look-ahead segment being a different quality version of the look-ahead segment; and

prefetching the one of the plurality of versions of the look-ahead segment from the streaming media source.

16. The method of claim 15 wherein selecting the one of the plurality of versions of the look-ahead segment comprises selecting the one of the plurality of versions of the look-ahead segment based on the priority assigned to the look-ahead segment and a bandwidth requirement for delivering each of the plurality of versions of the look-ahead segment.

17. A user device comprising:

a local storage;

a communication interface communicatively coupling the user device to a streaming media source via a network; and

a control system associated with the communication interface and adapted to:

receive a stream of a media item from the streaming media source;

provide playback of the stream of the media item;

obtain one or more look-ahead segments of the media item, wherein the one or more look-ahead segments are one or more segments of the media item that have not yet been streamed to the user device selected based on information that describes content of the one or more look-ahead segments and wherein the information is not indicative of a location of the one or more look-ahead segments in the media item; and

store the one or more look-ahead segments in the local storage of the user device;

wherein in order to obtain the one or more look-ahead segments of the media item, the control system is further adapted to:

select the one or more look-ahead segments based on the information that describes the content of the one or more look-ahead segments; and prefetch the one or more look-ahead segments from the streaming media source; and

wherein in order to select the one or more look-ahead segments, the control system is further adapted to select the one or more look-ahead segments from a plurality of segments of the media item that have not yet been streamed to the user device based on a comparison of information describing content of the plurality of segments of the media item and user preferences of a user of the user device.

18. A method of operation of a streaming media source comprising:

receiving a request for a media item from a user device via a network;

streaming the media item to the user device via the network;

selecting one or more segments of the media item as one or more look-ahead segments to push to the user device, wherein the one or more look-ahead segments are one or more segments of the media item that have not yet been streamed to the user device selected based on information that describes content of the one or more look-ahead segments and wherein the information is not indicative of a location of the one or more look-ahead segments in the media item; and

pushing the one or more look-ahead segments to the user device via the network;

wherein selecting the one or more look-ahead segments comprises selecting the one or more look-ahead segments from a plurality of segments of the media item that have not yet been streamed to the user device based on a comparison of information describing content of the plurality of segments of the media item and user preferences of a user of the user device.

19. The method of claim 18 wherein selecting the one or more segments of the media item as the one or more look-ahead segments further comprises adaptively updating the one or more segments selected as the one or more look-ahead segments based on user actions taken by the user of the user device during playback of the stream of the media item.

20. A streaming media source comprising:

one or more storage devices:

a communication interface communicatively coupling the streaming media source to a user device via a network; and

a control system associated with the communication interface and the one or more storage devices and adapted to:

receive a request for a media item from the user device; stream the media item to the user device from the one or more storage devices;

select one or more segments of the media item as one or more look-ahead segments to push to the user device, wherein the one or more look-ahead segments are one or more segments of the media item that have not yet been streamed to the user device selected based on information that describes content of the one or more look-ahead segments and wherein the information is not indicative of a location of the one or more look-ahead segments in the media item; and

push the one or more look-ahead segments to the user device;

wherein in order to select the one or more look-ahead segments, the control system is further adapted to select the one or more look-ahead segments from a plurality of segments of the media item that have not yet been streamed to the user device based on a comparison of information describing content of the plurality of segments of the media item and user preferences of a user of the user device.

21. The streaming media source of claim 20 wherein the control system is further adapted to adaptively update the one or more segments selected as the one or more look-ahead segments based on user actions taken by the user of the user device during playback of the stream of the media item.

Assignments (13)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2021
From: CRIA, INC.
To: STRIPE, INC.
Reel/Frame 057044/0753 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2019
From: IP3 2017, SERIES 200 OF ALLIED SECURITY TRUST I
To: CRIA, INC.
Reel/Frame 048418/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 28, 2018
From: PORTO TECHNOLOGY LLC
To: IP3 2017, SERIES 200 OF ALLIED SECURITY TRUST I
Reel/Frame 045468/0056 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CONCERT DEBT, LLC
To: CONCERT TECHNOLOGY CORPORATION
Reel/Frame 044591/0775 →
RELEASE OF SECURITY INTEREST Recorded Jan 11, 2018
From: CONCERT DEBT, LLC
To: PORTO TECHNOLOGY, LLC
Reel/Frame 044591/0920 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2017
From: CONCERT DEBT, LLC
To: PORTO TECHNOLOGY, LLC
Reel/Frame 044391/0393 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2017
From: CONCERT DEBT, LLC
To: CONCERT TECHNOLOGY CORPORATION
Reel/Frame 044391/0438 →
SECURITY INTEREST Recorded Sep 1, 2015
From: CONCERT TECHNOLOGY CORPORATION
To: CONCERT DEBT, LLC
Reel/Frame 036515/0471 →
SECURITY INTEREST Recorded Sep 1, 2015
From: CONCERT TECHNOLOGY CORPORATION
To: CONCERT DEBT, LLC
Reel/Frame 036515/0495 →
SECURITY INTEREST Recorded Aug 26, 2015
From: PORTO TECHNOLOGY, LLC
To: CONCERT DEBT, LLC
Reel/Frame 036472/0461 →
SECURITY INTEREST Recorded Aug 24, 2015
From: PORTO TECHNOLOGY, LLC
To: CONCERT DEBT, LLC
Reel/Frame 036432/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2009
From: CONCERT TECHNOLOGY CORPORATION
To: PORTO TECHNOLOGY, LLC
Reel/Frame 022434/0607 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2008
From: KANDEKAR, KUNAL; WALSH, RICHARD J.; ISSA, ALFREDO C.; KATPELLY, RAVI REDDY
To: CONCERT TECHNOLOGY CORPORATION
Reel/Frame 020991/0019 →