IP Library Granted Patent US 8,812,662
Granted Patent B2
US 8,812,662 · App. 13/341,838 · Granted Aug 19, 2014

Systems and methods for estimating available bandwidth and performing initial stream selection when streaming content

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,812,662
App. No.
13/341,838
Granted
Aug 19, 2014
Kind
B2
Abstract

Systems and methods for determining available bandwidth and performing initial stream selection when commencing adaptive bitrate streaming using Hypertext Transfer Protocol (HTTP) in accordance with embodiments of the invention are disclosed. One embodiment of the invention includes measuring network bandwidth using a playback device, determining an initial network bandwidth estimate using the network bandwidth measurements, selecting an initial stream from said plurality of streams of encoded media that are encoded at different maximum bitrates rates using the playback device based upon the maximum bitrates of the plurality of streams and the initial bandwidth estimate; and commencing streaming of encoded media by requesting portions of the encoded media from the initial streams using the playback device.

Claims (58)

1. A method of selecting an initial stream of encoded media from a plurality of streams of encoded media that are encoded at different maximum bitrates rates, the method comprising:

measuring network bandwidth using a playback device;

determining, prior to commencing streaming of encoded media, an initial network bandwidth estimate using the network bandwidth measurements, wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon at least one piece of information associated with the network bandwidth measurements selected from the group consisting of time of day, day of week, content distribution network, server, and maximum bitrate;

selecting an initial stream from said plurality of streams of encoded media that are encoded at different maximum bitrates rates using the playback device for commencing streaming of encoded media based upon the maximum bitrates of the plurality of streams and the initial network bandwidth estimate, where the initial stream is selected by initially allocating available bandwidth to streams which have no alternative and allocating the remaining bandwidth to the selection from the plurality of streams of encoded media that are encoded at different maximum bitrates; and

commencing streaming of encoded media by requesting portions of the encoded media from the streams which have no alternative and the selected initial stream using the playback device.

2. The method of claim 1 , wherein the playback device performs the initial network bandwidth estimate using the network bandwidth measurements.

3. The method of claim 1 , further comprising:

providing the network bandwidth measurements to a performance server;

wherein the performance server determines the initial network bandwidth estimate using the network bandwidth measurements.

4. The method of claim 1 , wherein measuring network bandwidth comprises requesting a block of data and measuring the time taken to download the data.

5. The method of claim 1 , wherein measuring network bandwidth comprises associating a timestamp with the network bandwidth measurement.

6. The method of claim 1 , wherein measuring network bandwidth comprises associating a content distribution network identifier with the network bandwidth measurement.

7. The method of claim 1 , wherein measuring network bandwidth comprises associating a server IP address with the network bandwidth measurement.

8. The method of claim 1 , wherein measuring network bandwidth comprises associating a server hostname with the network bandwidth measurement.

9. The method of claim 1 , wherein measuring bandwidth comprises associating a video maximum bitrate with the network bandwidth measurement.

10. The method of claim 1 , wherein determining an initial network bandwidth estimate using the network bandwidth measurements comprises determining an average network bandwidth using the network bandwidth measurements.

11. The method of claim 1 , wherein determining an initial network bandwidth estimate using the network bandwidth measurements further comprises determining the accuracy of the initial bandwidth estimate.

12. The method of claim 1 , wherein the initial stream is selected for use in the adaptive bitrate streaming of the encoded media.

13. The method of claim 1 , further comprising selecting a stream from each of a number of sets of streams of encoded media that are encoded at different maximum bitrates.

14. The method of claim 1 , wherein the user can instruct the playback device concerning allocation of bandwidth to at least one of the selections subject to the remaining available bandwidth.

15. A playback device configured to select an initial stream from a plurality of streams of encoded media that are encoded at different maximum bitrates, the playback device comprising:

a processor configured, via a client application, to request portions of files from a remote server;

wherein the client application further configures the processor to:

measure network bandwidth using a playback device;

obtain, prior to commencing streaming of encoded media, an initial network bandwidth estimate using the network bandwidth measurements, wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon at least one piece of information associated with the network bandwidth measurements selected from the group consisting of time of day, day of week, content distribution network, server and maximum bitrate;

select an initial stream from said plurality of streams of encoded media that are encoded at different maximum bitrates rates for commencing streaming of encoded media based upon the maximum bitrates of the plurality of streams and the initial network bandwidth estimate, where the initial stream is selected by initially allocating available bandwidth to streams which have no alternative and allocating the remaining bandwidth to the selection from the plurality of streams of encoded media that are encoded at different maximum bitrates; and

commence streaming of encoded media by requesting portions of the encoded media from the streams which have no alternative and the selected initial stream using the playback device.

16. The playback device of claim 15 , wherein the client application further configures the processor to measure network bandwidth by requesting a block of data and measuring the time taken to download the data.

17. The playback device of claim 15 , wherein the client application further configures the processor to associate a timestamp with the network bandwidth measurement.

18. The playback device of claim 15 , wherein the client application further configures the processor to associate a content distribution network identifier with the network bandwidth measurement.

19. The playback device of claim 15 , wherein the client application further configures the processor to associate a server IP address with the network bandwidth measurement.

20. The playback device of claim 15 , wherein the client application further configures the processor to associate a server host name with the network bandwidth measurement.

21. The playback device of claim 15 , wherein the client application further configures the processor to associate a video maximum bitrate with the network bandwidth measurement.

22. The playback device of claim 15 , wherein the client application further configures the processor to associate the playback device IP address with the network bandwidth measurement.

23. The playback device of claim 15 , wherein the client application further configures the processor to perform an initial network bandwidth estimate using the network bandwidth measurements.

24. The playback device of claim 23 , wherein the client application further configures the processor to determine an initial network bandwidth estimate using the network bandwidth measurements by determining an average network bandwidth using the network bandwidth measurements.

25. The playback device of claim 23 , wherein the client application further configures the processor to determine the accuracy of the initial network bandwidth estimate.

26. The playback device of claim 15 , wherein the client application further configures the processor to:

provide the network bandwidth measurements to a performance server; and

receive an initial network bandwidth estimate from the performance server.

27. The playback device of claim 15 , wherein the initial stream is selected for use in the adaptive bitrate streaming of the encoded media.

28. The playback device of claim 15 , wherein the client application further configures the processor to select a stream from each of a number of sets of streams of encoded media that are encoded at different maximum bitrates.

29. A non-transitory machine readable medium containing processor instructions, where execution of the instructions by a processor causes the processor to perform a process comprising:

measuring network bandwidth using a playback device;

obtaining, prior to commencing streaming of encoded media, an initial network bandwidth estimate using the network bandwidth measurements, wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon at least one piece of information associated with the network bandwidth measurements selected from the group consisting of time of day, day of week, content distribution network, server, and maximum bitrate;

selecting an initial stream from said plurality of streams of encoded media that are encoded at different maximum bitrates rates for commencing streaming of encoded media based upon the maximum bitrates of the plurality of streams and the initial network bandwidth estimate, where the initial stream is selected by initially allocating available bandwidth to streams which have no alternative and allocating the remaining bandwidth to the selection from the plurality of streams of encoded media that are encoded at different maximum bitrates; and

commencing streaming of encoded media by requesting portions of the encoded media from the streams which have no alternative and the selected initial stream using the playback device.

30. The non-transitory machine readable medium of claim 29 , where execution of the instructions by a processor causes the process to obtain an initial network bandwidth estimate by calculating an initial bandwidth estimate using the network bandwidth measurements.

31. The non-transitory machine readable medium of claim 29 , where execution of the instructions by a processor causes the process to obtain an initial network bandwidth estimate by:

transmitting the network bandwidth measurements to a server; and

receiving an initial network bandwidth estimate from the server.

32. The method of claim 1 , wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon the time of day.

33. The method of claim 1 , wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon the day of week.

34. The method of claim 1 , wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon the content distribution network.

35. The method of claim 1 , wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon the maximum bitrate.

36. The method of claim 1 , wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon the time of day and the content distribution network.

37. The playback device of claim 15 , wherein the client application further configures the processor to determine an initial network bandwidth estimate using the network bandwidth measurements by filtering the network bandwidth measurements based upon the time of day and the content distribution network.

38. The non-transitory machine readable medium of claim 29 , wherein the initial network bandwidth estimate is determined by filtering the network bandwidth measurements based upon the time of day and the content distribution network.

Assignments (4)
CHANGE OF PRINCIPAL PLACE OF BUSINESS Recorded Mar 5, 2019
From: DIVX, LLC
To: DIVX, LLC
Reel/Frame 050407/0104 →
CHANGE OF NAME Recorded Mar 5, 2018
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 045498/0560 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 13, 2018
From: SONIC IP, INC.; DIVX, LLC
To: DIVX CF HOLDINGS LLC
Reel/Frame 045310/0020 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2013
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 031713/0032 →