IP Library Granted Patent US 9,413,806
Granted Patent B2
US 9,413,806 · App. 14/042,651 · Granted Aug 9, 2016

Adaptive bit rate proxy

Inventors: Yong Li (San Diego, CA); Xuemin Chen (Rancho Santa Fe, CA); Alexander Garland Macinnis (Los Altos, CA); Brian Francis Schoner (Fremont, CA)
Assignee: Broadcom Corporation
H04L67/02G06Q30/0242H04L65/601H04L65/602H04N21/2225H04N21/23439H04N21/2402H04N21/6125H04N21/8456H04L65/4084
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,413,806
App. No.
14/042,651
Granted
Aug 9, 2016
Kind
B2
Abstract

A device and method for providing an adaptive bit rate (ABR) proxy is disclosed. An ABR proxy determines an optimal data format to receive content segments for an audio/video (AV) content item from a source ABR server, and generates, based on that format and/or current network conditions, one or more local AV representations for providing content segments for the AV content item to locally connected devices. A local client device selects a local AV representation, and the ABR proxy provides the content segments for the AV content item to the local device in accordance with the selected local AV representation.

Claims (81)

1. A method for providing adaptive bit rate (ABR) streaming to local devices, comprising:

selecting, by an ABR proxy device, a first source audio/video (AV) representation from among a plurality of source AV representations, the plurality of source AV representations being advertised by an ABR server to the ABR proxy device;

receiving, by the ABR proxy device from the ABR server, a plurality of source content segments of an AV content item, the plurality of source content segments being associated with the first source AV representation, each of the plurality of source content segments comprising a different portion of the AV content item, and each source content segment of the plurality of source content segments being received by the ABR proxy device responsive to a respective request from the ABR proxy device to the ABR server;

advertising, by the ABR proxy device and based on the first source AV representation, local AV representations of the AV content item to one or more client devices;

receiving, by the ABR proxy device and from a local client device, a request for one or more local content segments according to a selected one of the local AV representations; and

providing, by the ABR proxy device, the one or more local content segments to the local client device according to the selected one of the local AV representations, each of the one or more local content segments comprising a corresponding source content segment of the plurality of source content segments or being transcoded from a corresponding source content segment of the plurality of source content segments.

2. The method of claim 1 , further comprising:

generating the one or more local content segments for transmission to the local client device, wherein the first source AV representation comprises a first data rate and the selected one of the local AV representations comprises a second data rate, the second data rate being different than the first data rate.

3. The method of claim 2 , wherein one of the local AV presentations is an equivalent of the first source AV representation.

4. The method of claim 2 , wherein the first source AV representation is selected based on one or more network conditions related to receiving the source content segments from the ABR server by the ABR proxy device.

5. The method of claim 1 , further comprising:

receiving one or more client Hypertext Transfer Protocol (HTTP) requests from the local client device, each client HTTP request being for a respective local content segment according to one of the local AV representations; and

for the one or more client HTTP requests, sending respective proxy HTTP requests to the ABR server for corresponding source content segments,

wherein the one or more local content segments are provided to the local client device according to the one or more client HTTP requests.

6. The method of claim 1 , wherein:

the plurality of source content segments is received from the ABR server according to a master playlist for the AV content item provided by the ABR server to the ABR proxy device; and

the one or more local content segments are provided to the local client device according to a local playlist, the local playlist being based on the master playlist and the local AV representations.

7. The method of claim 1 , further comprising:

detecting a change in one or more network conditions associated with receiving the plurality of source content segments from the ABR server by the ABR proxy device;

in response to detecting the change, selecting a second source AV representation from the plurality of source AV representations advertised by the ABR server to the ABR proxy device; and

receiving at least one source content segment from the ABR server according to the second source AV representation.

8. The method of claim 7 , further comprising:

updating the local AV representations based on the second source AV representation;

receiving a request from the local client device to receive one or more new local content segments according to an updated local AV representation; and

providing the one or more new local content segments to the local client device according to the updated local AV representation.

9. The method of claim 1 , further comprising:

determining a network interface of the local client device; and

determining the local AV representations based on the network interface.

10. The method of claim 1 , further comprising:

determining one or more network conditions associated with a network interface of the local client device; and

determining the local AV representations based on the one or more network conditions.

11. The method of claim 1 , wherein at least some of the plurality of source AV representations advertised by the ABR server are different from at least some of the local AV representations advertised by the ABR proxy device.

12. The method of claim 1 , further comprising:

determining a first set of network conditions between the ABR server and the ABR proxy device; and

determining a second set of network conditions between the ABR proxy device and the local client device,

wherein the selecting is based on the first and second sets of network conditions.

13. The method of claim 1 , further comprising:

receiving a source manifest file from the ABR server, the source manifest file comprising information associated with the plurality of source AV representations,

wherein the advertising comprises providing a local manifest file to the one or more client devices, the local manifest file being derived from the source manifest file.

14. The method of claim 1 , wherein the plurality of source AV representations comprises a plurality of AV representations associated with the AV content item, each of the plurality of AV representations comprises a respective plurality of source content segments of the AV content item, and each of the respective plurality of source content segments is associated with a respective portion of the AV content item.

15. The method of claim 14 , wherein the selecting the first source AV representation comprises selecting the first source AV representation from among the plurality of AV representations associated with the AV content item.

16. The method of claim 1 , wherein providing, by the ABR proxy device, the one or more local content segments to the local client device further comprises providing, by the ABR proxy device, the one or more local content segments to the local client device without forwarding the request from the local client device for the one or more local content segments to the ABR server.

17. The method of claim 1 , wherein each respective request from the ABR proxy device to the ABR server is independent of the request for one or more local content segments received by the ABR proxy device from the local client device.

18. A device for providing adaptive bit rate (ABR) streaming to local devices, the device configured to:

select a first source AV representation from a plurality of source audio/video (AV) representations advertised by an ABR server;

receive, from the ABR server, at least a portion of a source AV stream for an AV content item, the source AV stream comprising a plurality of source content segments associated with the first source AV representation, each of the plurality of source content segments being received from the ABR server responsive to each individual request therefor; and

advertise local AV representations of at least a portion of a local AV stream for the AV content item to one or more client devices, the local AV stream being based on the source AV stream, the at least the portion of the local AV stream comprising a plurality of local content segments each of which is a same duration as a corresponding source content segment of the plurality of source content segments.

19. The device of claim 18 , the device further being configured to:

receive, from a local client device, a request for one or more of the plurality of local content segments according to a selected one of the local AV representations;

transcode the corresponding one or more of the plurality of source content segments to generate the one or more of the plurality of local content segments; and

provide the one or more of the plurality of local content segments to the local client device according to the selected one of the local AV representations.

20. device of claim 19 , the device further being configured to:

receive the plurality of source content segments from the ABR server according to a master playlist for the AV content item provided by the ABR server; and

provide the one or more of the plurality of local content segments to the local client device according to a local playlist for the AV content item, the local playlist being based on the master playlist and the local AV representations.

21. The device of claim 20 , the device further being configured

receive one or more client Hypertext Transfer Protocol (HTTP) requests from the local client device, each client HTTP request being for a respective local content segment at one of the local AV representations;

for each received client HTTP request, send a proxy HTTP request to the ABR server for a corresponding one of the plurality of source content segments; and

receive the plurality of source content segments from the ABR server according to the proxy HTTP requests.

22. The device of claim 19 , the device further being configured to:

detect a change in one or more network conditions associated with receiving the plurality of source content segments from the ABR server;

select, in response to detecting the change in the one or more network conditions, a second source AV representation from the plurality of source AV representations advertised by the ABR server; and

receive at least one source content segment from the ABR server according to the second source AV representation.

23. The device of claim 22 , the device further being configured to:

update, based on the second source AV representation, the local AV representations;

receive a request from the local client device to receive a portion of the local AV stream according to a selected one of the updated local AV representations; and

provide a portion of the local AV stream to the local client device according to the selected one of the updated local AV representations.

24. The device of claim 19 , the device further being configured to:

determine a network interface of the local client device, wherein the local AV representations are generated based on the network interface.

25. The device of claim 19 , the device further being configured to:

determine one or more network conditions associated with a network interface of the local client device; and

determine the local AV representations based on the one or more network conditions associated with the network interface.

26. The device of claim 25 , the device further being configured to:

determine a change in the one or more network conditions associated with the network interface; and

updating the local AV representations based on the change in the one or more network conditions associated with the network interface.

27. A computer program product comprising instructions stored in a tangible computer-readable medium, the instructions comprising:

instructions to select a source audio/video (AV) representation advertised by an adaptive bit rate (ABR) server, the source AV representation being associated with an AV content item;

instructions to advertise local AV representations of the AV content item to one or more client devices

instructions to receive, from a local client device, a request for a portion of the AV content item according to a selected local AV representation;

instructions to receive a plurality of source content segments from the ABR server according to the selected source AV representation, the plurality of source content segments being associated with the portion of the AV content item, each source content segment of the plurality of source content segments being received responsive to a respective request transmitted to the ABR server;

instructions to generate one or more local content segments based on the plurality of source content segments; and

instructions to provide the one or more local content segments to the local client device according to the selected local AV representation, each of the one or more local content segments corresponding to a respective one of the plurality of source content segments.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 1, 2013
From: LI, YONG; CHEN, XUEMIN; MACINNIS, ALEXANDER GARLAND; SCHONER, BRIAN FRANCIS
To: BROADCOM CORPORATION
Reel/Frame 031323/0755 →
Continuity (2)
Provisional Application 61827510 · May 24, 2013
Related Publication 20140351385A1 · Nov 27, 2014