Preview Scaling deserves more praise. An example project will make the differences between Proxy and Preview Scaling much easier to see. Assume that each project described below has one video clip on the timeline with one text filter attached to it.
Scenario 1: Nothing fancy
- Source video is 1080p (no proxy)
- Timeline video mode is 4K
- Preview Scaling is off
In this scenario, the video file is decoded at 1080p resolution, which is a fair amount of CPU effort. Then the video is scaled up to the timeline resolution, which is 4K. This is CPU-intensive. Then the text filter is applied at 4K, because the text X/Y coordinates are relative to the timeline resolution. If there are multiple tracks, they are composited at 4K. Lastly, the 4K finished frame is scaled down to whatever the size of the preview player’s window is in the Shotcut interface. So the simplified chain of events looks like this:
- 1080p decode (medium) →
- 4K upscale to timeline (slow) →
- 4K filter processing (slow) →
- 4K compositing (slow) →
- downsize to preview window (medium)
In this chain, items 2-4 are probably slower individually than decoding 1080p video, especially if multiple tracks with opacity are involved.
As we are about to see, Proxy speeds up file decoding whereas Preview Scaling speeds up frame processing. The higher the resolution, generally the more benefit Preview Scaling has over Proxy.
Scenario 2: Proxy
- Source video is 360p (proxy of 1080p source)
- Timeline video mode is 4K
- Preview Scaling is off
The chain becomes:
- 360p decode (fast) →
- 4K upscale to timeline (slow) →
- 4K filter processing (slow) →
- 4K compositing (slow) →
- downsize to preview window (medium)
Notice that only one link in the chain sped up.
Scenario 3: Preview Scaling
- Source video is 1080p (no proxy)
- Timeline video mode is 4K
- Preview Scaling is 360p
The chain becomes:
- 1080p decode (medium) →
- 360p downscale to Preview Scaling resolution (medium fast) →
- 360p filter processing (fast) →
- 360p compositing (fast) →
- probably upscale to preview window (fast)
Notice that four links in the chain sped up.
Also notice that a 360p frame has only 2.7% the number of pixels as a 4K frame.
As in, 97.3% of the CPU effort for frame processing has just been eliminated by using Preview Scaling.
At these resolutions, Preview Scaling reduces CPU usage far more than Proxy alone could do.
Scenario 4: Proxy + Preview Scaling
- Source video is 360p (proxy of 1080p source)
- Timeline video mode is 4K
- Preview Scaling is 360p
This is the golden banana. The chain becomes:
- 360p decode (fast) →
- No timeline scaling applied because the proxy and Preview Scaling resolutions match (instant) →
- 360p filter processing (fast) →
- 360p compositing (fast) →
- probably upscale to preview window (fast)
Some takeaway tips:
- Proxy and Preview Scaling work beautifully together when they are the same resolution. The benefits are squandered a bit if the resolutions do not match.
- From the menu, changing Settings > Interpolation to Bilinear can speed up the scale-to-preview-window step significantly. Bicubic and Lanczos look better but are much slower. Since resolution is already compromised by proxy, Bilinear usually doesn’t hurt the preview quality much more.
- The decoding step can be sped up by choosing different input file formats. As in, DNxHR will decode faster than H.265. So there is room to tweak things there, too.