[FFmpeg-user] ffmpeg architecture question
Michael Koch
astroelectronic at t-online.de
Fri Apr 17 10:56:03 EEST 2020
Am 17.04.2020 um 09:44 schrieb Mark Filipak:
> On 04/17/2020 02:41 AM, Michael Koch wrote:
>> Am 17.04.2020 um 08:02 schrieb Mark Filipak:
>>> Thanks to pdr0 -at- shaw.ca, My quest for the (nearly perfect)
>>> p24-to-p60 transcode has concluded.
>>>
>>> But remaining is an ffmpeg behavior that seems (to me) to be key to
>>> understanding ffmpeg architecture, to wit: The characteristics of
>>> frame traversal through a filter chain.
>>>
>>> From a prior topic:
>>> -----
>>> Filter graph:
>>>
>>> split[A] select='not(eq(mod(n+1\,5)\,3))' [C]interleave
>>> [B]split[D]select='eq(mod(n+1\,5)\,2)'[F]blend[D]
>>> [E]select='eq(mod(n+1\,5)\,3)'[G]
>>>
>>> What I expected/hoped:
>>>
>>> split[A] 0 1 _ 3 4 [C]interleave 0 1 B 3 4 //5 frames
>>> [B]split[D] _ 1 _ _ _ [F]blend[D] |
>>> [E] _ _ 2 _ _ [G] blend of 1+2
>>>
>>> What appears to be happening:
>>>
>>> split[A] 0 1 _ 3 4 [C]interleave 0 1 _ 3 4 //4 frames
>>> [B]split[D] _ _ _ _ _ [F]blend[D]
>>> [E] _ _ 2 _ _ [G]
>>>
>>> The behavior is as though because frame 1 (see Note) can take the
>>> [A][C] path, it does take it & that leaves nothing left to also take
>>> the [B][D][F] path, so blend never outputs.
>>
>> Only an untested idea, what happens when you change the order of the
>> inputs of the blend filter, first [G] and then [F]?
>
> This would be an important topic for someone writing a book, eh?
>
> I assume you mean this, Michael:
>
> split[A] select='not(eq(mod(n+1\,5)\,3))' [C]interleave
> [B]split[D]select='eq(mod(n+1\,5)\,2)'[F]blend[D]
> [E]select='eq(mod(n+1\,5)\,3)'[G]
>
> split[A] 0 1 _ 3 4 [C]interleave 0 1 _ 3 4 //4 frames
> [B]split[D] _ _ 2 _ _ [F]blend[D]
> [E] _ _ _ _ _ [G]
>
no, I meant replace [F][G]blend[D] by [G][F]blend[D] and leave
everything else as it is.
Michael
More information about the ffmpeg-user
mailing list