ADAPTIVE NETWORK CONTENT DELIVERY SYSTEM
First Claim
1. An apparatus for simultaneously distributing media across a network to a plurality of client systems, comprising:
- a media delivery request receiver that receives requests for media content from client systems;
a flow rate subsystem that calculates a maximum bandwidth and a target flow rate for each outbound media flow;
a delivery subsystem that, for each outbound media flow, delivers at least a portion of a requested media content to a client system;
a media delivery scheduling subsystem that determines when the delivery subsystem delivers at least a portion of a requested media content, the media delivery scheduling subsystem dynamically adjusts flow rate for each outbound media flow in order to meet the target flow rate for each outbound media flow, the media delivery scheduling subsystem instructs the media delivery request subsystem to refuse incoming media requests when the media delivery scheduling subsystem detects that target flow rates for media flows may not be achieved if additional media content requests are accepted.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus stores media content in a variety of storage devices, with at least a portion of the storage devices having different performance characteristics. The system can deliver media to a large number of clients while maintaining a high level of viewing experience for each client by automatically adapting the bit rate of a media being delivered to a client using the client'"'"'s last mile bit rate variation. The system provides clients with smooth viewing of video without buffering stops. The client does not need a custom video content player to communicate with the system.
-
Citations
36 Claims
-
1. An apparatus for simultaneously distributing media across a network to a plurality of client systems, comprising:
-
a media delivery request receiver that receives requests for media content from client systems; a flow rate subsystem that calculates a maximum bandwidth and a target flow rate for each outbound media flow; a delivery subsystem that, for each outbound media flow, delivers at least a portion of a requested media content to a client system; a media delivery scheduling subsystem that determines when the delivery subsystem delivers at least a portion of a requested media content, the media delivery scheduling subsystem dynamically adjusts flow rate for each outbound media flow in order to meet the target flow rate for each outbound media flow, the media delivery scheduling subsystem instructs the media delivery request subsystem to refuse incoming media requests when the media delivery scheduling subsystem detects that target flow rates for media flows may not be achieved if additional media content requests are accepted. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for simultaneously distributing media across a network to a plurality of client systems, comprising:
-
receiving requests for media content from client systems; calculating a maximum bandwidth and a target flow rate for each outbound media flow; delivering at least a portion of a requested media content to a client system for each outbound media flow; determining when the delivering step delivers at least a portion of a requested media content; dynamically adjusting flow rate for each outbound media flow in order to meet the target flow rate for each outbound media flow; refusing incoming media requests when upon detecting that target flow rates for media flows may not be achieved if additional media content requests are accepted. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-readable storage medium carrying one or more sequences of instructions for simultaneously distributing media across a network to a plurality of client systems, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
receiving requests for media content from client systems; calculating a maximum bandwidth and a target flow rate for each outbound media flow; delivering at least a portion of a requested media content to a client system for each outbound media flow; determining when the delivering step delivers at least a portion of a requested media content; dynamically adjusting flow rate for each outbound media flow in order to meet the target flow rate for each outbound media flow; refusing incoming media requests when upon detecting that target flow rates for media flows may not be achieved if additional media content requests are accepted. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. An apparatus for simultaneously distributing media across a network to a plurality of client systems, comprising:
-
a plurality of storage devices, at least a portion of the plurality of storage devices having differing performance characteristics; a media caching subsystem that stores at least a portion of a media content in a specific storage device based at least upon a performance characteristic of the specific storage device, the media caching subsystem orders the plurality of storage devices in a hierarchical fashion based on bandwidth of each storage device among the plurality of storage devices; a storage optimization subsystem that optimizes bandwidth from each storage device among the plurality of storage devices by dynamically relocating portions of media content stored on each storage device based on usage measurements of the storage device. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A method for simultaneously distributing media across a network to a plurality of client systems, comprising:
-
storing at least a portion of a media content in a specific storage device, among a plurality of storage devices with at least a portion of the plurality of storage devices having differing performance characteristics, based at least upon a performance characteristic of the specific storage device; ordering the plurality of storage devices in a hierarchical fashion based on bandwidth of each storage device among the plurality of storage devices; optimizing bandwidth from each storage device among the plurality of storage devices by dynamically relocating portions of media content stored on each storage device based on usage measurements of the storage device. - View Dependent Claims (28, 29, 30, 31)
-
-
32. A computer-readable storage medium carrying one or more sequences of instructions for simultaneously distributing media across a network to a plurality of client systems, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
storing at least a portion of a media content in a specific storage device, among a plurality of storage devices with at least a portion of the plurality of storage devices having differing performance characteristics, based at least upon a performance characteristic of the specific storage device; ordering the plurality of storage devices in a hierarchical fashion based on bandwidth of each storage device among the plurality of storage devices; optimizing bandwidth from each storage device among the plurality of storage devices by dynamically relocating portions of media content stored on each storage device based on usage measurements of the storage device. - View Dependent Claims (33, 34, 35, 36)
-
Specification