In this paper, we investigate mechanisms in which proxy servers cooperate to provide users with low-latency and high-quality
video-streaming services. The proxy is capable of adapting incoming or cached video blocks at the user’s request by means
of transcoders and filters. On receiving a request from a user, the proxy checks its own cache. If an appropriate block is
not available, the proxy retrieves a block of a higher quality from the video server or a nearby proxy. The retrieved block
is cached, its quality is adjusted to that which was requested as necessary, and is then sent to the user. Each proxy communicates
with the others and takes the transfer delay and video quality into account in finding the appropriate block for retrieval.
We propose several caching mechanisms for the video-streaming system and evaluate their performance in terms of the required
buffer size, the play-back delay, and the video quality.