Scrubbing while dragging a keyframe of Speed: forward only filter

Hello everyone,
I’m using Shotcut to do some speed ramping,I really don’t know if there is a option to scrub while dragging a keyframe of the Speed: forward only filter. it will make my life easier to use the forward only filter beacuse it will tell me exactly what position the video will be at that specific keyframe while dragging it.
Thank you so much in advance for any help

Anyone can please let me know if there is a way to do so or if that option doesnt exist ?

Not that I know of. I made a quick test to integrate skimming (Shift+Alt) with dragging a keyframe, but it made the scrubbing feel very notchy and not frame precise, skips frames.

Thank you so much, @shotcut, for taking the time to conduct such a test. If you don’t mind, may I please have the version where you integrated that function? Regardless of how rough or unpolished it may be, it would make my life significantly easier. I create one-minute social media videos, which generally require around 80 keyframes. Such a function would increase my productivity by at least tenfold. I understand if this request is too much to ask, as you are already doing a tremendous amount for the community. However, please let me know your decision so that I can manage my expectations accordingly. Thank you again for your invaluable contribution.

It was something temporary in my working copy of the code and removed. I just restored it, and I figured out why it was not smooth: it was snapping to the playhead while moving creating a feedback loop. In this new version, I did not require skim keys regardless of any filter. If it seeks when you click a keyframe, then it should probably seek as well when you move the keyframe’s time position, right?

Here is the change you can try to make to your installed copy. This script code gets installed and interpreted at run-time. I do not know what OS you are on to suggest a more specific location such as share on Windows and Linux portable, Shotcut.app/Contents/Resources on macOS plus the path shown below.

--- src/qml/views/keyframes/Keyframe.qml
+++ src/qml/views/keyframes/Keyframe.qml
@@ -139,4 +139,6 @@ Rectangle {
             var newPosition = Math.round((keyX) / timeScale);
             var keyPosition = newPosition - (filter.in - producer.in);
+            if (keyPosition !== producer.position)
+                producer.position = keyPosition;
             // Snap to cursor
             if (settings.timelineSnap && keyX > cursorX - 10 && keyX < cursorX + 10 && cursorX > minDragX + parent.width / 2 && cursorX < maxDragX + parent.width / 2 && drag.axis != Drag.YAxis) {

Thank you so much Dan,
it worked perfectly and it’s smouth, I really appreciate it.
Thank you so much for your help and efforts.

I see that this scrub-while-dragging-a-keyframe feature was added in the nightly version on Github.

It’s quite useful I guess in cases like the one described in this thread. But currently there is no way (that I found) to disable it.
I often use the Playhead as a target when dragging keyframes. I move the Playhead to a specific point, then drag the keyframe until it snaps to the Playhead.

Any plans on adding a setting to turn the feature ON and OFF?

2 Likes

Ok good point. I’ll look into adding some control over that.

2 Likes

A Scrub button in the keyframes panel and an action in the menu.
Perfect. Thanks!
f61JFl2tZi

2 Likes