vid.stab is a video stabliser for transcode and ffmpeg.

Strengths [Weaknesses]


Run a simple command in a shell, end up with stabilised video.


Commands are easily scripted; run batches overnight when nothing else is happening, or when you go to work. Run it on a server. Run it on a cluster.

Weaknesses [Strengths]


This is a fully automated stabilisation process. You don't get to open a window and see how the stabilisation will affect the video, or do manual overrides in the middle of a clip.


Install vid.stab from

The Slackermedia build of ffmpeg has vidstab enabled. Other builds of ffmpeg may not have this feature enabled, so if you used another ffmpeg build or built it yourself, you should double-check that it is active:

$ ffmpeg --version

Look in the output for the –enable-libvidstab flag. If it is set, then your installed version of ffmpeg can use vid.stab.


Vid.stab is a two-step process; first video must be analysed, and then it can be stabilised.

Fine adjustments probably need to be made depending on the severity of the shaking in the video. Read more about the different options on, and as always, practise makes perfect. Learn to identify the different “kinds” of shakes by stabilising as many clips as you can; take notes on the results, and try different techniques.

First, analyse a video file, using the filter vidstabdetect:

$ ffmpeg -i foo.mp4 -vf vidstabdetect=shakiness=10:accuracy=15:result="transforms.trf"

There is no video output from this command, but data about the video is written to the file transforms.trf.

Use this data to stabilise the video, applying a slight zoom so that the transforms around the edges of the screen are not visible:

$ ffmpeg -i foo.mp4 -vf vidstabtransform=zoom=5:input="mytransforms.trf" fooStabilized.mp4