couleur-tweak-tips / Smoothie

Smoothie is python is abandonned, please see couleur-tweak-tips/smoothie-rs
https://github.com/couleur-tweak-tips/smoothie-rs
GNU General Public License v3.0
72 stars 4 forks source link
ffmpeg frame-blending interpolation motion-blur mvtools vapoursynth video

⚠ Smoothie'-py' is deprecated in favor of smoothie-rs

Since early 2023, the original Python version of Smoothie is deprecated.

It is now actively developed in Rust here and documented there.

The rest of the old README can be found below.


Smoothie
Smoothie

Apply motion-blur efficiently on gameplay footage, however you want it.

Docs | Demo Playlist | Website

License


Smoothie is a cross-platform fork of blur rewritten in Python, it is useable through the CLI but there's tons of wrappers so you never have to open and type anything yourself:

5 wrappers for feeding footage to Smoothie:

Differences compared to blur:

Installation

[!CAUTION] For the people who read diagonally: A very important reminder is specified at the top

To automatically install Smoothie and its dependencies for Windows, run this command in PowerShell:

# IMPORTANT REMINDER: This now installs smoothie-rs, see releases if you REALLY want an old version (contact me if a feature of smoothie regressed)
iex(irm tl.ctt.cx); Get Smoothie

This will do the following for you:

If you don't want to run the installation script can also grab the latest portable zip from the repo's releases here (though be aware you'll need to set up shortcuts yourself)

🐧 See installation instructions for Linux here

Uninstalling Scoop & Smoothie

You should find Scoop (per default) in your %USERPROFILE% folder, if you want to delete Smoothie specificly it's in ...\scoop\apps\smoothie

Configuring Smoothie (recipe 😋)

If installed with Scoop, the main (default) recipe can be opened from the Run dialog (Windows+R):

You can learn what each setting does on it's wiki page

The default recipe

interpolation: # Tries to guess frames in between existing ones to increase FPS
  enabled: yes # If you want to interpolate or not
  fps: 960 # The FPS you wish to interpolate to
  speed: medium # What accuracy you want (fast, faster and fastest will take less time, but make worse frames)
  tuning: weak # This and 'algorithm' are different ways to make interpolation, check the wiki
  algorithm: 23 # Same deal
  use gpu: yes # GPU acceleration

frame blending: # Converts high FPS footage (e.g 240, 960) to a lower frame rate (e.g 30, 60 for YT) with motion blur
  enabled: yes # If you want want it to frame blend or not
  fps: 60 # The FPS you want it blended down to
  intensity: 1.27 # 1.0 is what you're used to, more will make a longer kind of "ghoserfz", I love 1.5 @ 60FPS
  weighting: equal # How each blur frame's opacity is decided (default is every one of them is equal)

encoding: 
  process: ffmpeg # ffmpeg's executable path
  args: H264 CPU # You can replace with with your own -c:v/-vf FFmpeg filters

misc:
  mpv bin: mpv # mpv executable path, same deal as FFmpeg
  stay on top: true # if you don't want the progress bar always on top
  verbose: false # Can also be turned on with -verbose/-v on the CLI
  ding after: 1 # Minimum numbers of videos queued before it plays a little notification sound when all video(s) finished rendering
  folder: # Redirect all output videos to a specific folder
  deduplication: y # Frame deduplication (useful if you have a tiny little bit of encoding lag)
  container: .MP4 # Set this to .MKV to be able to watch the video before it even finishes rendering! (You'll need to remux them to .MP4 after to use the video in specific applications)
  prefix: # Empty by default, you can make your apex.mp4 be outputted as SM-apex.mp4
  suffix: detailed # Detailed will say some misc stuff about the settings used on it, can be replaced with your own string
  dedupthreshold: 0 # Turn that to 0.001 if you want frame deduplication like blur's

timescale: # Set the speed in/out, I like out @ 1.03 to speed a liiittle bit to look cool
  in: 1
  out: 1