How to Perform Reverse Telecine on NTSC Video Using FFmpeg

This article provides a practical guide on how to perform a reverse telecine (also known as inverse telecine or IVTC) on a 29.97 fps NTSC video source using FFmpeg. You will learn how to reconstruct the original 23.976 fps progressive frames from telecined content using FFmpeg’s specialized video filters, ensuring a clean, jitter-free playback.

Understanding the Process

Telecine is a process used to convert film (originally shot at 24 frames per second) to NTSC video (which runs at 29.97 frames per second) by duplicating fields in a 3:2 pattern. Reverse telecine (IVTC) reverses this process by matching the split fields back into progressive frames and discarding the duplicate frames, restoring the video to its original progressive 23.976 fps format.


The most accurate and robust way to perform inverse telecine in FFmpeg is by using the fieldmatch and decimate filters together. This filter chain automatically detects field parity, matches interlaced fields to reconstruct progressive frames, and deletes the resulting duplicate frames.

Run the following command in your terminal:

ffmpeg -i input_telecined.mp4 -vf "fieldmatch=order=auto,decimate" -c:a copy output_progressive.mp4

Command Breakdown:


Method 2: Using the pullup Filter

FFmpeg also includes a dedicated pullup filter designed to handle telecine reversal. This filter is highly effective at handling mixed-content sources (such as video containing both telecined film and native 29.97 fps interlaced video), as it is less prone to breaking when the telecine cadence changes.

Run the following command:

ffmpeg -i input_telecined.mp4 -vf "pullup,fps=24000/1001" -c:a copy output_progressive.mp4

Command Breakdown:


Tips for Best Results