** Step 1 **
Install ffmpeg with the vidstab plugin.
- OSX: Install via Homebrew -
brew install ffmpeg --with-libvidstab
- Linux: download binaries here (vidstab included)
- Windows: download binaries here (vidstab included)
** Step 2 **
Analyze any video and generate a so called transform file, which describes camera movements. The command below generates a transforms.trf
file
ffmpeg -i input.mp4 -vf vidstabdetect=shakiness=7 -f null -
Options:
- shakiness: Set the shakiness of input video or quickness of camera. It accepts an integer in the range 1-10, a value of 1 means little shakiness, a value of 10 means strong shakiness. Default value is 5.
** Step 3 **
Stabilize video
ffmpeg -i input.mp4 -vf vidstabtransform=smoothing=30:zoom=5:input="transforms.trf" stabilized.mp4
Options:
- smoothing: Default value is 10. For example, a number of 10 means that 21 frames are used (10 in the past and 10 in the future) to smoothen the motion in the video. A larger value leads to a smoother video, but limits the acceleration of the camera (pan/tilt movements).
- recommended value:
videoFPS / 2
- recommended value:
- zoom: Set percentage (%) to zoom into video. A positive value will result in a zoom-in effect, a negative value in a zoom-out effect. Default value is 0 (no zoom).
Read more in the vidstab documentation
Create side-by-side comparsion video:
ffmpeg -i original.mp4 -i stabilized.mp4 -filter_complex "[0:v:0]pad=iw*2:ih[bg]; [bg][1:v:0]overlay=w" sidebyside.mp4
@radpopl This is an anwser from Perplexity AI:
Please provide full command you want to run.
Filter order: The order of filters in the -vf string is important in FFmpeg. Some filters may have dependencies or require specific input formats. If the "curves" filter is not compatible with the output of the "vidstabtransform" filter, it could cause FFmpeg to fail. You may need to adjust the order of the filters or use additional filter options to ensure compatibility.
Syntax error: It's possible that there is a syntax error in the way you are specifying the "curves" filter in your command. Double-check the syntax and make sure you are using the correct options and values for the "curves" filter.
Unsupported combination: Certain combinations of filters may not be supported by FFmpeg. It's possible that the "vidstabtransform" and "curves" filters are not designed to work together in the way you are trying to use them. In this case, you may need to find an alternative approach or use separate commands to achieve the desired result.