olive-editor / olive

Free open-source non-linear video editor
https://olivevideoeditor.org/
GNU General Public License v3.0
8.01k stars 543 forks source link

[NODES] Changing keyframe to bezier produces crazy value results. #2258

Open Avispa opened 1 year ago

Avispa commented 1 year ago

System

Commit Hash Olive 0.2.0-7fa69ea5 Platform Windows 10

Currently

Changing "one" (actually three -- scale/pos-x/pos-y) keyframe(s) from linear to bezier for a simple zoom results in crazy value changes and the resulting images wildly "jumping" arround. Changing keyframes back to linear resolves behaviour back to the slow (linear) zoom (and move).

How to reproduce

  1. Clip with two keyframes each for scale, pos-x, pos-y at the beginning and the end of the clip
  2. Set each some start and end value obviously ---- so far so good, should work fine ----
  3. Change second key frame for each value to bezier (maybe change handles -- at least I did)
  4. Enjoy crazyness

Addtion: Just realizing, it even flips the image in both directions. Maybe I should also mention that the end and start values/keyframes are correct. Image/values are just flipping and jumping around while progressing from the first to the second key frame.

Avispa commented 1 year ago

Since I'm not sure if somebody reads along via e-mail (and I assume post edits don't get re-send) I put this image for illustration in a second post.

So the actually difference in the curve editior I'm talking about is this:

curves

But result is this:

curves-result

(It's a stream and the coloured box in the top left corner is the streamer -- he should be bottom right corner -- and not upside-down ;) )

Just to be clear: only changing key frames back to linear resolves the issue but also the intended curve of course.

ThomasWilshaw commented 10 months ago

I can confirm this issue on Windows 10. It seems like the bezier curves are getting incorrectly applied.

ameuret commented 7 months ago

Similar issue seen on Linux today using 0.2.0-55eedbfc.

A little more details: on a two-keyframe curve (on X scale), all is fine when the left-hand keyframe is Bezier and the right-hand one is linear. However as soon as the right-hand one is made Bezier, the value blows up (from 57% to several hundreds % in my case).

The value gets correct again as soon as keyframe is set back to linear.