olive-editor/olive

[PLAYBACK] Footage Viewer and Sequence viewer stop playing or badly lag

RigacciOrg opened this issue · 4 comments

Commit Hash
1687a72

Platform
Debian GNU/Linux 11.7 Bullseye

Summary
When playing some footage into the Footage Viewer or into the Sequence Viewer the playback stops after some seconds; sometimes it resumes after a lag of several seconds, sometimes not.
I was able to mitigate the problem only into the Sequence Viewer, by setting the Playback Resolution to 1/3 and by enabling cache for all the clips into the timeline. In that case the problem is mitigated, but not solved 100%.
I work on 1080p videos, using a low end notebook 8 Gb RAM, Celeron N3350 CPU, but other video editors does not have that problem (e.g. Avidemux).

The problem seems to be that Olive Editor does not use the video hardware acceleration of the Intel i915 card; if I run the intel_gpu_top tool I see that the Video bar remains to zero during playback. It is like when using the mpv player: if I don't enable the --hwdec=auto option, the play is very stuttering, but if mpv uses the vaapi acceleration it can play 1080p full screen smoothly, using only 25% of GPU Video, 50% of GPU Render/3D, and 14% of CPU.

I see that the Olive Editor binary is not compiled against the libva.so library (Video Acceleration API for Linux), so what shuld be the software stack to use hardware acceleration?

Additional Information / Output

olive does not currently support hwaccelerated decoding for videos, you can enable cache which will decode the frames ahead of time for better preformance, if preformance is still too bad you can change the cache to 8bit int and the cache will be considerably easier to work with.

Thank you for the clarification. Trying to use Olive Editor despite the poor performance of the computer, it turned out that if I convert all the video files into low res (640x360, 400kbit), the program is quite usable. In that case it is best to disable any video cache in Olive Editor (from menu: Sequence => Clear Disk Cache, from timeline: Cache => Discard and Cache => Auto-Cache Off): with cache enabled the performance is worse!
In that contidtions both Footage Viewer and Sequence Viewer do not stuck on playback.
It seems to me that Olive Editor 0.2 does not have menu options to work with proxy files (if I understand well, caching in version 0.2 replaced proxy files of version 0.1). Is it feasible to manually prepare lowres proxy files, create the project with them and do the final rendering just replacing the low-res files with the hi-res ones? Maybe I have to manually tweak the project file saved in ovexml format?

A quick search suggests the i915 graphics card is from 2004 and hasn't had an official update since 2008. Olive takes advantage of a lot of modern technologies that unfortunately require a newish graphics card to work properly so I think this is a hardware issue rather than somethig that needs fixing in Olive.

R.e. replacing footage, if you right click on the clip in the media bin there is a replace footage option. Alternatively if you have a lot of footage to manage you could rename the folder all the proxies are in and that should trigger Olive missing media dialoge when you reopen it. If your proxies have the same name and folder layout as the original footage you should be able to point Olive to the original footage folder and it should all relink as you want.

I'm going ot close this issue but if you require more support on relinking clips please try the Discord server or the Github discussions page.

Thank you for the followup on my ticket!
After all I was able to use proxy files (reduced resolution) and link/relink the .ovexml file by a simple script shell.

My task was simple because all the clips that I imported into the project were at the same 1920x1080 resolution, so I just replaced the original video files with the proxies (created with ffmpeg, keeping the original timebase and framerate, changing only the video size) and then edited the .ovexml file replacing 1920x1080 with 640x480 in those lines:

  <width>1920</width>
  <height>1080</height>

Before the final rendering I replaced the proxy files with the original ones and made the reverse editing into the ovexml file. It worked!