From what I understand, the first little bit of data on a DVD or videotape tells the player what the first frame looks like. For every frame after the first one, it just tells the player what’s different from the previous frame, because usually two consecutive frames are nearly identical, so this saves a lot of space on the disc.
If this is right, then how can I start in the middle of a scene? Wouldn’t the player see the frame I want to start at (let’s say it’s the 1,000th frame) and say, “Okay, so it’s the same as frame 999, except for the pixels indicated. But what’s 999 look like? Well, it’s just like frame 998, except…” and so on all the way back to frame 1? In other words, just to get one frame a few minutes into the movie, it would have to scan the thousands of frames leading up to it, which I imagine would be fairly time-consuming, even on a relatively fast player.
I suspect this is solved by periodically including data for an entire frame, but if this is right, how often do they put in a whole frame? At the beginning of a scene, or at some arbitrary interval, like every 10 seconds? Or, does the machine that encodes the DVD notice that two consecutive frames are very different, (i.e. when it switches to a different angle) and decide that it’s not worth it to use the normal method since nearly a whole frame is being encoded anyway?
Incidentally, is this also why “rewinding” is kinda choppy compared to “fast forwarding,” since it’s trying to calculate frames in the opposite way from how they intended it to be viewed?