How to Change a Video's Frame Rate With FFmpeg
Converting a video to a different frame rate — either to match a platform's requirement, to reduce file size, or to fix a mismatch causing playback stutter.
Converting a video to a different frame rate — either to match a platform's requirement, to reduce file size, or to fix a mismatch causing playback stutter.
The command
ffmpeg -i input.mp4 -r 30 -c:a copy output.mp4What each flag does
| -r 30 | Sets the output frame rate to 30fps — FFmpeg duplicates or drops frames as needed to hit this rate from the source. |
Where this goes wrong
Simple frame dropping/duplication (what -r does by default) can look choppy on significant frame rate reductions, like 60fps to 24fps — every other frame just gets discarded rather than blended, which shows up as slight judder on fast motion.
Smoother frame rate conversion (motion interpolation)
ffmpeg -i input.mp4 -vf "minterpolate=fps=30" -c:a copy output.mp4This generates new in-between frames by estimating motion, rather than just dropping or duplicating existing ones — smoother, but much slower to encode and occasionally introduces visible artifacts on complex motion.
Frame rate is a technical export setting. The perceived smoothness people actually notice comes from pacing and motion design — the layer a template adds on top of a correctly encoded clip.
See the templates