Patent ID: 8402156

Claim:
A system for adaptive-rate content streaming videos for playback on end user stations, the system comprising a set of one or more servers including, a storage device to store a plurality of different copies of a same single video each encoded at a different bit rate and each divided into a plurality of streamlets that collectively store data to playback the entire video but that individually store data to playback only a portion that starts at a unique time index and whose duration is less than the entire playback duration of the single video, wherein the time indexes of the streamlets are the same for the different copies such that the streamlets with the same time indexes from the different copies independently yield the same portions of the single video, and wherein each of the streamlets of each of the pluralities is a separate content file that is independently playable by the end user stations, and a web server, to be executed on the set of servers, wherein the web server is configured to: receive, for a set of one or more initial and sequential ones of the time indexes, at least one streamlet request over a set of one or more network connections from a requesting one of the end user stations to retrieve the separate content files storing the portions of the single video starting at the set of time indexes from one of the different copies; retrieve from the storage device the requested content files from the one copy; send the retrieved content files from the one copy to the requesting one of the end user stations over the set of network connections; receive, for each subsequent time index, at least one streamlet request over the set of network connections from the requesting one of the end user stations to retrieve the separate content files storing the portion of the single video starting at that time index from one of the different copies currently selected, wherein the requesting one of the end user stations selects the currently selected one of the different copies dependent upon ongoing determinations to shift the playback quality to a higher or lower quality one of the different copies, wherein the shifts in playback quality occur at the time indexes, and wherein the requesting end user station initiates the shifts in playback quality during streaming of the single video through requests for separate content files storing different playback qualities of the encoded streamlets for subsequent ones of the time indexes; retrieve from the storage device the requested content files from the currently selected one of the different copies; and send the retrieved content files from the currently selected one of the different copies to the requesting one of the end user stations over the set of network connections.