Is this Possible with the Timer Filter?

Hi

Does anybody know if it’s possible to have the timer filter running during clips on a single track of clips with gaps between them? I want it to continue where it left off from clip to clip, so that it isn’t running where the gaps are but instead stops during the gaps in the track and resumes where it left off from the last clip?

I’ve got 50+ clips on the track and the only way I can see to do it would be to manually add a new timer filter for each individual clip and offset the timer each time. This is taking forever though and I plan to do this for lots of videos in the future.

Is there some kind of plugin available for Shotcut to do this?

Cheers.

@brian, I thought of something based on JSkillz’s question. Is it possible to add a button to the Offset parameter that would create the offset starting with the time that the playhead is at on a clip? How this would work is that pressing this supposed button would split the clip and automatically adjust the parameters on the Timer filter on both clips. On clip 1, the duration would be automatically set to wherever the playhead was and on clip 2, the offset would automatically be set to the frame the playhead was at. What do you think?

The ideal use case is having the Timer filter on a transparent clip and being able to stop and start that Timer filter like a stopwatch without having to manually enter the times in the duration and offset parameters for the newly split clips. You can then take clip 1 and extend it for as long as you want with that time frozen. Then you can move clip 2 and place it on wherever you want it to continue running.

I had a little trouble following your explanation, but I think it would not fulfill the request to pick up where it left off?

I think I would need to understand the use case a little better.

Where did the 50 clips come from? Are they random, unrelated clips? Or was there one contiguous clip that has been split into 50 pieces.

If the 50 clips came from the same source, I would recommend to open the source in Shotcut, apply the timer filter and save. Then, open that MLT file as s clip in Shotcut and snip it up into 50 pieces.

Would that work?

Picking up where it left off is actually the whole point of my suggestion. That’s why I described it as a stopwatch. :slightly_smiling_face:

So let’s say on a transparent clip there is the Timer filter with a set duration of 10 minutes. The user wants to at multiple separate points stop the timer and pick it back up again in the timeline. With my suggested button on the Timer filter, the feature would first split the clip wherever the playhead is and adjust the Duration and Offset parameters on the new clips.

When you split a clip it creates clip 1 (the clip on the left) and clip 2 (the clip on the right). My suggested button would have clip 1 set the duration according to wherever the playhead is. So let’s say on the Timer filter that was set to a Duration of 10 minutes, the playhead is at 2 minutes. After hitting my suggested button clip 1 would have the Duration reset at 2 minutes. Clip 2 would then have the Offset parameter set to 2 minutes and the Duration kept at 10 minutes.

It’s all one long clip from the same source which I want to cut up but only show the timer during certain clips whilst maintaining the other clips in the order they’re in, in the original file. So it’s basically a bunch of clips (with the timer filter running) interspersed with the rest of the clips (with no timer filter running), but the timed clips have to show the timer picking up the time from where the last timed clip left off.

This might actually be a work-around. I could cut up the clips I want timed, export that file then add a timer filter to that long file, then export the parts between into one file then go about cutting and adding in the non timer parts to the timer file. I think that’d work if there isn’t an easier way. Thanks for helping on this.

This is the basis of my suggestion. EXCEPT: do not export the intermediate file. Just open the Shotcut project file back up in Shotcut as a clip.

@brian, did you understand my last post?

I think I understand the workflow you are suggesting. Each time the user splits the “transparent clip with timer”, she would have to move the new “transparent clip with timer” to the right to align with the clip being timed (on another track).

The mechanics of implementing that workflow would be a little tricky because the underlying framework filters do not know when the clip they are attached to is being split. But I will keep mulling it over because sometimes there is a simple, but non-obvious, solution to a difficult problem.

Let me make this visual then to make it crystal clear. :slightly_smiling_face:

I have the Timer filter on a transparent clip. I want the Timer filter to have a duration of 10 minutes.

But at 5 minutes into the clip I want to stop the Timer and restart it later on in the timeline. So I would press this button (highlighted in red):

This button executes several actions at one time:

  1. It splits the clip with the Timer filter.

  2. It takes the split clip on the left and resets the duration to the current position of the playhead. In this case, 5 minutes:

  3. It takes the split clip on the right and keeps the duration of the original whole clip which in this case is 10 minutes. Additionally, it sets the Offset to pick up the Timer where the previous clip left off. In this case, 5 minutes:

So then the user can take the split clip on the right and reposition it anywhere on the timeline to pick up the time it was stopped at. It also allows the user, if they want, to take the split clip on the left and extend it so that the stopped time would stay on screen before restarting the Timer again with the second clip.

Thanks for the visualizations. I understand your suggestion. I agree that your suggestion would make the workflow easier for this case. There are two difficulties that I see:

  1. Having a filter function split a clip in the timeline is not consistent with the UI paradigm.
  2. The button would have no purpose when the filter is applied to a source clip or a playlist item

I would really like someone to explore my suggestion (MLT file as a clip) with the same depth of consideration. I think it would turn out to be a smooth workflow.

I’m not sure if that means it’s not possible to program or that there is an aim for there to be uniformity in the behavior of the features found in the filters (i.e. not creating split clips in the timeline).

I thought about this too and a couple of solutions came to me. The simplest one would just to not have it do anything when the clip is in the source player and only have it do something when the clip is in the timeline. The other option would be to actually have the 2nd clip created and added to the playlist.

I had considered the open MLT file as a clip as a solution to the original question and it is a solution but currently there are some limitations with it. I understand that the open MLT file is sort of Shotcut’s current approximation of nesting. But since this form of nesting is based on mlt project files and not done within the same project that means a second instance of Shotcut would have to be opened, the clip created there and then the mlt project file created. After that you bring it into the main project. So there is a bit of slowness there to the workflow. Also, you can’t do everything you can to a clip to a mlt file opened as a clip such as changing the speed of a clip. Another thing is if I wanted to stop the timer at some point and keep it at the stopped time on screen for some duration then restarting it later on like I explained above, I wouldn’t be able to really do that by opening the MLT file as a clip.

The primary reason I had thought of my suggestion for the Timer filter was just in case there were no plans to develop nesting any further. I imagine that if it will be developed further it won’t be done any time soon and that’s very understandable.

I am afraid that if I suggest something is “not possible” on this forum, I will be attacked.

When we add features that are not congruent with the software architecture, we create complicated code that is difficult to write, error prone, and difficult to maintain. I do not volunteer to write that code or maintain it - unless the value of the change is very high. In this case, I do not think the value of the suggested convenience outweighs the nights and weekends I might end up spending debugging unintended bugs caused by breaking the architectural paradigm.

I think that if we keep brainstorming, we can come up with a good compromise implementation that adds convenience without extra maintenance burden.

And who would attack you? :smile: I know nothing about coding much less know anything about Shotcut’s source code. I actually feel sometimes that I might be attacked for suggesting something that isn’t possible and me not realizing it.

So in my mind, since the actions in my suggestion were already actions that would be done manually I thought it could’ve been something relatively easy to program. But since you have the knowledge and see that would make the whole thing more complicated that’s understandable.

Is it possible to one day remove those limitations in Open MLT As Clip like not being able to change the speed or use an effect like Crop: Source?

I do not want to disparage your ideas. Your are using the right kind of thinking. I just hope we can brainstorm some more to find a solution that is more congruent with the software architecture.

That is a good insight. I will need to ponder that some more. I agree - there are currently some limitations to MLT as a clip that will not work for all use cases.