[FFmpeg-user] ffmpeg architecture question
Mark Filipak
markfilipak.windows+ffmpeg at gmail.com
Fri Apr 17 10:44:49 EEST 2020
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]
Yes, I've done that, not because I thought it would make a difference, but because it just happens
to have been my first configuration.
More information about the ffmpeg-user
mailing list