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!
Option Reference
-
Method (
mi_mode): what happens between source frames.mcisynthesizes new frames from motion vectors (genuinely smoother motion, much slower);blendcross-fades adjacent frames (fast, but every frame ends up softer/motion-blurred);dupjust 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.obmcuses fixed overlap to soften blocking artifacts at block edges;aobmcadapts 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.bidirlooks at both the previous and next frame (more robust on fast or complex motion);bilatuses 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
minterpolatefilter 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.