Data retrieval based on bandwidth cost and delay
First Claim
Patent Images
1. A method comprising:
- determining, by one or more processors of a client device, states of a plurality of servers associated with a media content provider, wherein the states of the plurality of the servers indicate availability of the plurality of servers to deliver a media asset to the client device;
determining, by the one or more processors of the client device, a subset of the plurality of servers available to deliver the media asset to the client device in view of the determined states;
determining, by the one or more processors of the client device, characteristics associated with the subset of the plurality of servers, wherein the characteristics comprise a cost to transmit the media asset to the client device from the subset of the plurality of servers through a plurality of service providers (SP) to the client device and throughput rates of the subset of the plurality of servers, wherein the cost is indicative of a fee charged to the media content provider by different SPs of the plurality of SPs based on bandwidth utilization by the subset of the plurality of servers, wherein the subset of the plurality of servers use the different SPs of the plurality of SPs to transmit the media asset;
estimating, by the one or more processors of the client device, a first bit rate at which the client device is to receive a first portion of the media asset, wherein the first bit rate is to provide for uninterrupted playback of the media asset, and wherein the first portion corresponds to data for a first playback time period of the media asset, wherein estimating the first bit rate comprises;
receiving metadata associated with the media asset, wherein the metadata comprises a starting timestamp, an ending timestamp, a starting byte offset, and an ending byte offset associated with the first portion of the media asset, andcomputing the first bit rate of the first portion based on the metadata; and
selecting, by the client device and based on the determined characteristics and the first bit rate, one or more servers from the subset of the plurality of servers to deliver the first portion of the media asset to the client device.
3 Assignments
0 Petitions
Accused Products
Abstract
The invention provides for a download agent executing on a computing device. The download agent determines the status of each of the source servers, and downloads from source servers that are in the available state. Additionally the download agent tracks characteristics of the source servers. The download agent determines the required bandwidth of portions of the media content stored on the source servers. Based on the characteristics of the source servers and the required bandwidth of the portions of the media content, the download agent determines how much media content should be downloaded from which source servers and at what time.
136 Citations
33 Claims
-
1. A method comprising:
-
determining, by one or more processors of a client device, states of a plurality of servers associated with a media content provider, wherein the states of the plurality of the servers indicate availability of the plurality of servers to deliver a media asset to the client device; determining, by the one or more processors of the client device, a subset of the plurality of servers available to deliver the media asset to the client device in view of the determined states; determining, by the one or more processors of the client device, characteristics associated with the subset of the plurality of servers, wherein the characteristics comprise a cost to transmit the media asset to the client device from the subset of the plurality of servers through a plurality of service providers (SP) to the client device and throughput rates of the subset of the plurality of servers, wherein the cost is indicative of a fee charged to the media content provider by different SPs of the plurality of SPs based on bandwidth utilization by the subset of the plurality of servers, wherein the subset of the plurality of servers use the different SPs of the plurality of SPs to transmit the media asset; estimating, by the one or more processors of the client device, a first bit rate at which the client device is to receive a first portion of the media asset, wherein the first bit rate is to provide for uninterrupted playback of the media asset, and wherein the first portion corresponds to data for a first playback time period of the media asset, wherein estimating the first bit rate comprises; receiving metadata associated with the media asset, wherein the metadata comprises a starting timestamp, an ending timestamp, a starting byte offset, and an ending byte offset associated with the first portion of the media asset, and computing the first bit rate of the first portion based on the metadata; and selecting, by the client device and based on the determined characteristics and the first bit rate, one or more servers from the subset of the plurality of servers to deliver the first portion of the media asset to the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A device comprising:
-
a memory; and one or more processors of a client device, coupled to the memory, to; determine states of a plurality of servers, wherein the states of the plurality of the servers associated with a media content provider indicate availability of the plurality of servers to deliver a media asset to the client device; determine a subset of the plurality of servers available to deliver the media asset the client device in view of the determined states; determine characteristics associated with the subset of the plurality of servers, wherein the characteristics comprise a cost to transmit the media asset to the client device from the subset of the plurality of servers through a plurality of service providers (SP) to the client device and a throughput rate of the subset of the plurality of servers, wherein the cost is indicative of a fee charged to the media content provider by different SPs of the plurality of SPs based on bandwidth utilization by the subset of the plurality of servers, wherein the subset of the plurality of servers use the different SPs of the plurality of SPs to transmit the media asset; estimate a first bit rate at which the client device is to receive a first portion of the media asset, wherein the first bit rate is to provide for uninterrupted playback of the media asset, and wherein the first portion corresponds to data for a first playback time period of the media asset, wherein to estimate the first bit rate, the one or more processors to; receive metadata associated with the media asset, wherein the metadata comprises a starting timestamp, an ending timestamp, a starting byte offset, and an ending byte offset associated with the first portion of the media asset, and compute the first bit rate of the first portion based on the metadata; and select based on the determined characteristics and the first bit rate, one or more servers from the subset of the plurality of servers to deliver the first portion of the media asset to the client device. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A non-transitory computer readable storage medium having instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:
-
determining, by the one or more processors of a client device, states of a plurality of servers associated with a media content provider, wherein the states of the plurality of the servers indicate availability of the plurality of servers to deliver a media asset to the client device; determining, by the one or more processors of the client device, a subset of the plurality of servers available to deliver the media asset the client device in view of the determined states; determining, by the one or more processors of the client device, characteristics associated with the subset of the plurality of servers, wherein the characteristics comprise a cost to transmit the media asset to the client device from the subset of the plurality of servers through a plurality of service providers (SP) to the client device and a throughput rate of the subset of the plurality of servers, wherein the cost is indicative of a fee charged to the media content provider by different SPs of the plurality of SPs based on bandwidth utilization by the subset of the plurality of servers, wherein the subset of the plurality of servers use the different SPs of the plurality of SPs to transmit the media asset; estimating, by the one or more processors of the client device, a first bit rate at which the client device is to receive a first portion of the media asset, wherein the first bit rate is to provide for uninterrupted playback of the media asset, and wherein the first portion corresponds to data for a first playback time period of the media asset, wherein estimating the first bit rate comprises; receiving metadata associated with the media asset, wherein the metadata comprises a starting timestamp, an ending timestamp, a starting byte offset, and an ending byte offset associated with the first portion of the media asset, and computing the first bit rate of the first portion based on the metadata; and selecting, by the client device and based on the determined characteristics and the first bit rate, one or more servers from the subset of the plurality of servers to deliver the first portion of the media asset to the client device. - View Dependent Claims (27, 28, 29)
-
-
30. A method comprising:
-
determining, by one or more processors of a client device, states of a plurality of servers associated with a media content provider, wherein the states of the plurality of the servers indicate availability of the plurality of servers to deliver a media asset to the client device; determining, by the one or more processors of the client device, a subset of the plurality of servers available to deliver the media asset to the client device in view of the determined states; determining, by the one or more processors of the client device, characteristics associated with the subset of the plurality of servers, wherein the characteristics comprise a cost to transmit the media asset to the client device from the subset of the plurality of servers through a plurality of service providers (SP) to the client device and throughput rates of the subset of the plurality of servers, wherein the cost is indicative of a fee charged to the media content provider by different SPs of the plurality of SPs based on bandwidth utilization by the subset of the plurality of servers, wherein the subset of the plurality of servers use the different SPs of the plurality of SPs to transmit the media asset; estimating, by the one or more processors of the client device, a first bit rate at which the client device is to receive a first portion of the media asset, wherein the first bit rate is to provide for uninterrupted playback of the media asset, and wherein the first portion corresponds to data for a first playback time period of the media asset, wherein estimating the first bit rate comprises; downloading header information for encoded frames of the first portion of the media asset prior to the encoded frames being received by the client device, wherein the header information indicates a starting timestamp, an ending timestamp, a starting byte offset, and an ending byte offset associated with the encoded frames, and computing the first bit rate of the first portion of the media asset based on the header information; and selecting, by the client device and based on the determined characteristics and the first bit rate, one or more servers from the subset of the plurality of servers to deliver the first portion of the media asset to the client device. - View Dependent Claims (31)
-
-
32. A device comprising:
-
a memory; and one or more processors of a client device, coupled to the memory, to; determine—
states of a plurality of servers, wherein the states of the plurality of the servers associated with a media content provider indicate availability of the plurality of servers to deliver a media asset to the client device;determine a subset of the plurality of servers available to deliver the media asset the client device in view of the determined states; determine—
characteristics associated with the subset of the plurality of servers, wherein the characteristics comprise a cost to transmit the media asset to the client device from the subset of the plurality of servers through a plurality of service providers (SP) to the client device and a throughput rate of the subset of the plurality of servers, wherein the cost is indicative of a fee charged to the media content provider by different SPs of the plurality of SPs based on bandwidth utilization by the subset of the plurality of servers, wherein the subset of the plurality of servers use the different SPs of the plurality of SPs to transmit the media asset;estimate a first bit rate at which the client device is to receive a first portion of the media asset, wherein the first bit rate is to provide for uninterrupted playback of the media asset, and wherein the first portion corresponds to data for a first playback time period of the media asset, wherein to estimate the first bit rate, the one or more processors to; download header information for encoded frames of the first portion of the media asset prior to the encoded frames being received by the client device, wherein the header information indicates a starting timestamp, an ending timestamp, a starting byte offset, and an ending byte offset associated with the encoded frames, and compute the first bit rate of the first portion of the media asset based on the header information; and select based on the determined characteristics and the first bit rate, one or more servers from the subset of the plurality of servers to deliver the first portion of the media asset to the client device. - View Dependent Claims (33)
-
Specification