FFmpeg Minterpolate Modes: Motion vs Blend vs Drop
The FFmpeg minterpolate (motion interpolation) filter
allows users to alter a video’s frame rate by generating new, synthetic
frames between existing ones. This article explains the key differences
between the filter’s three primary interpolation
modes—motion, blend, and
drop—helping you choose the right setting for your specific
video processing requirements.
Understanding mi_mode
The minterpolate filter relies on the
mi_mode parameter to determine how new frames are generated
when changing a video’s frame rate. Each mode balances computational
speed and visual quality differently.
1. Motion Mode
(mi_mode=motion)
The motion mode uses motion-compensated interpolation.
It analyzes the movement of pixels between consecutive frames and
mathematically estimates where those pixels should be in the newly
generated intermediate frames.
- How it works: It uses motion estimation algorithms to “draw” brand-new frames, simulating natural movement.
- Pros: Produces the smoothest possible motion. It is ideal for creating true slow-motion effects or converting 24fps/30fps footage to a buttery-smooth 60fps.
- Cons: Extremely CPU-intensive and slow to process. It can also introduce visual artifacts, such as “halo” effects, warping, or tearing around fast-moving objects.
- Example Use Case: Converting a standard action video into smooth high-frame-rate footage.
2. Blend Mode
(mi_mode=blend)
The blend mode creates intermediate frames by
overlapping and blending adjacent frames together using a weighted
average.
- How it works: Instead of calculating motion, it takes a percentage of the previous frame and a percentage of the next frame, merging them into a semi-transparent transition frame.
- Pros: Much faster than
motionmode and does not suffer from morphing or warping artifacts. - Cons: Causes a distinct “ghosting” or double-image effect during fast action, making the video look blurry or out of focus during motion.
- Example Use Case: Quick frame rate conversions where speed is important and motion blur is acceptable or desired.
3. Drop Mode
(mi_mode=drop)
The drop mode is the simplest form of frame rate
alteration. It does not generate any new visual information.
- How it works: To increase the frame rate, it duplicates existing frames. To decrease the frame rate, it drops frames.
- Pros: Requires almost zero computational power, processes instantly, and preserves the absolute sharpness of the original source frames without any blurring or warping.
- Cons: Can introduce noticeable stuttering, judder, or uneven playback (especially when converting between non-integer frame rates, such as 24fps to 30fps).
- Example Use Case: Basic frame rate adjustments where computational resources are limited and original frame integrity must be preserved.
Direct Comparison
| Feature | Motion Mode | Blend Mode | Drop Mode |
|---|---|---|---|
| Processing Speed | Very Slow | Moderate | Instant |
| Motion Smoothness | Excellent | Average (Blurry) | Poor (Choppy) |
| Visual Artifacts | Haloing / Warping | Ghosting / Blurring | Judder / Stutter |
| CPU Usage | High | Low to Medium | Negligible |
FFmpeg Command Examples
To apply these modes in FFmpeg, use the mi_mode option
within the minterpolate filter:
Using Motion Mode (Smooth 60fps):
ffmpeg -i input.mp4 -vf "minterpolate=fps=60:mi_mode=motion" output_motion.mp4Using Blend Mode (Blended 60fps):
ffmpeg -i input.mp4 -vf "minterpolate=fps=60:mi_mode=blend" output_blend.mp4Using Drop Mode (Duplicated 60fps):
ffmpeg -i input.mp4 -vf "minterpolate=fps=60:mi_mode=drop" output_drop.mp4