Any way to apply track filters before clip filters?

I have a bunch of clips with individual Text:simple comments written on them and I want to also apply the Fisheye filter to the entire track to convert all these 4x3 gopro clips to 16x9 linear.

Sadly I just realised after exporting that the Track filter is applied after the text is rendered on the video so the text is massively distorted (and out of screen). Is there any workaround besides copy pasting the fisheye filter to each 100+ clips in the track?

Basically the output looks like this now


but I need:

Why you don’t use the clock on another video track?
Why you do not use Gyroflow for preprocessing before cutting the video with Shotcut?

1 Like

This was a sample image. I do not need clock in my real project, it has different texts on different videos. There is not one single text on all track but multiple per-clip text filters.

There was no need for Gyroflow for this particular project, the in-camera stabilization was more than enough. I just shoot 4x3 for a greater FOV (in case I need to reframe up/down) and either use the very fast Crop:source (which sadly can’t be placed on tracks, so I can’t do this here) or use the Fisheye filter to correct about half of the original fisheye effect which stretches the video almost exactly to a 16x9 view with only cropping out corner stuff.

For your current project, there is no way to easily fix it.

For future projects, I would recommend that you put all the text on a separate track. On top of the video tracks.

This would indeed avoid the issue but it does take a lot of extra time so I don’t personally think it’s worth it. Previously I added the Fisheye filter at the begining on the (initially few) uncut clips (before it got cut down into 10x pieces) but the Fisheye transform seems to be massively inefficient or computationally intensive to the point that after also adding text it would only preview 5-10 frames per second during playback.

For the current project I think I’ll just let the clips be 4x3. Maybe I’ll try a quick find&replace to insert the filter manually in the .mlt but I can live with it like this.

Btw, I’d assume this transform would be way faster on the gpu, is there any chance there’s a fre0r version of this that runs on the gpu? I tried the regular filer + gpu effects but it’s just as slow as without gpu enabled.

There is no GPU acceleration for frei0r effects.

For filters that have high computation needs, you might consider changing your workflow. For example, you could start a new project, load all the clips, apply fisheye to all the clips, and then export the whole project to an intermediate file. Then, you can use the intermediate file in your actual editing project. It’s an extra step, but the editing experience can be so much more satisfying if everything is not bogged down.

Indeed, this would make it buttery smooth especially if using an actual intermediate file and not compressed x265 lol.

Meanwhile I started testing and got a find&replace working.
I was scared at first of all the consecutive filter ids and nice order of properties & filters inside chains, but apparently Shotcut/melt is not picky and works even without an ID attached. I just used notepad++ and searched for the <property name="meta.media.0.codec.height">1440</property> line replaced it with itself + the <filter> ...defish0r... </filter> for all occurences in the file. Luckily the height entry is above any other filter so it ends up on top thus not distorting any other filter below.

1 minute already exported and output looks exactly as I wanted.

Sounds like a great win!