On 4/15/20, Mark Filipak <[email protected]> wrote: > On 04/15/2020 05:38 AM, Paul B Mahol wrote: >> On 4/15/20, Mark Filipak <[email protected]> wrote: >>> On 04/15/2020 05:00 AM, Paul B Mahol wrote: >>>> On 4/15/20, Mark Filipak <[email protected]> wrote: >>>>> On 04/15/2020 04:25 AM, Paul B Mahol wrote: >>>>>> On 4/15/20, Mark Filipak <[email protected]> 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 <[email protected]> >>>>>>>> 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.
Nope. Enjoy living in your own world. _______________________________________________ ffmpeg-user mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
