GPU based video processing for the Video Sequencer
Editing 4K (and maybe even 60p) videos is still not much fun in blender. On my System (Ryzen 7 1800X, Radeon RX 560, Ubuntu 19.04) other video editors can achieve nearly realtime playback of such footage (e.g. UHD 10Bit DNxHR on shotcut). On Blender I have to use proxies, which currently also only support 8 bit video material. The main reason why other video editors are much faster than blender seems to be that these editors are doing video processing on the GPU, while blender is using the CPU. Wouldn't it make sense for blender doing the same and maybe just use GLSL für Video Effects?
Advantages should be:
- Much less copying beween main memory and video memory
- The GPU should be much more efficient in doing image processing than the CPU for standard effects.
- Possibly code sharing with other parts of blender such as the compositor
I think Blender did well on concentrating on its core functionionality for the 2.80 release, and the sequencer is not part of that. But maybe now is some time to also focus on features like the sequencer. I do know that my proposal would mean a lot of work, but in the current state, the sequencer is only of limited use. Recently added great features like caching do help a lot, but the core of the seqencer needs a rework to be future-proof, I think.
3 Comments
It's so slow because it's not multitheaded. Check this out if you want faster VSE rendering.
youtube.com/watch
* @tibbyninja * thanks, but I think this will only help for the final render. I think there is already some multithreading done for video effects. My proposal would also improve the general video playback speed within Blender significantly, because the GPU is optimized for such tasks and it reduces overhead of copying between main memory and graphics card memory, which is a big bottleneck especcially for high resolution material.
Having video playback speed improved is important for example in cases where you want to work without proxies, because you are already recording in an intermediate codec such as DNxHR or ProRes (which is quite common these days).
* @josef * absolutely.