Skip to content

Repository files navigation

interpolini

Yet another svpaghetti and rifatoni frontend, this time faster.

interpolini

It does the same thing as smoothie and blur (interpolates the clip to a high frame rate and blends it back down for motion blur), just without VapourSynth or Python.

It's also a wannabe NLE. There is a timeline with video and audio tracks where you can cut, split and layer clips, drop images on top, move, scale and crop things on the preview, and give each clip its own settings.

Download

Portable

Get the zip for your system from the releases page and unzip it into any folder.

Install (Windows only)

If you're on Windows and you'd rather install it, good news, you can download interpolini-windows-x86_64-setup.exe from the same page. It also comes with a nice addition of a Send to option: right click a clip in Explorer and render it without opening the app.

Uninstalling deletes the whole folder, including your configs and downloaded models.

Usage

Open interpolini, drop your clips into the window and press Render.

It assumes you have used svpflow and rife before and know what you're doing. I might add more docs in the future, but for now refer to wonderful guides such as smoothie's recipe page and blur's recommended settings.

There is also a CLI:

interpolini-cli clip.mp4 another.mkv
interpolini-cli -s interpolation.fps=480 -s output.codec=hevc clip.mp4

The -s flag changes any setting from interpolini.ini for that run, and --help lists the rest.

For batch processing you can either just pass multiple clips, or double click interpolini-cli which would open a file picker dialog. The config priority is the following: clip's folder > next to the app > built-in defaults.

On Linux you can also add it to the app menu.

Why it's faster

  • Interpolation and blending both happen on the GPU inside open-svpflow, so only the blended frames come back to the CPU.
  • There is no VapourSynth, so frames don't go through a frame server and Python between the filters.
  • FFmpeg is linked into the app instead of being piped to. The decoder writes into the buffer that the interpolator reads from, and the encoder reads the interpolator's output without a copy.
  • The motion search uses a half-size frame by default (Drawback is it costs a bit of quality).
  • Optional TensorRT support for RIFE (it uses Vulkan by default).

Build

You need Rust and clang (on Linux also the dev packages for ALSA, fontconfig, Wayland and X11).

bash .github/build.sh x86_64-unknown-linux-gnu  # Linux
bash .github/build.sh x86_64-pc-windows-msvc    # Windows (in Git Bash from a Visual Studio developer prompt)
bash .github/build.sh aarch64-apple-darwin      # macOS (x86_64-apple-darwin on Intel)

The script builds the app and downloads the rest (open-svpflow, and the RIFE plugins and FFmpeg from precotti) into the dist folder.

Credits

RIFE and the ncnn port by nihui and TNTwise, and smoothie.

Licensed under GPL-3.0.

Releases

Contributors

Languages