Apply 3:2 Pulldown with Custom Field Order in FFmpeg
This article provides a straightforward guide on how to apply a 3:2 pulldown (telecine) to a 24fps progressive video to convert it to a 29.97fps interlaced format using FFmpeg. You will learn how to use FFmpeg’s built-in filters to customize the output field order as either Top Field First (TFF) or Bottom Field First (BFF) to meet specific broadcast or archiving requirements.
The Telecine Filter in FFmpeg
To apply a 3:2 pulldown, FFmpeg utilizes the telecine
video filter. This filter takes progressive frames and distributes them
into interlaced fields. By default, the filter uses a standard 3:2
pattern (p0123) and defaults to Top Field First (TFF).
To customize the field order, you must specify the
first_field parameter within the filter.
Option 1: Top Field First (TFF) 3:2 Pulldown
If your target destination requires Top Field First interlacing, use
the telecine filter and set first_field to
top (or t).
Run the following command:
ffmpeg -i input.mp4 -vf "telecine=first_field=top" -c:v mpeg2video -flags +ilme+ildct output.mp4-vf "telecine=first_field=top": Applies the 3:2 pulldown starting with the top field.-c:v mpeg2video: Uses the MPEG-2 video encoder, which is standard for interlaced DVD and broadcast formats.-flags +ilme+ildct: Forces the encoder to write interlaced motion estimation and interlaced discrete cosine transform flags, ensuring the output file is recognized as interlaced.
Option 2: Bottom Field First (BFF) 3:2 Pulldown
If your workflow requires Bottom Field First interlacing, change the
first_field parameter to bottom (or
b).
Run the following command:
ffmpeg -i input.mp4 -vf "telecine=first_field=bottom" -c:v mpeg2video -flags +ilme+ildct output.mp4-vf "telecine=first_field=bottom": Applies the 3:2 pulldown starting with the bottom field.
Ensuring Correct Metadata with the Fieldorder Filter
Sometimes, hardware players or video editing suites misinterpret the
field order of the output file. To guarantee that the container metadata
explicitly matches your custom field order, chain the
fieldorder filter immediately after the telecine
filter.
For TFF:
ffmpeg -i input.mp4 -vf "telecine=first_field=top,fieldorder=tff" -c:v mpeg2video -flags +ilme+ildct output.mp4For BFF:
ffmpeg -i input.mp4 -vf "telecine=first_field=bottom,fieldorder=bff" -c:v mpeg2video -flags +ilme+ildct output.mp4Using these command structures ensures your video is correctly converted from progressive 24fps (or 23.976fps) to compliant 29.97fps interlaced video with your exact field order preferences.