How to Use the FFmpeg Telecine Filter

This article provides a practical guide on how to use the telecine filter in FFmpeg to convert progressive video into an interlaced format. You will learn the fundamental concept of the telecine process, the syntax of the FFmpeg filter, and how to apply common pulldown patterns—such as the standard 3:2 pulldown—using clear command-line examples.

Understanding the Telecine Filter

The telecine filter in FFmpeg is used to convert progressive video, typically shot at 24 frames per second (fps), into an interlaced video format suitable for television broadcasting (such as NTSC at 29.97 fps or 30 fps). It achieves this by splitting the progressive frames into individual fields (odd and even lines) and repeating certain fields in a specific pattern, a process known as “pulldown.”

Basic Filter Syntax

The basic syntax for the telecine filter is:

-vf "telecine=option1=value1:option2=value2"

The filter accepts two primary options:

Common Pulldown Patterns

Step-by-Step Command Examples

Example 1: Standard 3:2 Pulldown (NTSC)

To convert a 24 fps progressive video to a 30 fps interlaced video using the standard 3:2 pulldown with Top Field First (TFF), use the following command:

ffmpeg -i input.mp4 -vf "telecine=first_field=top:pattern=23" output.mp4

Example 2: Interlaced Encoding Flags

When using the telecine filter, it is important to instruct the video encoder to flag the output file as interlaced. Otherwise, media players may try to play it back as progressive video, resulting in visual artifacts.

For the H.264 (libx264) encoder, you should add the -flags +ildct+ilme options:

ffmpeg -i input.mp4 -vf "telecine=first_field=top:pattern=23" -c:v libx264 -flags +ildct+ilme output.mp4

Example 3: Standard 2:2 Pulldown (PAL)

To convert a progressive video to interlaced video using a 2:2 pulldown (typically for 25 fps PAL video), run:

ffmpeg -i input.mp4 -vf "telecine=first_field=top:pattern=22" -c:v libx264 -flags +ildct+ilme output.mp4