This task is to keep track of performance-related topics which needs to be addressed in order to achieve pleasant video editing experience. If any of the topics needs any deeper consideration and discussion it is to become a sub-task of this one.
Flat assorted list of performance and memory-usage related topics:
- Seek in video files is rather slow, feels measurably (2x) slower compared to seek in VLC with the same video file.
- Proxy file generation is slower than realtime. Sometimes only time code (TC) is needed, so, probably, the solution is to allow generating TC without scaled-down video. Encoding of different resolution should be possible to do in separate threads.
- Color strip puts ever frame in cache. Simple to reproduce: crate new 4K project, add black color strip with the duration of entire 250 frames, playback. In theory, the final VSE frame cache should be able to re-use final strip frame.
- Image strip caches every frame. Similar to the color case: adding and stretching image to occupy multiple frames will lead to way higher memory usage. This makes memory usage way higher in projects like story board, where edit consists of handful of image strips, and every image is stretched to occupy a frame range.
- Image strips performs read-from-disk on every frame. Again, leads to worse performance for story-board like edit.
- Moving image and cached video strips while being under the playhead is very slow. In 2.79 VSE the strip cache was attempted to be re-used as much as possible. Image strips should not be doing re-reads at all, video strips should reuse frames which are already in the cache.
- Operate in preview resolution. Operating and caching on original 4K images just to make the result be 320x240px in preview is very wasteful. Operation and cache should use the preview resolution. This will lower memory usage for all types of projects, and will make VSE faster when a lot of effects are used.
For the caching related topics see T80278 as well.