Streaming Audio/Video Slow-down Performance Improvement


Audio and video players such as RealPlayer use read-ahead buffering on the client when streaming across networks to accommodate for temporary slow-downs or delays in network traffic. Most of them also use a form of pre-buffering, in which a certain amount of data is read before playback starts (or when the buffer runs out). Some - such as RealPlayer - will also dynamically alter the bitrate being requested, if network performance drops for a period of time. This noticeably affects the quality of the audio/video.

There is a possible complement to the bitrate method - if minor network delays are suspected, and the buffer is moderately full, slow down the audio or video by a small amount (perhaps 3-15%). This would be mostly unnoticeable, as it’s possible to dynamically ‘correct’ the pitch in real time, but would slow down the rate at which the buffer is emptying, and reduce the likelihood of skips or pauses whilst the buffer is pre-filled again. It would probably have to be combined with the bitrate method, as that would have a more drastic effect on the data rate.

I’m not aware of any player currently available that does this (WinDVD can slow down/speed up DVD playback, with pitch correction, but as far as I know, this only applies to ’local’ DVDs). I’d be interested to hear any thoughts on the theory or a possible implementation.