Multi-platform video delivery configuration
First Claim
1. A method executing within one or more computing devices for delivering an on demand video to a destination node, the on demand video divided into a plurality of chunks distributed across a plurality of nodes, the method comprising:
- receiving a request for an on demand video;
receiving a list of nodes that have chunks of the on demand video;
determining a cost associated with each node based on one or more parameters that determine how fast a chunk can be received from each node;
filtering a set of nodes associated with each chunk based on cost associated with each node;
retrieving information associated with parameters used for determining cost from one or more nodes and updating the parameters associated with each node;
determining a communication protocol to be used between each node and the destination node based on factors comprising updated information associated with each node;
determining a fetch window of chunks to be retrieved for presenting the on demand video continuously;
identifying a node for fetching a chunk in the fetch window based on a criteria comprising the total cost of fetching a subset of the plurality of chunks; and
sending a request to the identified node associated with the chunk for retrieving the chunk.
0 Assignments
0 Petitions
Accused Products
Abstract
A system and a method are disclosed for delivering a video to a destination device using multiple sources and multiple protocols. The video can be on demand or a live video. A video is divided into several chunks distributed across devices and servers in the network. A node is selected for delivering a video chunk based on criteria including the cost of delivery of the chunk from the node to the destination node. This also improves the throughput of the entire system. Different nodes can use different communication protocols for delivering chunks of videos. Portions of videos are forward-cached to a node before a request for the video is made by the node. Activities associated with a device are gathered to determine a profile for the device. The profile of the device is used to select videos to be forward-cached to the peer device.
192 Citations
23 Claims
-
1. A method executing within one or more computing devices for delivering an on demand video to a destination node, the on demand video divided into a plurality of chunks distributed across a plurality of nodes, the method comprising:
-
receiving a request for an on demand video; receiving a list of nodes that have chunks of the on demand video; determining a cost associated with each node based on one or more parameters that determine how fast a chunk can be received from each node; filtering a set of nodes associated with each chunk based on cost associated with each node; retrieving information associated with parameters used for determining cost from one or more nodes and updating the parameters associated with each node; determining a communication protocol to be used between each node and the destination node based on factors comprising updated information associated with each node; determining a fetch window of chunks to be retrieved for presenting the on demand video continuously; identifying a node for fetching a chunk in the fetch window based on a criteria comprising the total cost of fetching a subset of the plurality of chunks; and sending a request to the identified node associated with the chunk for retrieving the chunk. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method executing within one or more computing devices for delivering an on demand video to a destination node, the on demand video divided into a plurality of chunks distributed across a plurality of nodes, the method comprising:
-
receiving a request for an on demand video; receiving a list of nodes that have chunks of the on demand video; determining a cost associated with each node based on one or more parameters that determine how fast a chunk can be received from each node; identifying a node for fetching a chunk based on a criteria comprising the total cost of fetching a subset of the plurality of chunks; and sending a request to the identified node associated with the chunk for retrieving the chunk. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable storage medium storing computer-executable code for delivering an on demand video to a destination node, the on demand video divided into a plurality of chunks distributed across a plurality of nodes, wherein the code when executed by a processor performs the steps of:
-
receiving a request for an on demand video; receiving a list of nodes that have chunks of the on demand video; assigning a cost to each node based on one or more parameters that determine how fast a chunk can be received from each node; identifying a node for fetching a chunk based on a criteria comprising the total cost of fetching a subset of the plurality of chunks; and sending a request to the identified node associated with the chunk for retrieving the chunk. - View Dependent Claims (19, 20)
-
-
21. A computer-implemented system for delivering an on demand video to a destination node, the on demand video divided into a plurality of chunks distributed across a plurality of nodes, the system comprising:
-
a computer processor; and a non-transitory computer-readable storage medium storing computer-executable code, wherein the computer-executable code when executed by the processor performs the steps of; receiving a request for an on demand video; receiving a list of nodes that have chunks of the on demand video; assigning a cost to each node based on one or more parameters that determine how fast a chunk can be received from each node; identifying a node for fetching a chunk based on a criteria comprising the total cost of fetching a subset of the plurality of chunks; and sending a request to the identified node associated with the chunk for retrieving the chunk. - View Dependent Claims (22, 23)
-
Specification