#ELI5
It’s really two computers communicating with each other. Say, “server” and “client”.
The client requests a specific movie.
The server sends the client a stream of bytes that is the video/audio.
You press Pause, and the client sends a message to the server saying, “Hey, stop for a little bit please!”.
You press Fast Forward, and the client sends a message to the server saying “Hey, skip forward a little bit please”.
**There’s two ways this could be done.**
**FIRST WAY**
Every so often, while you’re watching, the client has to communicate to the server, “Hey, remember this is the spot I’m watching”.
So behind the scenes, there’s a constant “Hey server, I’m at 2 minutes 30 seconds. Hey server, now I’m at 2 minutes 45 seconds…” and so on.
Depending on how the client was designed, it could communicate that every second, or every minute, or every two minutes, or some other scheme. Maybe it only does it on Pause and Resume.
I’m sure different clients (Netflix, HBO, etc) do it differently.
Fewer communications means less bandwidth is used, which means the system can handle more people.
**SECOND WAY**
So the server is sending the client a stream of data, which is the audio and video.
But it’s not sending a byte at a time. Instead it’s sending **chunks**. “Here, have 2 megabytes. Here, have another 2 megabytes.”
Some systems are designed such that the SERVER remembers the last thing it sent you. “I just sent chunk #235, so I’ll remember that if he stops watching”.
The problem is, depending on the size of the chunks being sent, chunk #235 could be 2 full minutes of video!
So in that case, the server knows it sent chunk #235, but it doesn’t know how far into those 2 minutes you watched. So when it comes time to start back at a bookmark, it re-sends you chunk #235 and starts playing at the start of that chunk.
Latest Answers