[FFmpeg-user] fieldmatch "marked as interlaced" -- doesn't work

pdr0 pdr0 at shaw.ca
Thu Mar 18 07:55:53 EET 2021

Mark Filipak (ffmpeg) wrote
> I hoped that "marked as interlaced" [1] meant that
> 'select=expr=not(eq(interlace_type\,TOPFIRST)+eq(interlace_type\,BOTTOMFIRST))'
> [2]
> would work. However, the 'select' doesn't work. I'm counting on the
> 'select' working -- not working 
> is a complete show stopper.
> Is there some other species of "marked as interlaced" that will make the
> 'select' work?
> Thanks,
> Mark.
> [1] From https://ffmpeg.org/ffmpeg-filters.html#fieldmatch
> "The separation of the field matching and the decimation is notably
> motivated by the possibility of inserting a de-interlacing filter
> fallback between the two. If the source has mixed telecined and real
> interlaced content, fieldmatch will not be able to match fields for
> the interlaced parts. But these remaining combed frames will be
> *marked as interlaced*, and thus can be de-interlaced by a later
> filter such as yadif before decimation."
> [2] From https://ffmpeg.org/ffmpeg-filters.html#select_002c-aselect
> "interlace_type (video only)
> "    The frame interlace type. It can assume one of the following values:
> "        The frame is progressive (not interlaced).
> "        The frame is top-field-first.
> "        The frame is bottom-field-first."

Try using combmatch=full for fieldmatch

In this zip file is a sample test video "cadence.mp4". It has 23.976p
content, 29.97i (59.94 fields/sec interlaced) content, and 29.97p content,
all in a 29.97i stream. (There are many others cadences, but those are the 3
most common)

In this example for -vf select after fieldmatch, the 2 branches are
"progressive" and "not progressive". You can experiment with split and
various processing with interleave in the filter chain

progressive frames after fieldmatch
ffmpeg -i cadence.mp4 -filter_complex "fieldmatch=combmatch=full,
select='eq(interlace_type\,PROGRESSIVE)'" -c:v libx264 -crf 18 -an

not progressive frames after fieldmatch
ffmpeg -i cadence.mp4 -filter_complex "fieldmatch=combmatch=full,
select='not(eq(interlace_type\,PROGRESSIVE))'" -c:v libx264 -crf 18 -an
fieldmatch_combmatchfull_notprog.mkv -y

Sent from: http://ffmpeg-users.933282.n4.nabble.com/

More information about the ffmpeg-user mailing list