Blinking/flashing filter or adding cycles to keyframes - suggestion

One new filter idea come to my mind, which could be very useful and probably not very difficult to prepare. In particular this filter could be used together with Text:Simple filter together (but for sure not only).

Quite often we want to have in our videos blinking effect. For example text is visible for 1 sec, and next is not visible for 1 sec and the story repeats… For sure we could do this with Opacity filter and keyframes but it’s easy to be done if you have ex. 5 sec clip. However for long clips ex. 2 minutes, having 1/2 sec blinking effect is like nightmare (a lot of work to be done).

Personally I would think about the following parameters:
Blinking period - ex. 2 seconds for full cycle
Maximum opacity - ex. 100%
Minimum opacity - ex. 30%
Maximum opacity time - as percent of blinking period, ex. 25%
Minimum opacity time - as percent of blinking period, ex. 25%
Way of blinking - Linear, Smooth (not so much needed but welcome)

So for example when setting the parameters as above, we would have
0sec-0.5sec increasing opacity from 30% to 100%
0.5sec-1sec. opacity 100%
1sec-1.5sec decreasing opacity from 100% to 30%
1.5sec-2sec opacity 30%

Theoretically we could imagine more parameters, ex. if to start from maximum or minimum etc. but I have doubts if anyone would use them…

What do you think about this idea? Theoretically it could be though as more generic solution, which would mean adding cycles to keyframes mechanism and to make those cycles to be available with all filters, not only Opacity, but not sure if it is easy to be done…

In case of more generic mechanism for keyframes, I can imagine it in the following way: We are working with keyframes as it’s being done now but we have one additional “button/marker” called “end of cycle”. If we set this then the rest being after this “end of cycle marker” is deleted and the system works in the following way. It does everything from the beginning until “end of cycle marker” and when it reaches it, it… starts everything like from the beginning of keyframe. And it repeats everything so many times until end of clips is reached.

This can be a preset on Opacity. A preset can have key frames beyond the end of a clip. I mean it will have some limit like some number of minutes. Presets are text that can be easily edited. So, you create a short one, then do the rest of the work in a text editor. Presets can be shared and contributed into the project. I am suggesting this approach because there are only 2 part time developers who are very busy on bigger and more important things for quite a long time.

3 Likes

Thanks for this hint. I might to apply this. :grinning:

I never thought of that. Good idea! :+1:

An alternate method would be to create a preset with 3 or 4 cycles of the blinking effect. Then when you need to use the effect, apply the filter + the preset to a clip. Copy that clip and paste it as many times as you need on the track.

Take the example you mention above:

Time Action
0.0 sec to 0.5 sec Opacity increases from 30% to 100%
0.5 sec to 1.0 sec Opacity stays at 100%
1.0 sec to 1.5 sec Opacity decreases from 100% to 30%
1.5 sec to 2.0 sec Opacity stays at 30%

I used that example to create that pulse effect with the Opacity filter.
5Ygb0uUTan

I duplicated the cycle 4 times to make the pulse effect last 10 seconds.
shotcut_SauGh2bzm3

Then I saved as a custom Preset.

When you want to use that preset for a “X” amount of time in a project:

  • Drag the clip of the image (or else) you want to apply the pulse effect to in the Timeline.
  • Adjust the length of that clip to make it a little longer than the duration of the preset. In my case, the preset duration is 10 seconds, so I extend the image duration to about 12-13 seconds.
  • Add an Opacity filter and apply the preset.
  • In the Keyframes timeline, move the playhead to the position of the LAST keyframe.
  • Move the playhead again, ONE frame forward.
  • Split the clip at that position.
  • Select and delete the unneeded clip.
  • Select the remaining clip.
  • Click the Copy button.
  • Finally, click the Append button, as many times as needed.

If you’d like to use the Pulse preset I made, here it is:
Opacity Presets.zip (468 Bytes)

I made it on a 30fps project. Not sure if it will work well on projects of different frame rates.

After downloading the file, un-zip it and move the preset to:
C: > Users > Your user name > AppData > Local > Meltytech > Shotcut > presets > brightnessOpacity.
That’s on Windows.

If you use a different operating system, in Shotcut, go to
Settings > App Data Directory and click on Show.
Open the presets folder, then the brightnessOpacity folder and add the Pulse-01_30fps preset file in there.

Re-launch Shotcut.

In the ZIP file you will also find another preset I made called Flash-01_30fps. It makes a clip flash briefly every second.
flash

EDIT: For some reason I don’t see the image flash at regular intervals here on the forum. But it’s regular when I view the GIF on my computer.

I recently encountered the same situation, but solved it in a rather trivial way: I made a short clip with a one-time loop of this animation and just made several copies of this clip in a row. It seemed to me easier than making animation frames throughout the entire clip, especially if the blinking object should be in the frame for a long time.

image

1 Like