Hey, > 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.
Huh, I didn't know you could reuse filter pad labels. I've translated the graph2dot output to svg, it doesn't look like it'll help much though.
I think graphmonitor would be more helpful for this kind of split-chained-to-split complex graph. But I think you could use the multiple output option for select filter, where you use the value to select which pad the frame gets sent to. (It isn't evaluated as a boolean in that case, so if value is 3.??? it goes to output pad 3, if it's 0.??? it goes to 0, etc) Regards, Ted Park
_______________________________________________ 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".