This is an old revision of the document!
yadif
man ffmpeg-filters
It accepts the following parameters: mode The interlacing mode to adopt. It accepts one of the following values: 0, send_frame Output one frame for each frame. 1, send_field Output one frame for each field. 2, send_frame_nospatial Like send_frame, but it skips the spatial interlacing check. 3, send_field_nospatial Like send_field, but it skips the spatial interlacing check. The default value is send_frame. parity The picture field parity assumed for the input interlaced video. It accepts one of the following values: 0, tff Assume the top field is first. 1, bff Assume the bottom field is first. -1, auto Enable automatic detection of field parity. The default value is auto. If the interlacing is unknown or the decoder does not export this information, top field first will be assumed. deint Specify which frames to deinterlace. Accept one of the following values: 0, all Deinterlace all frames. 1, interlaced Only deinterlace frames marked as interlaced. The default value is all.
The best description I've seen of the filter options is here: https://www.avidemux.org/admWiki/doku.php?id=using:video_filter_yadif
I use yadif
on DVDs that have interlacing, and detelecine filters are not cleaning it up – among my collection, it's pretty rare. Only two cartoon series, and three live action.
Command line for its default options:
ffmpeg ... -vf yadif=mode=send_frame:parity=auto:deint=all ...
Using BeyBlade as a source.
Default for mode
is send_frame
, which will output one frame for each frame; the output frame rate is constant at 30000/1001 (29.97, NTSC).
If I set it to create a frame for each field (mode=send_field
), it will come out at 60000/1001 constant instead (59.94).
Running defaults, or, just using -vf yadif
, the same frames in sequence:
I'm also not caring about video encoding quality right here, it's just default x265 settings.