A computer-readable storage medium comprising encoded computer-readable program instructions for use in conjunction with a programmable computer receiving audio and video data over a network for presentation to a user, which instructions cause the computer to compensate for congestion on the network that results in delayed arrival of the audio and video data, the video data being transmitted over the network at a requested video transmittal rate to a video buffer for storing a predefined amount of the video data and the audio data being presented to the user at an audio playback rate, wherein a predefined amount of the audio data is stored in an audio buffer, the program instructions defining steps to be performed by the programmable computer, the steps comprising:
- monitoring the audio and video buffers to determine when the amount of audio or video data in the buffers falls below the predefined amounts;
- reducing the requested video transmittal rate if the monitoring step determines that the amount of audio or video data in the buffers has fallen below the predefined amounts;
- and
- reducing the audio playback rate if the amount of audio data in the audio buffer is below the predefined amount of audio data after the step of reducing the requested video transmittal rate.