This is a great question and actually has a simple answer. For optimal performance, both steps are equally necessary and have their respective purpose:
a) Sequencer: Generating Proxies
The first step is to generate proxies at one or more resolutions. In the sequencer, select the video strip in question and select the Proxy tab from the properties pane on the right hand side (View > Sidebar).
- If not by default, tick the box in front of Strip Proxy & Timecode to enable the sequencer to use any available proxy that may exist for this clip. This doesn't do anything other than tell the sequencer "hey, if there's a proxy on disk at the resolution requested and enabled below, please use it if any preview window asks for it!". At this stage no preview window is using any proxies yet, this strip has only been enabled to use any proxy on disk as soon as it finds one.
- Ignore the next two boxes (Custom Proxy > Directory and File), they're there to override the default location of proxies, which is the same folder the sequence is located in on disk, always set to
BL_proxy/images/<res>
, where res
is the resolution of the specific proxy. Blender offers to render at 25%, 50%, 75% and 100% respectively.
- The next four check-boxes enable the concrete version(s) of proxies to render as well as to use, if available. Select the resolution you wish to generate.
- Rendering the proxy: Just above, in Proxy Settings, click Rebuild Proxy and Timecode Indices. This will generate and save the proxies to disk. The Storage dropdown can be used to choose where proxies are to be saved.
This done, the proxy/all proxies have been generated and are activated for the sequence/clip. Note that you can untick the proxy check-boxes in the sequence's properties pane to disable the usage (or (re-)generation) of them temporarily - this will not delete the proxy sequence on disk. Any preview window set to using proxies (we'll get there) will resize the sequence/clip in realtime, which is CPU heavy and generally results in poor performance, hence the caching we're doing here.
Proxies have to be generated for each clip/sequence you want to speed-up playback of. Multiple can be selected at once to enable proxy generation & execute render on.
b) Preview Window: Enabling & Choosing the Proxy Resolution to Use
With our clip now being equipped with one or more generated proxies we can ask our preview window to use a specific one and it will do so if a proxy for the given resolution exists and is activated for the clip. Note that this setting is preview-window-specific, meaning we can have more than one preview-window with them using different proxies.
To ask a preview window to use a specific proxy, go to the the sidebar on the right hand side of it (view > sidebar) and in the View tab select the proxy resolution you would like to use from the Proxy Render Size dropdown and enable usage by ticking Use Proxies. This will tell the preview window to
a) not use the original resolution (clip/image sequence on disk) but render and the given resolution and
b) use the on-disk proxy if available (which we just generated above).
This should now result in much smoother scrubbing.
The order in which you perform the two steps is irrelevant. However, both are necessary to have (a) and use (b) a proxy for a given sequence.
I hope this helps and clarifies how proxies work in Blender!
NB: This is valid for Blender 4.1.1 - some details might be different or missing in later or earlier versions. Feel free to comment and I'll update.