A complete redesign of the VSE proxy-system is needed

Unfortunately, the current VSE proxy system has evolved over the years into something which is confusing for the users, and have very poor performance, quality and operationality. This system needs a complete rethinking.

What should a proxy system be?
A proxy-system for video should be as simple as a toggle setting between using the source-material and optimized-for-performance-material. A one setting thing. The proxy files should either be rendered automatically at import or when switched on and no proxy files have been found. The proxy files should all be rendered to one fixed size(ex. 640 x relative to aspect) and the preview resolution should use this resolution for best performance.

This system should not be confused with the industry standard option to render high quality intermediate files with i-frames, no variable frame rate and frame rate conversion to match project fps, which internally will replace the source files and used throughout the process. Though the same code can service both systems from a user perspective proxies and intermediate files are two different things. Ex. a user may need to use proxy files of intermediate files for vfx heavy stuff. Typically proxies and/or intermediate files are rendered at import or when switched on later - depending on the settings, however most modern systems do not need to render those files at import because of optimized performance.

What is the current state of the VSE proxies?
It spreads over 3 different panels and a submenu in two editor areas, mixing settings for set-up(enable), preview, render, active vs. selected strips, file swapping combined with slow and quality damaging internal processing, and limiting the operationality to not work on ex. Scene and Meta strips.

In the first post here I try to describe what might be going on in the mind of a new user encountering the Blender VSE system for the first time:
https://devtalk.blender.org/t/design-proposal-proxy-use-in-the-video-sequence-editor/12065

Here an attempt to “fix” the proxy ui: https://developer.blender.org/D6077

And here, in an attempt to perserve, but clean up the current system, I share some thoughts of moving proxy file settings into System Preferences and limiting the proxy format to one: https://devtalk.blender.org/t/design-proposal-proxy-use-in-the-video-sequence-editor/12065/13

My additional attempts to adress and improve the current proxy system: https://developer.blender.org/search/query/mTjoiKv6GchY/#R

Including addressing the obnoxious additional scaling, when ex. selecting 25% you’ll get a file rendered at 25% of the source resolution, and on top of this you get an additional 25% downscaling of that file when previewing. https://developer.blender.org/T76726 Even Scene strips, with no proxy file gets a severe image degradation with the additional 25% downscaling, with absolutely no performance gain.

And here’s CGvirus’ attempt to do a turnkey solution for proxies(rendering to one resolution and one on/off button): https://blender.community/c/rightclickselect/0Nfbbc/

So, over the years I’ve been trying to analyse and come up with a way to set up the pieces in a better way without having to rethink it, but seriously, after spending so much time on it I no longer think there is any way around a complete redesign, and from a user perspective, that could be a simple one button thing:

Proxy

9 Likes

The current incomprehensible patchwork of elements attempting to improve the performance of the VSE:

CACHE:

image
image

PROXY - SELECTED STRIPS:

image
image

PROXY - ACTIVE STRIP:

image

SCENE SIZE:

image
image

PROXY PREVIEW SIDEBAR:

image

PREFETCH FRAMES:

image

PROXY PREVIEW MENU:

CACHE RAM:

image

DISK CACHE:

image

AUTOMATIC PROXY:

image