Stabilize Video Filter

shotcut
September 2, 2019

Stabilization reduces or eliminates unwanted camera shake, creating a smoother and more professional-looking video. This is particularly important for footage shot handheld, in motion, or in windy conditions. Without stabilization, shaky videos can be distracting, disorienting, and even cause dizziness for viewers.

The Shotcut filter uses the open source library GitHub - georgmartius/vid.stab: Video stabilization library

Here is how its UI looks initially

You must first analyze before the filter affects the video. Clicking Analyze creates an analysis job in Jobs. You will be prompted to save a .stab file, which stores the analysis data. You are not prompted to save a file when you have made a project folder because it automatically generates the file in the project folder. When the job completes successfully it looks something like this:

Notice it says “Analysis complete” next to the button and reports the file name.

Shotcut version 25.05 added a menu item File > Rerun Filter Analysis that creates a new analysis job for every Stabilize filter in the current project. This is useful if you did a lot of trimming or splitting clips after having done stabilization or if you change the Video Mode resolution or aspect ratio. Note that this also redoes analysis for Normalize: Two Pass audio filters.

Parameters

@jupiter wrote in Stabilization Settings, Descriptions, and Tendencies

After rendering a video project countless times with low & high settings of each scale, then closely studying the results, this is what I believe each setting does. The higher the setting, the more it does what is described.


By setting the Zoom out the maximum of -50% and the smoothness around 30, I was able to get a good perspective of how hard its working and what it’s doing. I suggest max shakiness, max accuracy, zoom around 0%, and adjust your smoothness for how much you want the video to be stabilized.

To compare the scale of Shakiness vs Accuracy, I rendered the same video 4 times with low and high settings for each (low-low, high-low, low-high, high-high) then made a single video with each version in its own video track and displaying them in the 4 corners using the Size and Position filter (like 4 Picture-in-Pictures). Then Render/Export the whole project to have them play smoothly side-by-side and analyze the movements frame-by-frame. I also took the same approach with Zoom and Smoothing to determine their effects and preferred settings.

In my very dynamic sports video with a GoPro on a selfie stick, the Stabilize feature helped tremendously, tho the algorithm still needs improvement. Big stabilization movements seem to correct in sets of 2 frames instead of every frame (or the average of many frames) across the sample, resulting in jitteriness. Lossy vs Lossless didn’t seem to correct this, nor did any combination of Stabilization settings.

Stabilize/Analyzing filter tendencies: