Abstract
Methods and systems for providing a video stream from a server to a client over a network include a memory for storing a forward-encoded bit-stream and a reverse-encoded bit-stream for a video data. The forward-encoded bit-stream includes I-frames encoded without inter-frame dependencies and P-frames encoded depending on forward-direction preceding frames, and the reverse-encoded bit-stream includes I-frames and P-frames encoded depending on reverse-direction preceding frames. When the server receives a request with a video cassette recording (VCR) function from the client, the server reads out and transmits frames selectively from among the first, second, third, and fourth frames in accordance with the request. The server can select the closest I-frame to a requested frame in either bit-stream for a fast-mode play or a random-access play, and switch the bit-streams to use subsequent P-frames in a different direction than that of the closest I-frame.