Butterflow is a command-line tool that lets you make fluid slow motion and motion interpolated videos.
It works by rendering intermediate frames between existing frames using a
process called motion interpolation.
For example, given two existing frames, A
and B
, this program can generate
frames C.1
, C.2
...C.n
that are positioned between the two. In contrast
to other tools that can only blend or dupe frames, this program warps pixels
based on motion to generate new ones.
Butterflow uses these interpolated frames to increase a video's frame rate, which can give the perception of smoother motion and more fluid animation, an effect that most people know as the "soap opera effect".
This is a demonstration of Butterflow leveraging motion interpolation to make slow motion videos with minimal judder.
In this example, Butterflow has slowed down a 1s
video down by 10x
. An
additional 270
frames were interpolated from 30
original source frames,
giving the video a smooth feel during playback. The same video was slowed down
with FFmpeg alone (shown on the right-hand side), but because it dupes frames
and can't interpolate new ones, the video has a noticeable stutter.
Here is another example of the same concept. Interpolated frames between source
frames are marked Int: Y
. Opening the Butterflow'd video and frame-stepping
through it would make the interpolated frames more obvious.
With Homebrew:
brew install homebrew/science/butterflow
A package is available in the AUR under
butterflow
.
Refer to the Install From Source Guide for instructions.
Butterflow requires no additional setup to use, however it's too slow out of the box to do any serious work. It's recommended that you set up a functional OpenCL environment on your machine to take advantage of hardware accelerated methods that will make rendering significantly faster.
See Setting up OpenCL for details on how to do this.
Run butterflow -h
for a full list of options and their default values.
See Example Usage for typical commands.
Check the docs folder.