video files aren’t stored as a stack of images/frames. instead, it stores compressed data (usually H.264 or HEVC) comprised of
keyframes: actual complete pictures of the video, stored every couple of seconds & do not depend on other frames to be reconstructed
p-frames and b-frames store the diff between nearby frames. the p stands for predicted frames and refer to frames that came before and b stands for bidirectional so can refer to both earlier and later frames
and then you can reconstruct each frame of the video by finding a nearby keyframe and applying the p-frame/b-frame diffs