Proxies, Thumbnails, Waveforms
Three artifacts are derived from every imported media, each by its own background worker in vv-app (one job at a time per worker). Whatever is already on disk is skipped, so reopening a project costs nothing.

Proxies
On long-GOP sources a scrub must decode from the previous keyframe for every frame and cannot keep up; in an all-intra proxy every frame is a keyframe.
| Quality | Max width | x264 CRF |
|---|---|---|
| Low | 640 px | 30 |
| Medium (default) | 960 px | 26 |
| High | 1920 px | 21 |
- H.264
veryfast, GOP 1, video only: preview audio always comes from the originals. - Off by default; one file per quality, so switching back does not regenerate.
- Preview only: export always reads the original sources.
- The cache is global, not next to the project: it serves every project using the same file, even before saving.
Thumbnails
One frame at min(1 s, duration/2), since the very first frame is often black from a fade-in. Converted to 96 px RGBA on the CPU (too small to justify the compositor) and kept in memory only, as egui textures keyed by content_hash.
Waveforms
Peaks for every audio stream in a single read of the file: 100 peaks per second, clamped to 100…200,000 (about 1.4 MB per hour). The file stores the duration of the audio track, not of the container, so the drawing does not slide against the sound when audio and video lengths differ. A versioned header lets the worker regenerate files written in an older format.
Proxies and waveforms are written to a temporary file and renamed, so a crash or cancellation never leaves a partial cache entry.
No comments to display
No comments to display