FFmpeg Reverse Telecine with Custom Thresholds

This article explains how to perform a reverse telecine (inverse telecine or IVTC) in FFmpeg using custom frame thresholds. You will learn how to use both the modern, highly configurable fieldmatch and decimate filter chain—which offers precise threshold controls—as well as the legacy pullup filter to successfully restore 24fps progressive video from a 30fps telecined source.


The most precise way to perform a reverse telecine with custom thresholds in FFmpeg is using the fieldmatch filter combined with the decimate filter. This combination allows you to explicitly define how aggressively FFmpeg matches fields and detects combed (interlaced) frames.

The Command

ffmpeg -i input.mp4 -vf "fieldmatch=mthresh=3:cthresh=9:combmatch=sc,decimate" -c:a copy output.mp4

Parameter Breakdown


Method 2: Using the Classic Pullup Filter

The legacy pullup filter is a heuristic-based filter designed to handle mixed-content or poorly telecined sources. While it does not feature direct pixel-difference threshold parameters like fieldmatch, you can customize its thresholds using border exclusions and strictness settings.

The Command

ffmpeg -i input.mp4 -vf "pullup=jl=8:jr=8:jt=8:jb=8:sb=1" -r 24000/1001 -c:a copy output.mp4

Parameter Breakdown


How to Adjust Thresholds for Your Source Video

If your output video still shows interlacing artifacts or plays back with stuttering, adjust the thresholds based on these symptoms: