I assumed that I could slow down my scroll up credits (on a transparent background image) by using the same procedure as slowing down a video. But it requires a different approach. As I’m interested in software design and I find ShotCut exceptionally good, my question is why didn’t they take the same intuitive approach? Is it a technical barrier?
Images have a set duration of time. Default is 4 seconds. You can always change the duration from the properties before it’s put on the timeline. Once an image is loaded on the timeline, it can be easily made to any length you need it to be. The use of keyframes to scroll up your image would be done with the Size, Position & Rotate filter with Keyframes.
You can also use Keyframes with both Text filters.
A color or transparent clip is a generator source, meaning an infinite source of video that’s generated programmatically rather than by seeking into a video file of finite length. Speeding up or slowing down programmatic video would need to be done by altering the parameters sent to the generator (as is the case with File > Open Other > Plasma).
The reasoning gets a little bit circular:
If a normal video clip is slowed down, its frames are duplicated (if needed) to fill the new length. But frame duplication is not desirable with a programmatic source, because it has the code to generate in-between frames mathematically without duplication, which makes for smoother slow-mo video. Because a generator source can produce infinite frames for infinite length, there is no “length” property that can change to simulate a speed ramp. The end of a generator clip doesn’t represent a fixed length; it simply says internally that frames from the generator will no longer be routed to the compositing pipeline.
There is a workaround. In the example of slowing down scrolling text using the Speed property:
Start a new project, add a transparent clip that’s several minutes long to handle a worst case scenario, and export it as QuickTime Animation to preserve the alpha channel.
Start a new project and bring in the transparent video clip from above. Trim it to a few seconds.
Add a text filter with the Scroll Up preset.
Go to the transparent video clip Properties panel and change the speed to 0.5x like a normal video (because it is an actual video file, albeit transparent).
Note the scrolling text also slowed down to half speed.
This workaround is unique to presets that define keyframes on “start” and “end” points, meaning they stretch to fit the length of the underlying clip. However, the same trick will not work with manually keyframed text movement, because manual keyframes are defined for specific frame timestamps which do not get translated or adjusted by the Speed ratio.
So the answer to your question happens on two levels. The first level is “how long is a clip” (finite or infinite) which determines whether a Speed ratio can be applied. The second level is how the timestamps of filter keyframes get mapped to the underlying clip. The options are start/middle/end dynamic, or manual timestamp static.
It’s theoretically possible that Shotcut could be modified to scale manual keyframe timestamps by the Speed ratio. But the rounding error introduced while someone adjusted the Speed ratio several times trying to find just the right amount would probably destroy all precision the author had in the original keyframes. It is best to set Speed first, then add keyframes.
Just to clarify, there is a much easier way to change the length or speed of a Scroll Up text clip than what I described above.
The “workaround” that I provided was academic, and meant only to illustrate the difference between a generator clip and a video clip (in regards to the Speed property). But attaching a text filter to a transparent video file is not necessary in actual practice.
Here is the much easier way to scroll text at varying speeds:
Drop a new transparent clip onto the timeline.
Add a Text: Rich filter and fill it with text.
Ideally, the transparent clip would have been set to the necessary length from the start. Then, simply choose the “Scroll Up” preset, and the speed is automatically calculated for the length of the clip.
If the scrolling speed needs to be modified, select the transparent clip and then select the Text: Rich filter on it, then go to the Keyframes panel. Move the left-side throbber to the left (faster) or to the right (slower) to change the speed of the scroll. The length of the clip can also be altered, and then the speed changed with the throbber to match the new length. See the picture below: