Client-side method for identifying an optimum server
First Claim
1. An apparatus, comprising:
- a processor;
a media player;
a program code module comprising code executable by the processor to carry out the following method steps;
receiving a list of a set of servers, wherein the set of servers is identified by a content delivery network (CDN) map generating process;
issuing a request to each of the set of servers and receiving a response to the request, and using data associated with the response from each of the set of servers to identify a given server in the set of servers;
as a media stream is being received from a first server and rendered by the media player, determining whether the media stream is acceptable according to a given metric;
if the media stream is not acceptable, and as the media stream continues to be received, taking a given action to initiate delivery of the media stream from the given server, wherein the given action includes the steps of;
(a) creating a buffer;
(b) receiving from the first server and caching in the buffer advanced portions of the media stream;
(c) issuing a request to the given server to initiate delivery of the media stream at a given offset; and
(d) rendering the advanced portions of the media stream;
receiving the media stream from the given server; and
when the given offset is reached, rendering in the media player the media stream received from the given server.
1 Assignment
0 Petitions
Accused Products
Abstract
A client player performs a query to a nameserver against a network map of Internet traffic conditions. The query is made asking for a particular service (e.g., RTSP) via a particular protocol (TCP) in a particular domain. In response, the nameserver returns a set of one or more tokens, with each token defining a machine or, in the preferred embodiment, a group of machines, from which the player should seek to obtain the stream. The player may then optionally perform one or more tests to determine which of a set of servers provides a best quality of service for the stream. That server is then used to retrieve the stream. Periodically, the client player code repeats the query during stream playback to determine whether there is a better source for the stream. If a better source exists, the player performs a switch to the better stream source “on the fly” if appropriate to maintain and/or enhance the quality of service. Preferably, the client player publishes data identifying why it selected a particular server, and such data may be used to augment the network map used for subsequent request routing determinations.
-
Citations
14 Claims
-
1. An apparatus, comprising:
-
a processor; a media player; a program code module comprising code executable by the processor to carry out the following method steps; receiving a list of a set of servers, wherein the set of servers is identified by a content delivery network (CDN) map generating process; issuing a request to each of the set of servers and receiving a response to the request, and using data associated with the response from each of the set of servers to identify a given server in the set of servers; as a media stream is being received from a first server and rendered by the media player, determining whether the media stream is acceptable according to a given metric; if the media stream is not acceptable, and as the media stream continues to be received, taking a given action to initiate delivery of the media stream from the given server, wherein the given action includes the steps of;
(a) creating a buffer;
(b) receiving from the first server and caching in the buffer advanced portions of the media stream;
(c) issuing a request to the given server to initiate delivery of the media stream at a given offset; and
(d) rendering the advanced portions of the media stream;receiving the media stream from the given server; and when the given offset is reached, rendering in the media player the media stream received from the given server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
Specification