An apparatus for adaptive-rate content streaming, the apparatus comprising an end user station, comprising: an agent controller module to be coupled via a network controller to a set of one or more servers (102, 116) over a set of one or more TCP/IP network connections, wherein the set of servers (102, 116) stores a plurality of different copies (204, 206, 208) of a same single video each encoded at a different bit rate to provide different quality levels 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 of the video that starts at a unique start time and whose duration is less than the entire playback duration of the single video, and wherein each of the streamlets of each of the copies is encapsulated as an independent media object playable by the end user station, the agent controller module configured to make streamlet requests to receive streamlets storing sequential portions of the single video, where each streamlet request is for a particular quality level selected by the agent controller module by requesting the portion from a particular copy of the single video; the network controller configured to process said requests from the agent controller module for streamlets and to make HTTP requests to the set of servers (102, 116) over the set of network connections to obtain the streamlets, wherein the network controller is configured to make plural requests for streamlets simultaneously, wherein the agent controller module is further configured to monitor the progress of the streamlet requests by calculating a performance factor according to the receive times for the responses to the streamlet requests; based on said monitored progress, the agent controller module further configured to make successive determinations (611, 708, 710, 712, 714) to shift the playback quality to achieve continuous playback of the single video by requesting the streamlets of the highest quality one of the copies (204, 206, 208) determined sustainable at that time, wherein the determination comprises upshifting to a higher quality copy when the performance factor is greater than a trigger threshold and the estimated performance factor for the higher quality copy is greater than the trigger threshold; a staging module configured to arrange the requested streamlets sequentially in order of ascending playback time; and, a content player to playback the requested streamlets as staged by the staging module to playback the single video. an agent controller module to be coupled via a network controller to a set of one or more servers (102, 116) over a set of one or more TCP/IP network connections, wherein the set of servers (102, 116) stores a plurality of different copies (204, 206, 208) of a same single video each encoded at a different bit rate to provide different quality levels 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 of the video that starts at a unique start time and whose duration is less than the entire playback duration of the single video, and wherein each of the streamlets of each of the copies is encapsulated as an independent media object playable by the end user station, the agent controller module configured to make streamlet requests to receive streamlets storing sequential portions of the single video, where each streamlet request is for a particular quality level selected by the agent controller module by requesting the portion from a particular copy of the single video; the network controller configured to process said requests from the agent controller module for streamlets and to make HTTP requests to the set of servers (102, 116) over the set of network connections to obtain the streamlets, wherein the network controller is configured to make plural requests for streamlets simultaneously, wherein the agent controller module is further configured to monitor the progress of the streamlet requests by calculating a performance factor according to the receive times for the responses to the streamlet requests; based on said monitored progress, the agent controller module further configured to make successive determinations (611, 708, 710, 712, 714) to shift the playback quality to achieve continuous playback of the single video by requesting the streamlets of the highest quality one of the copies (204, 206, 208) determined sustainable at that time, wherein the determination comprises upshifting to a higher quality copy when the performance factor is greater than a trigger threshold and the estimated performance factor for the higher quality copy is greater than the trigger threshold; a staging module configured to arrange the requested streamlets sequentially in order of ascending playback time; and, a content player to playback the requested streamlets as staged by the staging module to playback the single video.