If you want to stabilize your video and remove camera shake, the `ffmpeg` tool offers a powerful solution. Thanks to the built-in `vidstabdetect` and `vidstabtransform` filters, you can achieve professional results without using complex video editors.
Preparing for work
Before you begin, make sure your `ffmpeg` supports the `vidstab` library. On Linux, you can check this with the command:
bash
ffmpeg -filters | grep vidstab
If the library is not installed, you can add it:
sudo apt install ffmpeg libvidstab-dev
Installation for macOS via brew:
brew install libvidstab
brew install ffmpeg
Now let’s move on to the process.
Step 1: Movement Analysis
First, you need to analyze the video motion and create a file with stabilization parameters.
ffmpeg -i input.mp4 -vf vidstabdetect=shakiness=10:accuracy=15 transfile=transforms.trf -f null -
Parameters:
shakiness: The level of video shaking (default 5, can be increased to 10 for more severe cases).
accuracy: Analysis accuracy (default 15).
transfile: The name of the file to save the movement parameters.
Step 2: Applying Stabilization
Now you can apply stabilization using the transformation file:
ffmpeg -i input.mp4 -vf vidstabtransform=input=transforms.trf:zoom=5 output.mp4
Parameters:
input: Points to the file with transformation parameters (created in the first step).
zoom: Zoom factor to remove black edges (e.g. 5 – automatically zooms in until artifacts are removed).