IP Library Granted Patent US 11,706,469
Granted Patent B2
US 11,706,469 · App. 17/490,905 · Granted Jul 18, 2023

Systems and methods for streaming media content during unavailability of content server

Inventors: Srikanth Channapragada (Karnataka, IN); Ishan Bhadula (Uttarakhand, IN); Vivek Sehgal (Uttar Pradesh, IN); Greeshma Jagadha Phani Lakshmi Alapati (Andhra Pradesh, IN); Vikram Makam Gupta (Karnataka, IN); Reda Harb (Bellevue, WA)
Assignee: ROVI GUIDES, INC.
H04N21/2405H04L41/0893H04L67/1008H04L67/1017H04N21/2353H04N21/23103H04N21/2402H04N21/25833H04N21/64738H04N21/632
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 11,706,469
App. No.
17/490,905
Granted
Jul 18, 2023
Kind
B2
Abstract

Systems and methods are described herein for streaming during unavailability of a content server. Upon determining that there are conditions indicating buffering issues during delivery of a media asset, a server determines a first group of devices suitable for receiving the media asset from the server and sharing the media asset on a peer-to-peer network. Then, the server determines a second group of devices suitable for receiving the media asset on a peer-to-peer network from a first group device. The server then determines groupings within which to share and receive the media asset. Next, the server transmits instructions to the devices in the first group to maintain in buffer and share certain portions of the media asset with the second group devices within their grouping. Finally, the server updates information detailing the media asset portions the devices are maintaining in buffer and sharing.

Claims (44)

1. A method comprising:

storing, by a server, a media asset, wherein the media asset is available to be requested by a plurality of devices;

determining that there are conditions indicating buffering issues during delivery of the media asset to at least one of the plurality of devices requesting the media asset;

in response to determining that there are conditions indicating buffering issues during delivery of the media asset to the at least one of the plurality of devices requesting the media asset:

identifying a first group of devices suitable for both (a) receiving the media asset from the server, and (b) sharing the media asset on a network, wherein the first group of devices is a first subset of the plurality of devices;

identifying a second group of devices suitable for receiving the media asset on the network from at least one device of the first group, wherein the second group of devices is a second subset of the plurality of devices;

determining a plurality of clusters of devices, the clusters containing devices from the first group and the second group;

determining one or more load balancing algorithms appropriate for application to the clusters, wherein the one or more load balancing algorithms comprise a round robin algorithm configured to evenly distribute upload traffic from first group devices to second group devices within each cluster;

applying the one or more load balancing algorithms to determine groupings of devices within the clusters, each grouping comprising at least one device from the first group of devices and at least one device from the second group of devices; and

transmitting instructions to each respective device of the first group of devices to maintain, in a buffer of the respective device, certain portions of the media asset for sharing, on the network, with the devices of the second group of devices within a respective grouping to which the respective device belongs; and

updating, at the server, information comprising details of which portions of the media asset each device of the first group of devices is maintaining in a respective buffer of each device of the first group of devices for sharing.

2. The method of claim 1 , wherein the conditions indicating the buffering issues comprise one or more of edge server overload or network issues between devices and content delivery networks.

3. The method of claim 1 , wherein the identifying the first group of devices and the second group of devices is based on content delivery type and intrinsic metadata associated with each respective device of the plurality of devices.

4. The method of claim 3 , wherein the intrinsic metadata comprises device location, device power status, device type, processor utilization, device playback performance metrics, bit rate, network, or mobility.

5. The method of claim 1 , wherein the determining the plurality of clusters of devices is based on device progress within the media asset, device type, device location, and device ability to handle inbound and outbound traffic.

6. The method of claim 1 , wherein the one or more load balancing algorithms is a weighted round robin algorithm comprising:

assigning weights to the first group and second group devices based on one or more of device type, current device playback performance metrics, quality of stream a respective device can serve, or number of requests each first group device can serve; and

distributing upload traffic from first group devices to second group devices within each cluster based on the weights.

7. The method of claim 1 , further comprising:

determining, for each respective device of the first group of devices, based on (a) device progress within the media asset, (b) content delivery type, and (c) intrinsic metadata associated with each respective device of the first group of devices: (i) a buffer size to be maintained by the respective device, and (ii) the certain portions of the media asset the respective device should maintain in a buffer of the respective device for sharing; and

wherein transmitting instructions further comprises transmitting, to each device in the first group of devices, an instruction to maintain the determined buffer size for the respective device comprising the determined certain portions of the media asset for the respective device.

8. A system comprising:

storage circuitry of a server configured to:

store a media asset, wherein the media asset is available to be requested by a plurality of devices;

control circuitry configured to:

determine that there are conditions indicating buffering issues during delivery of the media asset to at least one of the plurality of devices requesting the media asset; and

in response to determining that there are conditions indicating buffering issues during delivery of the media asset to at least one of the plurality of devices requesting the media as set:

identify a first group of devices suitable for both (a) receiving the media asset from the server, and (b) sharing the media asset on a network, wherein the first group of devices is a first subset of the plurality of devices;

identify a second group of devices suitable for receiving the media asset on the network from at least one device of the first group, wherein the second group of devices is a second subset of the plurality of devices;

determine a plurality of clusters of devices, the clusters containing devices from the first group and the second group;

determine one or more load balancing algorithms appropriate for application to the clusters, wherein the one or more load balancing algorithms comprise a round robin algorithm configured to evenly distribute upload traffic from first group devices to second group devices within each cluster;

apply the one or more load balancing algorithms to determine groupings of devices within the clusters, each grouping comprising at least one device from the first group of devices and at least one device from the second group of devices; and

transmit instructions to each respective device of the first group of devices to maintain, in a buffer of the respective device, certain portions of the media asset for sharing, on the network, with the devices of the second group of devices within a respective grouping to which the respective device belongs; and

update, at the server, information comprising details of which portions of the media asset each device of the first group of devices is maintaining in a respective buffer of each device of the first group of devices for sharing.

9. The system of claim 8 , wherein the conditions indicating the buffering issues comprise one or more of edge server overload or network issues between devices and content delivery networks.

10. The system of claim 8 , wherein the control circuitry configured to determine the first group of devices and the second group of devices is further configured to do so based on content delivery type and intrinsic metadata associated with each respective device of the plurality of devices.

11. The system of claim 10 , wherein the intrinsic metadata comprises device location, device power status, device type, processor utilization, device playback performance metrics, bit rate, network, or mobility.

12. The system of claim 8 , wherein the control circuitry configured to determine the plurality of clusters of devices is further configured to do so based on device progress within the media asset, device type, device location, and device ability to handle inbound and outbound traffic.

13. The system of claim 8 , wherein the one or more load balancing algorithms is a weighted round robin algorithm comprising:

assigning weights to the first group and second group devices based on one or more of device type, current device playback performance metrics, quality of stream a respective device can serve, or number of requests each first group device can serve; and

distributing upload traffic from first group devices to second group devices within each cluster based on the weights.

14. The system of claim 8 , wherein:

the control circuitry is further configured to determine, for each respective device of the first group of devices, based on (a) device progress within the media asset, (b) content delivery type, and (c) intrinsic metadata associated with each respective device of the first group of devices: (i) a buffer size to be maintained by the respective device, and (ii) the certain portions of the media asset the respective device should maintain in a buffer of the respective device for sharing; and

the control circuitry configured to transmit instructions to each respective device of the first group of devices is further configured to transmit, to each device in the first group of devices, an instruction to maintain the determined buffer size for the respective device comprising the determined certain portions of the media asset for the respective device.

Assignments (3)
CHANGE OF NAME Recorded Oct 4, 2024
From: ROVI GUIDES, INC.
To: ADEIA GUIDES INC.
Reel/Frame 069113/0399 →
SECURITY INTEREST Recorded May 19, 2023
From: ADEIA GUIDES INC.; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063707/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 2, 2021
From: CHANNAPRAGADA, SRIKANTH; BHADULA, ISHAN; SEHGAL, VIVEK; ALAPATI, GREESHMA JAGADHA PHANI LAKSHMI; GUPTA, VIKRAM MAKAM; HARB, REDA
To: ROVI GUIDES, INC.
Reel/Frame 057992/0451 →
Continuity (1)
Related Publication 20230102888A1 · Mar 30, 2023
Cited By (1)
US 12,677,017