Frame Interpolation Generator

Build FFmpeg minterpolate filter strings to smooth video frame rates

Always exercise caution when copying and executing commands from the internet.

Output Frame Rate

Common values: 24, 25, 30, 50, 60, 120

Interpolation Method

mci synthesizes new frames from motion analysis; blend cross-fades between adjacent frames; dup just changes the container framerate without generating anything new.

Motion Estimation (mci only)

Enables variable block sizes for finer motion detail. Recommended on.

Default 32. Higher = more accurate motion estimation, slower.

Default 10. Lower = more aggressive scene-cut detection (skips interpolation across cuts).

Filter String

Paste this into the Video filter field of any encoding wizard.

Copied!
Use with: x264, x265, AV1, VP9

Option Reference

  • Method (mi_mode): what happens between source frames. mci synthesizes new frames from motion vectors (genuinely smoother motion, much slower); blend cross-fades adjacent frames (fast, but every frame ends up softer/motion-blurred); dup just repeats existing frames (no smoothing — useful only when you need to retag a file at a higher container fps).
  • Motion compensation (mc_mode): how overlapping motion-compensated blocks are merged. obmc uses fixed overlap to soften blocking artifacts at block edges; aobmc adapts the overlap based on local motion confidence, usually producing cleaner results at the cost of some speed.
  • Motion estimation direction (me_mode): which surrounding frames are used to estimate motion for a new in-between frame. bidir looks at both the previous and next frame (more robust on fast or complex motion); bilat uses bilateral matching, which can be quicker but tends to struggle in busy scenes.
  • Variable-size block MC (vsbmc): lets the encoder pick block sizes per region instead of a fixed grid, so detail-heavy areas get finer motion vectors. Almost always worth leaving on; turn off only if you can see it making things worse.
  • Search range (search_param): how far (in pixels) the motion estimator looks when matching blocks between frames. Default 32 covers typical motion; raise for very fast pans or large movements, lower to trade quality for speed.
  • Scene change threshold (scd_threshold): sensitivity of the built-in shot-cut detector. When a cut is detected, interpolation is skipped across it (otherwise you get glitchy morphs between unrelated shots). Lower = more sensitive. Default 10 works for most content — raise if real interpolation is being skipped, lower if you see morphing across cuts.

Usage Notes

  • What this is: the minterpolate filter generates new frames between existing ones using motion analysis, producing genuinely smoother motion rather than just blending or duplicating.
  • Speed warning: motion-compensated interpolation is single-threaded and slow. Long videos can take hours. For long sources, consider splitting into chunks, processing in parallel, and concatenating the results.
  • Display caveat: a 60fps output only looks smoother on a display capable of 60Hz playback. On a 30Hz or 24Hz display, the extra frames are wasted.
  • Recommended workflow: first encode at very low CRF (high quality) for the interpolated intermediate, then re-encode with HEVC or AV1 at your target bitrate to keep file size sane.
  • Source: based on this article by Programster and the FFmpeg minterpolate documentation.