[FFmpeg-user] minterpolate problem

Mark Filipak (ffmpeg) markfilipak at bog.us
Thu Jan 28 08:01:08 EET 2021


On 01/27/2021 05:47 PM, Carl Eugen Hoyos wrote:
> Am Mi., 27. Jan. 2021 um 02:03 Uhr schrieb Mark Filipak (ffmpeg)
> <markfilipak at bog.us>:
> 
>> ffmpeg -i SOURCE -map 0 -filter_complex "split[1][2], \
>> [1]telecine=pattern=55, select=not(eq(mod(n\,5)\,2))[3], \
>> [2]minterpolate=fps=60000/1001:mi_mode=mci=mc_mode=obmc:scd=fdiff:scd_threshold=10, \
>> select=eq(mod(n\,5)\,2)[4], \
>> [3][4]interleave" \
>> -codec:v libx265 -x265-params "crf=16:qcomp=0.60" -codec:a copy -codec:s copy TARGET
> 
> Since others may read this:
> The command line makes little sense, you should either use
> telecine or minterpolate.

Carl Eugen, you surprise me. I'm sure you see what I'm trying to do, so why the angst?

First, let me admit that since I started this thread (following weeks of experimentation) I decided 
to simply try this: 'minterpolate=fps=60000/1001' to see what it would do. I was amazed.

If minterpolate is Paul's work, then Paul is a f'ing genius.

I've since spent a couple of days playing with minterpolate and have found that this:
'minterpolate=fps=60000/1001:mi_mode=mci:mc_mode=obmc:scd=fdiff:scd_threshold=10:vsbmc=1:search_param=20'
is astounding.

Nonetheless, I'd still like to generate a 60 FPS transcode that is visually equivalent (as closely 
as possible) to 24 pictures/second by replacing the combed frame (i.e. n%5==2) by an interpolated 
frame -- hence the filter graph you loathe.

For that n%5==2 frame, here's what I sought (and did not find):

Sobel of line y:   ______/\_____________/\_________
Sobel of line y+1: __________/\_____________/\_____
Desired output:
          line y:   ________/\_____________/\_______
          line y+1: ________/\_____________/\_______
I could find this:
          line y:   ______/\_____________/\_________
          line y+1: ______/\_____________/\_________ (aligned to top line)
and I could find this:
          line y:   __________/\_____________/\_____ (aligned to bottom line)
          line y+1: __________/\_____________/\_____
but I could not find this:
          line y:   ________/\_____________/\_______ (aligned to mean)
          line y+1: ________/\_____________/\_______ (aligned to mean)

One reason I might -- MIGHT -- prefer telecine55 is that the original frames are recoverable from 
the transcodes -- but admittedly, that's not much of a reason, is it? Another reason is that the 
transcode is much, much quicker than 'minterpolate=fps=60000/1001' and somewhat smaller.

There you have it, Carl Eugen. Please stop trying to make the world think I'm feeble minded.  :-)
Okay?

Regards,
Mark.

-- 
Someone's sneaking in and turning up the range so that my food burns.
I'm sure of it.
And the older I get, the more sure of it I become.


More information about the ffmpeg-user mailing list