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

Ted Park kumowoon1025 at gmail.com
Thu Apr 16 19:11:02 EEST 2020


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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: frame-distribute-filtergraph.svg
Type: image/svg+xml
Size: 12763 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-user/attachments/20200416/875ebfba/attachment.svg>
-------------- next part --------------

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



More information about the ffmpeg-user mailing list