How Do I Make Motion Blur?

I am trying to make motion blur when there is a lot of movement in my clip but nothing on the internet show me how i can do it. Does anyone know how to do it?

Hi @eli, it’s been discussed a few times on this forum. There’s no automatic motion blur feature (yet?) (maybe?)… but forum member @sauron did a pretty good demo in this thread:

Two other threads worth reading: this one by @scellycraftyt :

…and this one maybe:

Scellycraft’s method is a good approximation to how a one version of a proper motion blur filter works:

Frame 1 = Frame 1 (F1)
Frame 2 = (F1+F2)/2
Frame 3 = ((F1+F2)/2 + F3)/2
Frame 4 = (((F1+F2)/2 + F3)/2 + F4)/2

i.e. new frame = 50% opacity of current frame plus 50% opacity of the calculated previous frame.


Now all the family visits are over I’ve finally got round to doing a (keyframeable) “Persistence” filter (or pseudo-motion blur) using the technique I outlined in the post above. It is available in a ZIP file, with full documentation, on my website at:

Here is an example of an original rally car video along with 3 levels of persistence (25%, 50% and 75%) - enjoy


Interesting. I found a bit of a bug though. Have two video clips with one on V1 and the other on V2. Add the Persistence filter on the clip that is on V2. When you try to close Shotcut it will hang.

I can’t reproduce your problem I’m afraid. I made several attempts with two clips on different tracks but it worked each time.

The persistent filter works pretty well.:+1:
Haven’t been able to reproduce the hang issue either.

It happens with me. For the record, I’m on Windows. Don’t know if that makes any difference.

Another issue I am having is that the keyframes don’t work. Only the drag handles for the Simple Keyframes seem to work but the trim handles don’t work as when you click to another filter and back again they are reset to the default positions and the advanced filters don’t show up when the keyframes button is pressed.

Although Persistence is not bad it is a bit abstract. Perhaps a better name for this effect is Trails. :stuck_out_tongue_winking_eye:

I think motion blur implies this combined with some directional blur as well. While CSS blur() does not support direction, maybe it will help and can be added as a parameter that multiplies with the level.

1 Like

Hope @Elusien won’t mind my mucking with his code… Fixed the advanced key frames issue. (4.8 KB)

Also added the filter to google drive.

1 Like

Hey, I just took at look at your code and see you are directly accessing pixels. So, CSS blur() would not work. I also realized it is might the same as FFmpeg tmix, which is available in MLT as avfilter.tmix. It will be much faster in C and also uses slices. tmix/avfilter is not, however, keyframeable.

Yeah, that seems to work now. The trim handles in Simple Keyframes being reset if the clip is clicked away or deselected and reselected is still a problem though.

By the way, @Elusien, the same two problems that are affecting this Persistence filter (i.e. the trim handles defaulting after clicking away and the advanced keyframes not appearing) also seem to be affecting the latest version of your Sniper filter.

The sniper scope version that I have has no key frame problems. (17.2 KB)

It’s also on google drive.

I’m not experiencing that issue.

Here is a demo that shows no advanced keyframes are showing up with the latest Sniper filter I got from both your google drive and Elusien’s page.

Here is a demo showing the trim handle reset problem with Persistance.

And here is a demo showing the same bug with Sniper. Also, note how after I first move the trim handle with the Sniper filter then move the playhead the values in the X and Y parameters are changed even though I don’t touch those.

I’m more than happy for you to fix any problems. Unfortunately, I got hold of a meta.qml file from an old version of a filter I have not made public and modified that for the “persistence” filter, forgetting that that one was wrong. I have now deleted it so it doesn’t happen again.

I may modify it to use a webgl shader and see how that affects the speed of the filter.

The trim handle bug affecting HTML based filters was brought up here.

Fixed the trim handle issue for Sniper scope and persistence. (4.8 KB) (17.2 KB)

The advanced key frame issue with sniper scope occurs when the filter is trimmed. The x and y positions are set to -100%. Workaround is to reset the x and y positions to default. Then the key frames will work.

Updated google drive.