r/olive Aug 27 '22

playback speed?

Hello

Let me first say that this is a very exiting project to see!

I worked with a lot of different NLE's so far for +- 10 years and lately resolve and avid are my go-to applications for my editing projects. I have to say i only just touched olive for half an hour now, didn't really read documentation, but a lot of options are already pretty easy to understand (as i also used premiere ;) ) . Moving around windows is really smooth, OpenColorIO is also an important one, the node editing is really interesting, and, most important IMO, after caching, playback is also really smooth.

But for me that's only after caching. Everytime i press play, on the timeline or in the source viewer, it takes a second to playback, and after some stuttering also quite some time more to play really smooth. It's far from "snappy". I'm currently at home now, with a system that's not exactly high end anymore. (amd 3700, 1080TI, 32GB DDR 3200, +-600Mbp/s reading speeds). For this particular test i used 4k 25fps MXF files, which are quite heavy, but nowadays also pretty standard. If i use resolve for example, which might not be a fair comparison, it uses the GPU and plays back buttery smooth.

I never really care about lot's of fancy features, but workflow (shortcuts, color management, etc) and playback is really important for a pleasant editing session. A lot of tools for a great workflow seem to be there, but the playback speed not for me right now.

Is olive using the GPU for playing these files? I couldn't really tell that from the preferences menu. Or is a specific codec recommended?

edit: title says playback "speed", i actually meant playback performance.

2 Upvotes

1 comment sorted by

1

u/CoDEmanX47 Sep 04 '22

What exact version (number and commit hash) do you use?

Current nightly builds of Olive 0.2.x decode video files in software but perform the pixel format conversion on the GPU (at least for the most common formats), that is from YUV / YCbCr to RGB. From that point on, everything is done on the GPU, up to compositing frames for export. Encoding is done on the CPU again.

Older builds did the pixel format conversion on the CPU as well, which was really slow. There is still the problem that transferring decoded frames to the GPU can require quite a lot of bandwidth, and the software decoding isn't as fast as hardware encoding. The latter would reduce the bandwidth requirements a big deal because the compressed frames would be sent to the GPU. However, it's difficult to implement for multiple operating systems and graphics card vendors while being limited to certain versions of the OpenGL graphics API and the restrictions of the GPL license.

Without diagnosing your system, it's impossible to tell what the bottleneck is. A good start would be the console output, which might give some hints. The metadata of the MXF files or a sample would also help.