In principle, a movie is just a series of images. So – in principle again – a movie is dealt with the same way as an image. With a few differences.
As the movie file itself is not an image, and such an image file is required for preview, the image is extracted into the Texture Cache folder (in PNG format). And, when the Run in Background Thread option checked, the EXR file is created at about that moment too instead of at render time.
Now, which frame is extracted at what moment? All frames of the entire movie at the start? No.
The respective image files are extracted when they are requested for. This might be in preview, when I loop through the animation. Or it might be at render time, when each and every frame is dealt with. And in case only the even or odd frames are requested for (when the movie frame numbers follow some formula, or just a limited amount of frames is rendered anyway as set in the Movie Settings tab (Increment \ Every Nth Frame) in Render Settings) then only those are extracted.
Using movies for texturing certainly will load the Texture Cache disk space. The good news is: the files don’t need (and don’t have) the large resolutions which are required for high end stills. In most cases a 640×480 size might do, and full HD (1980×1024) can be considered rare for texture input.
The bad news is: one needs a PNG as well as an EXR. That’s about 4.0MB for 640×480 or 16MB for full HD. But more relevant, I might need a lot of them. A 10 sec animation makes 300 frames, that’s 4.8Gb on full HD frames alone in my Texture Cache. So it might take a while to generate all those files, and I’d better be sure I’ve got the space available when I push the Render button.
Note that when I use the Render > Reload Textures menu, the entire Texture Cache will be cleared and reloaded. This will regenerate the EXR’s for all static images, but will only extract the PNG (and make the EXR) for the movie frame required for the Preview. All other frames will not be generated until requested for.