[FFmpeg-user] propagation of frames in a filter complex

Mark Filipak markfilipak.windows+ffmpeg at gmail.com
Thu Apr 16 18:33:50 EEST 2020


To overcome a problem, I'm trying to understand the propagation of frames in a filter complex.

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 n+1==1 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.

I've used 'datascope' in various parts of the filter graph in an attempt to confirm this on my own. 
It's difficult because my test video doesn't display frame #s.

If that indeed is the behavior, then ...

I need a way to duplicate a frame, # n+1%5==1 in this case, so that the 'blend' operates.

Thanks for your thoughts,
Mark.



More information about the ffmpeg-user mailing list