FFmpeg Framerate Scene Change Threshold Guide

This article explains how to configure the scene change detection threshold in the FFmpeg framerate filter. You will learn about the key parameters—specifically scd and scd_threshold—how they control video frame interpolation, and how to apply them in your command-line workflows with practical examples.

When changing a video’s frame rate using the FFmpeg framerate filter, the tool interpolates (blends) adjacent frames to create a smooth transition. However, interpolating across a scene cut results in ugly, blurry “ghosting” artifacts. To prevent this, the framerate filter uses Scene Change Detection (SCD). When a scene change is detected, the filter performs a hard cut instead of blending.

You can configure and fine-tune this behavior using two main parameters:

How to Configure the Threshold

To adjust the threshold, pass the scdt parameter inside the -vf "framerate=..." filter string.

1. Increase Sensitivity (Lower Threshold)

If FFmpeg is failing to detect scene cuts and is blending frames during transitions, lower the scdt value. A lower percentage means a smaller difference between frames is needed to trigger a scene cut.

ffmpeg -i input.mp4 -vf "framerate=fps=60:scd=scd:scdt=5.0" output.mp4

2. Decrease Sensitivity (Higher Threshold)

If FFmpeg is mistakenly identifying fast motion or camera pans as scene changes (which stops smooth interpolation where you want it), increase the scdt value.

ffmpeg -i input.mp4 -vf "framerate=fps=60:scd=scd:scdt=15.0" output.mp4

3. Disable Scene Change Detection Entirely

If you want the filter to interpolate every single frame regardless of visual cuts, disable the detection mechanism.

ffmpeg -i input.mp4 -vf "framerate=fps=60:scd=none" output.mp4