IP Library Granted Patent US 9,276,967
Granted Patent B2
US 9,276,967 · App. 13/559,835 · Granted Mar 1, 2016

System and method for determining optimal bandwidth for streaming to a client device in an adjustable bit rate video system

Inventors: Steven M. Casey (Littleton, CO); Felipe Castro (Erie, CO); Ronnie Dhaliwal (Aurora, CO); Hong Choi (Denver, CO)
Assignee: CenturyLink Intellectual Property LLC
H04L65/1069H04L12/5695H04L29/06027H04L47/10H04L47/22H04L65/60H04L65/80H04N21/2393H04N21/23439H04N21/2402H04N21/2662
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 9,276,967
App. No.
13/559,835
Granted
Mar 1, 2016
Kind
B2
Abstract

A system and method for selecting an initial bandwidth setting. A determination is made that a client is initiating a communication session. Network conditions for the client are determined. A bandwidth setting for the client is selected utilizing the network conditions and a previous bandwidth setting saved in a memory. The communication session for the client is initiated utilizing the bandwidth seating.

Claims (40)

1. A method for selecting an initial bandwidth setting, the method comprising:

determining a client is initiating a communication session to receive streaming content from a content source, wherein the streaming content is stored as a plurality of content segments and a manifest describing the plurality of content segments and their order, each of the plurality of content segments being available in a plurality of bit rate encodings;

determining an identifier for the client;

determining network conditions for the client;

selecting a bandwidth setting for the client utilizing the network conditions and a previous bandwidth setting saved in a memory;

initiating the communication session for the client utilizing the bandwidth setting: wherein initiating the communication session for the client comprises streaming a first content segment having a first bit rate encoding based on the bandwidth setting;

and updating the bandwidth setting to change a bit rate of the streaming content, based on buffer utilization at one or more devices in a network connection between the client and the content source, wherein changing a bit rate of the streaming content comprises streaming a second content segment of the content, the second content segment having a different bit rate encoding than the first content segment;

storing at least one of the updated bandwidth setting, the buffer utilization, and a bandwidth history in memory.

2. The method according to claim 1 , wherein the client is a video streaming application.

3. The method according to claim 1 , wherein the network conditions include a type of data connection being utilized by the client.

4. The method according to claim 1 , wherein the network conditions include determining a number of clients sharing a network connection with bandwidth limitations.

5. The method according to claim 1 , wherein the communication session is initiation of a video session.

6. The method according to claim 1 , further comprising: updating the memory with a bandwidth setting in response to determining the client is functional at the bandwidth setting.

7. The method according to claim 1 , further comprising: determining an identifier associated with the client to determine the previous bandwidth setting associated with the client.

8. The method according to claim 1 , wherein the identifier is a MAC address associated with the client.

9. The method according to claim 1 , further comprising: storing the bandwidth setting at a predefined interval.

10. A server for selecting a bandwidth setting, comprising:

a processor for executing a set of instructions; and a memory for storing the set of instructions, wherein the set of instructions are configured to:

determine a client is initiating a communication session to receive streaming content from a content source, wherein the streaming content is stored as a plurality of content segments and a manifest describing the plurality of content segments and their order, each of the plurality of content segments being available in a plurality of bit rate encodings;

determine an identifier associated with the client;

determine network conditions for the client;

select a bandwidth setting for the client utilizing the network conditions and the identifier associated with the client, wherein the identifier is associated with a previous bandwidth setting saved in a memory;

initiate the communication session for the client utilizing the bandwidth setting wherein initiating the communication session for the client comprises streaming a first content segment having a first bit rate encoding based on the bandwidth setting; and

update the bandwidth setting to change a bit rate of the streaming content, based on buffer utilization at one or more devices in a network connection between the client and the content source, wherein changing a bit rate of the streaming content comprises streaming a second content segment of the content, the second content segment having a different bit rate encoding than the first content segment;

store at least one of the updated bandwidth setting, the buffer utilization, and a bandwidth history in memory.

11. The server according to claim 10 , wherein the client is a video streaming application, and wherein the network conditions include a type of data connection being utilized by the client.

12. The server according to claim 10 , wherein the network conditions include determining a number of clients sharing a network connection with bandwidth limitations.

13. The server according to claim 10 , wherein the memory is a database accessed by the server to determine the previous bandwidth setting.

14. The server according to claim 10 , wherein the bandwidth setting is selected for each new communication session, and wherein the communication session includes at least video streaming.

15. The server according to claim 10 , wherein the server is the content source.

16. A system for retrieving a bandwidth setting, the system comprising:

a server configured to determine a client is initiating a communication session to receive streaming content from a content source, determine an identifier associated with the client, determine network conditions for the client, select a bandwidth setting for the client utilizing the identifier associated with the client, the network conditions for the client, and a previous bandwidth setting utilized by the client, initiate the communication session for the client utilizing the bandwidth setting, and update the bandwidth setting to change a bit rate of the streaming content based on buffer utilization at one or more devices in a network connection between the client and the content source; and

a database in communication with the server, the database is operable to store the updated bandwidth setting utilized by the client;

wherein the streaming content is stored as a plurality of content segments and a manifest describing the plurality of content segments and their order, each of the plurality of content segments being available in a plurality of bit rate encodings;

wherein initiating the communication session for the client comprises streaming a first content segment having a first bit rate encoding based on the bandwidth setting;

and wherein changing a bit rate of the streaming content comprises streaming a second content segment of the content, the second content segment having a different bit rate encoding than the first content segment.

17. The system according to claim 16 , wherein a plurality of bandwidth settings are stored in the database, and wherein the plurality of bandwidth settings are associated with each of a plurality of clients utilizing each of a plurality of identifiers for initiating communications sessions.

18. The system according to claim 16 , wherein the identifier is a MAC address.

19. The system according to claim 16 , wherein the network conditions include at least a number of clients sharing a network connection with bandwidth limitations and a type of connection utilized by the client.

20. The server according to claim 16 , wherein the server is the content source.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2012
From: CASEY, STEVEN M.; CASTRO, FELIPE; DHALIWAL, RONNIE; CHOI, HONG
To: CENTURYLINK INTELLECTUAL PROPERTY LLC
Reel/Frame 028655/0594 →
Continuity (1)
Related Publication 20140032781A1 · Jan 30, 2014