Shotcut tutorial · companion page
The release announcement. Shotcut 23.05.14 added a Motion Tracker filter that, on its own, does absolutely nothing. It watches a rectangle, writes a keyframe per frame, and then ten other filters can borrow that data — four different ways.
Reading in another language? Use the translate picker in the header, or your browser’s own translate command — the Shotcut filter, control and value names are marked to stay in English so they still match what is on your screen.
This is the announcement of Motion Tracker, not a recipe for one effect. It arrived in Shotcut 23.05.14 and it replaced nothing — before it, following a moving subject meant setting keyframes by hand, frame after frame. What the filter contributes is a list of positions. What you do with that list is a separate decision, made in one dropdown.
Add Motion Tracker, fit the green Region To Track rectangle to your subject, pick an algorithm and press Analyze. The work runs as a background job.
On its own the filter produces no picture at all. It stores a keyframe per frame describing where the region went, under a name — Tracker 1 if you do not supply one.
In this build: Corner Pin, Crop: Rectangle, GPS Text, Mask: Simple Shape, Size, Position & Rotate, Size & Position (GPU), Spot Remover, Text: Rich, Text: Simple and Timer.
Adjust decides everything: Relative Position rides alongside the subject, Offset Position moves against it, Absolute Position lands on it, Size And Position also takes its dimensions.
[ The motion tracker is not a standalone filter. On its own, it does nothing. The motion tracking filter needs to be paired with another applicable filter ]
Ben Espanto · 1:10
This video carries no chapter list of its own, so the sections below were worked out by reading the video’s frames end to end. Each stop is anchored to the exact second of the frame shown with it, which is why the timestamps land on ten-second marks. Click any screencap or timestamp to play that section from that second, right here in the card. Quotes are transcribed verbatim from the audio.
Every number below was read off the screen in the video. Nothing here is a recommended-sounding guess — if a value is not stated, it is because it was never shown.
Motion Tracker does not exist in earlier builds. Open Help → About Shotcut and confirm. This video was recorded on 23.05.14, the release that introduced the filter.
One clip, one video track. Both filters go on the same clip — nothing is stacked or duplicated.
Select the clip, open Filters, press + and search motion. The filter arrives with a small default region — Position 864, 486, Size 192 × 108 — and Show preview unchecked. Check it so the green rectangle appears, then drag and stretch it onto your subject.
Contain the subject fully but keep the margin tight. Background caught inside the box is what the tracker will drift onto.
Leave Algorithm on the default, CSRT: Channel and Spatial Reliability. The analysis runs as a job, not inside the filter panel. Here a 19-second clip took 00:01:26. When it finishes, the text beside the button changes from “Click “Analyze” to use this filter.” to “Analysis complete.” and Name fills itself in as Tracker 1.
Play it back with Show preview still on and watch the green box. This is the only point where a bad track is cheap to fix.
Five are offered: KCF, MIL, MEDIANFLOW, MOSSE and CSRT. Pick a different one and press Analyze again.
On the same clip, press + again and add any of the ten compatible filters. This video uses Text: Simple with the word Person. Set it up as you want it to look before you load anything — size, font, placement.
Press play at this point and nothing moves. The second filter has no idea the first one exists until you tell it.
The button sits at the foot of the consuming filter’s panel. The dialog it opens has four controls: pick your tracker by Motion tracker, pick a mode in Adjust, choose From start or Current position, then Apply.
After Apply there is no progress bar. The signal it worked is keyframes appearing in the Keyframes panel and the stopwatch beside Position lighting up.
Go back to Motion Tracker and turn the preview off. That green rectangle is not an editor-only overlay — leave it checked and it renders into the exported file. The export here uses the stock YouTube preset, From Timeline, Use hardware encoder checked.
To try a different Adjust mode, click the lit stopwatch, answer Yes to Confirm Removing Keyframes, and load again. The tracker analysis survives — only the keyframes it wrote into the second filter are cleared.
Read directly off the frames of the video. Where a value changed on screen, the path it took is shown separately below.
| Setting | Value | Where it lives |
|---|---|---|
| Shotcut version | 23.05.14 | Help → About Shotcut |
| Source clip | pexels-taryn-elliott-5442785-1920x1080-25fps.mp4 | Playlist, then Timeline |
| Clip duration | 00:00:19;22 | Player, Project tab |
| Track stack | V1 only, one clip, both filters on it | Timeline |
| Filter 1 | Motion Tracker | On the clip |
| Name | Left blank — filled in as Tracker 1 after Analyze | Motion Tracker |
| Region To Track, at Analyze | 61, 352 · 241 × 348 | Motion Tracker |
| Algorithm | CSRT: Channel and Spatial Reliability (default, unchanged) | Motion Tracker |
| Show preview | Unchecked by default · on while tuning · off before export | Motion Tracker |
| Preview colour | Green swatch beside the checkbox — box colour only | Motion Tracker |
| Analysis job | Analyze pexels-taryn-elliott-5442785-1920x1080-25fps.mp4 · 00:01:26 | Jobs panel |
| Filter 2 | Text: Simple | Same clip, receives the keyframes |
| Text | Person | Text: Simple |
| Font | Verdana Bold 36 · Use font size checked | Text: Simple |
| Outline / Background | Black, Thickness 0 · clear, Padding 0 | Text: Simple |
| Text box, before loading | 16, 216 · 336 × 183 · Center / Middle | Text: Simple |
| Load Keyframes from Motion Tracker | Motion tracker Tracker 1 · Adjust Relative Position · From start | Dialog, from Filter 2 |
| Keyframes written | Text: Simple → Position, one per frame, full 00:00:19;22 | Keyframes panel |
| Export | YouTube preset · From Timeline · Use hardware encoder checked | Export panel |
| Filter | Filter |
|---|---|
| Corner Pin | Size & Position (GPU) |
| Crop: Rectangle | Spot Remover |
| GPS Text | Text: Rich |
| Mask: Simple Shape | Text: Simple |
| Size, Position & Rotate | Timer |
Read off the full-screen list at 1:30. This is the set as of 23.05.14 and it is explicitly described in the video as expected to grow in later releases — check your own build’s filter panel rather than treating this as permanent.
| Mode | What it does on screen | Seen at |
|---|---|---|
| Relative Position | The filter holds its offset from the tracked region — the label rides alongside the subject, keeping the same station | 5:40 — 7:10 |
| Offset Position | The tracked movement is applied as a displacement from the filter’s own position — on screen it reads as the opposite direction | 7:30 — 7:50 |
| Absolute Position | The filter’s position is driven straight from the region’s centre — it lands on top of the subject | 8:00 — 8:40 |
| Size And Position | As above, plus the region’s dimensions — the filter’s box becomes the tracker’s box, frame for frame | 9:00 — 9:40 |
All four run on the same analysis. Switching modes means clearing the consuming filter’s keyframes with the stopwatch, answering Yes to Confirm Removing Keyframes, and loading again — the tracker itself is never re-analysed.
| Stage | Position | Size | Show preview | Seen at |
|---|---|---|---|---|
| Filter added, untouched | 864, 486 | 192 × 108 | unchecked | 3:00 |
| Preview on, box dragged left | 238, 382 | 192 × 108 | checked | 3:10 |
| Stretched tall | 111, 352 | 192 × 366 | checked | 3:20 |
| Fitted to the runner, Analyze pressed | 61, 352 | 241 × 348 | checked | 3:30 |
The region does not move again after this: at 4:10, with the analysis finished, the panel still reads 61, 352 · 241 × 348. Whatever the box is when you press Analyze is what got tracked.
| Stage | Position | Size | Seen at |
|---|---|---|---|
| Set up, before any keyframes | 16, 216 | 336 × 183 | 5:20 |
| Reloading for Offset Position | 16, 216 | 333 × 183 | 7:30 |
| Reloading for Absolute Position | 19, 246 | 330 × 132 | 8:00 |
| Reloading for Size And Position | 14, 454 | 330 × 132 | 9:00 |
These are the values the panel shows at the moment the dialog is reopened — the residue of the previous mode’s keyframes at the playhead, not settings that were typed. They are recorded here because they are on screen, not because they need reproducing.
Machine transcribed from the video audio. Spoken phrasing is left as-is; only the product and filter names Whisper mangled have been corrected. Every timestamp plays the video in the hero from that second.
In this tutorial, I want to demo one of the most amazing game-changing editions to Shotcut in recent years.
Shotcut finally has true motion tracking.
And I want to show you how it works, so stay tuned.
I'm just a normal person with no video editing background.
I wanted to start making YouTube videos and maybe cool transitions and effects.
I don't really plan on being a professional video editor,
so I was looking for a free, easy-to-learn video editing software.
Luckily, I stumbled on Shotcut, a free open-source video editing program that can do many of the tricks
you can do on more enterprise video editors like Adobe Premiere or DaVinci Resolve,
but with a much simpler and leaner interface, thus dramatically shortening the learning curve.
It just takes using your imagination.
So let's learn together.
This tutorial will be done on Shotcut version 23.05.14.
Make sure you have at least this version, or you won't see the motion tracking functionality.
One thing to note at the very beginning.
The motion tracker is not a standalone filter.
On its own, it does nothing.
The motion tracking filter needs to be paired with another applicable filter.
So far, as of Shotcut version 23.05.14, these are the following filters that work with motion tracking.
But let's assume more and more will be added in future versions.
The filters are corner pin, crop rectangle, GPS text, mask simple shape, size position and rotate,
size and position the GPU version, spot remover, text rich, text simple, and timer.
I'm not going to demo every single filter that works with motion tracking because it's going to take too long.
And basically functions behave the same way when paired with the motion tracking filter.
For this demo, I will show you motion tracking using the text simple filter.
But if you want to demo for one of the others, let me know which filter in the comments
and I will see if there's enough of a demand for that demo to happen.
I'm going to start with this running video I downloaded.
First, let's drag this video on the timeline.
Then I'm going to find a good frame that I'm going to capture.
So this should be a good spot.
Then I'm going to go to the filters tab and look for motion tracker.
Make sure you have the show preview check box check so you can gauge how well the tracking is doing.
You'll know the show preview is on because you're going to see a box with a green outline around it.
Eventually when you're ready to export, you're going to have to uncheck this.
For now, while the preview is on, I'm going to modify the box using the handles to encompass the subject I'm trying to track.
This should be good right here.
Next, I'm going to click the analyze button and wait until the analysis process finishes in the jobs window.
Once the job finishes, you can press play and see how well the green box follows your subject.
In this instance, it did a great job, but I'm not going to lie to you.
Sometimes it has trouble tracking the subject.
If that happens, go back to the filter and try one of the other algorithms in the dropdown window.
But because this one did a great job in tracking, I can move on to the next step.
At this point, all we did was captured a tracking for this subject.
What Shotcut did is record a keyframes of the movement of this subject.
Because the keyframes have been recorded, we can then share those keyframes and allow another filter to leverage it.
Note the name of the tracker it just created is called tracker one.
In this example, I'm going to add the simple text filter.
So while the video is selected, I'm going back to the filter tab and look for text simple.
Okay, I'm then going to add a text label, something like person.
So let me do that.
I'm just going to change the formatting a bit so that it makes sense.
Okay, I think I have the text where I want it to be.
But right now, if I press play, nothing happens.
The text stays static.
First, we need to click the load keyframes for motion tracker button.
Then a new window will pop up.
First, I'm going to reference which tracker it should use, which is the previously saved tracker one.
Then in the adjust window, I'm going to choose how I want the text filter to use the saved tracking.
For this example, I'm going to choose relative position.
But later on, we can check out what the other adjustments do as well afterwards.
Now I'm going to choose if I want it tracked from the very beginning or just from this current position in the video.
I'm going to choose from the start.
Then click the apply button.
It's going to take a few moments to export the keyframes from the motion tracker into the text simple keyframes.
Once it's done, you can see the keyframe button highlighted.
And when you go to the keyframe tab, you should see a bunch of new keyframes added.
Once you're happy with how the text is tracking the subject, go back to the motion tracker filter and uncheck the show preview box.
Otherwise, you're going to see that green box on your video after you export.
So let's give it a quick play.
I think it did a pretty good job.
Finally, let's export and see what the final results look like.
Pretty cool, right?
Earlier, I also promised to show what the other adjustment settings look like.
So let's first clear the keyframes by clicking the stopwatch icon.
Then let's click the load keyframes from motion tracker again.
But this time, instead of relative position, we're going to choose offset position, then click apply.
Let it process for a bit.
So this is what that setting does.
It looks like it does the opposite direction of what that previous settings did.
Now let's try another choice.
So once again, we're going to clear the keyframes by choosing that button.
And then we're going to load keyframes from motion tracker.
And then we've already chosen the first two.
So now we're going to choose absolute position.
Click apply.
Give it a second.
Okay.
Now it's ready to go.
Now let's see what it does.
It looks like it just matches the center of the green box.
Okay.
So that's what that does.
So once again, let's go ahead and go from the very beginning.
Let's go ahead and clear the keyframes.
And then let's load the motion tracker again.
And then this time, let's choose the very last one, which is size and position.
I'm going to click apply.
Let it process for a minute.
Okay.
Now it's done.
Let's see what it does.
Okay.
It's kind of similar to the previous one except the text box matches the green, the green
box, the tracker box.
And so that's pretty much it.
That is using motion tracker paired with the text simple filter.
If you have any additional questions, please just leave a comment below.
Otherwise, until next time, thank you for watching.
I just wanted to remind you that if you haven't yet, go visit my channel.
I'm sure you'll find tons of Shotcut related videos.
And don't forget to subscribe so that you know when I drop a new Shotcut related
tutorial.
Every video on my channel was done on Shotcut.
So aside from examples of what Shotcut can do, you can also visit my playlist
of tips and tutorials all geared toward the beginner.
Visit my Shotcut tips and tricks playlist and learn all the tips and tricks
I've learned during my journey toward video editing.
So once again, please subscribe and I'll see you next time.