On 04/15/2020 05:38 AM, Paul B Mahol wrote:
On 4/15/20, Mark Filipak <markfilipak.windows+ffm...@gmail.com> wrote:
On 04/15/2020 05:00 AM, Paul B Mahol wrote:
On 4/15/20, Mark Filipak <markfilipak.windows+ffm...@gmail.com> wrote:
On 04/15/2020 04:25 AM, Paul B Mahol wrote:
On 4/15/20, Mark Filipak <markfilipak.windows+ffm...@gmail.com> wrote:
Request for bug confirmation is included.

Correction: I had datascope in #2 just 1 time. I don't know how it got
into
the original post twice.
Sorry. - M.

On 04/14/2020 10:24 AM, Paul B Mahol wrote:
On 4/14/20, Mark Filipak <markfilipak.windows+ffm...@gmail.com> wrote:
In the command line below,
                    I will eventually insert a screen maker --+
                                                              ¦
separatefields,scale=height=2*in_h:sws_flags=neighbor,--HERE--,tblend=normal[D]

but first, I need to persuade 'tblend' to accept the 2 frames made by
'separatefields' (and scaled
by 'scale').
But as you can see in the next section (extracted from the log),
though
the
'height=2*in_h'
directive works (i.e., the 1920x540 frames from 'separatefields' are
scaled
to 1920x1080), ffmpeg is
not happy. Is it because the SARs don't match? How can I overcome
that?
Thanks!

Insert setsar=1 after scale?

Thank you, Paul. It works. I apologize for not finding that solution on
my
own ...how embarrassing.

Next problem: 'tblend' appears to be malfunctioning.

"The tblend (time blend) filter takes two consecutive frames from one
single
stream, and outputs the
result obtained by blending the new frame on top of the old frame."

#1 - This works as expected:
ffmpeg -i IN -filter_complex "telecine=pattern=5, split[A][B],
[A]select='not(eq(mod(n+1\,5)\,3))'[C], [B]select='eq(mod(n+1\,5)\,3)',
datascope=size=1920x1080:x=45:y=340:mode=color2[D], [C][D]interleave"
OUT

#2 - This malfunctions:
ffmpeg -i IN -filter_complex "telecine=pattern=5, split[A][B],
[A]select='not(eq(mod(n+1\,5)\,3))'[C], [B]select='eq(mod(n+1\,5)\,3)',
separatefields,
scale=height=2*in_h:sws_flags=neighbor, setsar=1, tblend,
datascope=size=1920x1080:x=45:y=340:mode=color2, [C][D]interleave" OUT

#1 brings up datascope in frames (n, zero-based): 2 7 12 17 etc., as
expected.
#2 brings up datascope in frames (n, zero-based): 4 7 10 13 etc.

Another clue is:
#1 OUT has 598 frames.
#2 OUT has 716 frames.

Would someone who has the latest nightly build kindly confirm this. I
can
supply the test video --
contact me off-list.

You still can not read documentation? Why?

interleave filter simply picks frames from several streams.
This is obviously explained in documentation.
tblend filter blend successive frames, this is obviously different
from interlace filter as that will not drop any frame like interlace
does.

Look at my command lines again. Here, I'll give you filtergraphs:

#1
telecine -> split -> select (n+1%5!=3) ---------------------------->
interleave
                     -> select (n+1%5==3) ---------------------------->
598 frames (correct)

#2
telecine -> split -> select (n+1%5!=3) ---------------------------->
interleave
                     -> select (n+1%5==3) -> separatefields...tblend ->
716 frames (malfunction)

598*4/5 = 478 frames (upper 'select')
598*1/5 = 119 frames (lower 'select')
119*2 = 238 frames (output of 'separatefields')
238/2 = 119 frames (what output of 'tblend' is supposed to be)
238 frames (what output of 'tblend' actually is)
478+238 = 716 frames (output of 'interleave' showing that 'tblend'
malfunctions)


tblend works fine, you obviously do not know what you doing.

Given frames: A B C D E F G:

tblend gives this output: AB BC CD DE EF FG, so original number of
frames in input minus one.

Are you even looking at the command lines?

#2
telecine -> split -> select (n+1%5!=3) ---------------------------->
interleave
                    -> select (n+1%5==3) -> separatefields...tblend ->

'telecine' input (IN) is      A B C...
'telecine' output is          A A AB B B ... (modulo 5) ...frame 2 is combed
upper 'select' output is      A A __ B B (n+1%5!=3)     ...progressive
frames
lower 'select' output is      _ _ AB _ _ (n+1%5==3)     ...combed frame
'separatefields' output is        AB AB                 ...2 frames (1/2
height)
'scale=height=2*in_h' output is   AB AB                 ...2 frames (full
height)
'tblend' output is supposed to be AB                    ...1 frame
OUT is supposed to be         A A AB B B                ...598 frames
OUT is                        A A AB AB B B             ...716 frames
Conclusion: 'tblend' is outputting 2 frames instead of 1 frame.

And that is completely correct for filter to do.

If you not happy with that, write own code instead.

From here: https://ffmpeg.org/ffmpeg-filters.html#blend
"The tblend (time blend) filter takes two consecutive frames from one single stream, and outputs the result obtained by blending the new frame on top of the old frame."

Seems to me that 'tblend' is supposed to output 1 frame.

_______________________________________________
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