On 2021-03-18 01:55, pdr0 wrote:
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:
"    PROGRESSIVE
"        The frame is progressive (not interlaced).
"    TOPFIRST
"        The frame is top-field-first.
"    BOTTOMFIRST
"        The frame is bottom-field-first."

Try using combmatch=full for fieldmatch

Really? ...I didn't think of that. The default is 'combmatch=sc'. I assumed that added scene change logic to 'full'.

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)
https://www.mediafire.com/file/m46kc4p1uvt7ae3/cadence_tests.zip/file

Thanks! That was very kind of you! I'll give it a look.

My current test video is very mixed (and mixed-up) content:
29.970fps(24pps)        ...telecined (movie clips)
+ 29.970fps(59.940sps)   ...scan-interlaced (interviews)
+ 29.970fps(29.970pps)   ...progressive (interviews)
+ 29.970fps(mutt)       ...[1] (location shots)
[1] A mess of nearly random combed, progressive, and repeated frames (amazingly, it looks quite good on-screen).
The video is from an actual Blu-ray -- would you believe it?

Here is my current filter complex (awaiting methods to 'split' the stream into 
secondary streams):

settb=expr=1/720000,setpts=N*24024,fps=30000/1001,
fieldmatch,split=3[1][2][3],
[1]select=expr=eq(interlace_type\,TOPFIRST)+eq(interlace_type\,BOTTOMFIRST),yadif,telecine=pattern=8[4],
[2]select=?????,telecine=pattern=8[5],
[3]select=expr=not(eq(interlace_type\,TOPFIRST)+eq(interlace_type\,BOTTOMFIRST)),decimate,telecine=pattern=2,telecine=pattern=55[6],
[4][5][6]interleave=nb_inputs=3

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

Really?! I tried 'eq(interlace_type\,PROGRESSIVE)' in my first attempt and, when that didn't work, went with functions of 'TOPFIRST' & 'BOTTOMFIRST'. Hmmm... I guess it's time to download the latest ffmpeg git and try again.

BTW, Tonight I submitted Subject: "'streampatterns' -- a proposed stream structure filter". I think it would make for an excellent, general purpose solution. I'm eager to read what the folks think of it. I could do all the algorithm coding but I don't write 'C' (only 'C' syntax), so have never compiled 'C' and don't know how to use structs. I'd need help with the integration.

Thanks Again,
Mark.

--
Robotics will make bitcoin worthless. Why? Visualize millions of solar powered, self-replicating bitcoin miners. How much would they be worth? Bitcoin maintains marginal value solely via built-in inflation. That essentially makes bitcoin a Ponzi scheme, and it will be shut down by governments.
_______________________________________________
ffmpeg-user mailing list
ffmpeg-user@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to