by seige » Jan 15th, '07, 18:55
Your computer does something called 'buffering' when downloading video. It loads the data over the internet into a buffer, which is in the memory of your machine, before playing it. Why?
What happens is this: say a file is 10Mb in size, and your connection is only capable at downloading at 1Mb per-minute. The result is that the file (video) will take 10Mb/1Mb minutes to arrive (10 minutes). Without streaming or buffering techniques means that you used to have to wait 10 minutes before you start watching, after the whole file had arrived.
If the video file is only 30 seconds long, that means it's going to take longer to download than it is to watch. i.e. you'll be sitting around 10 minutes to watch a 30 second clip.
However, with the new clever technologies—like high quality compression, broadband and streaming, the equations change.
Buffering and streaming let you receive the file and start playing it BEFORE it's fully arrived. So long as your connection is quick enough.
Typically, a movie is a smaller file size these days, but due to server load, traffic and the likes, it still can arrive slowly.
So, the computer loads ENOUGH of it in little chunks for you to be able to watch some whilst the rest is downloading. It does this by guestimating the length, download time, and speed.
Imagine a buffer as a big jug with a tiny hole in the bottom which leads to a receptacle. That's your buffer. The receptacle is your movie player.
Another jug containins 1 litre of water (the movie) and is poised above the jug with the hole.
Now, imagine water being poured from the top jug to the 'holey' jug at a constant rate... that's your internet connection and speed.
The water coming out of the little hole in the jug is the movie, and so long as the jug is always full, the movie comes out as a fluid and unbroken stream. However, if there's a break in the flow in and the jug gets empty, the stream coming out is interrupted.
As an analogy, that means that when the buffer is empty, there's no movie to play. So, the buffer is a kind of interruption prevention and holding bay for the movie as it's downloading.
Real-time streaming
So... ideally, if the water is poured IN to the jug at a rate which is exactly the same as the water running out of the hole in the bottom, then the buffer would theoretically always be empty, and you'd be watching the data in real-time. As the water pours in, it pours straight out again.
Read-ahead streaming
In some cases, the water going IN to the jug is going in faster than the hole in the bottom allows it to come out... i.e. you have a fast connection, and the buffer on your machine is filling up faster than it's being needed, meaning that the buffer is full enough to allow for the connection to stop a while or freeze, and the buffer will STILL have enough data for you to continue watching without a pause.
Stuttered playback, choppy streaming
Even with a fast connection and huge buffer, sometimes there's an interruption in the flow. Whether it's because you just got a big email, or there's a break in your wireless signal—whatever the cause, the 'flow' into the buffer stops.
Now, this is fine so long as the buffer is already full enough to let you continue watching... i.e. there's enough water in the buffer jug to let it trickle a while.
However, if nothing is going IN to the buffer, and it empties, the flow out of the buffer stops, and the movie stops. Until such a point that the buffer is full enough to continue.
Things which effect this:
Internet glitches
computer processor being busy
the site you're downloading from is busy
Any number of things. Mainly, make sure that you have the latest plugins for your video, and also make sure if there's any 'streaming' or 'buffering' settings match your configuration.
Generally, if you have a mega quick connection (4Mb or over), you can get away with a smaller buffer. If you have a slower connection, make the buffer a bit bigger.