[FFmpeg-user] 'image trails'

Mark Filipak markfilipak.windows+ffmpeg at gmail.com
Wed Apr 8 14:19:07 EEST 2020


Command employing 'interleave' filter in lieu of 'mix' filter:

fmpeg -i "M:\Test Videos\23.976p.mkv" -filter_complex 
"split=3[B][C][D],[B]select='bitand(not(eq(mod(n+1\,10)\,3))\,not(eq(mod(n+1\,10)\,8)))'[E],[C]select='eq(mod(n+1\,10)\,3)'[G],[D]select='eq(mod(n+1\,10)\,8)'[H],[E][G][H]interleave=3" 
-map 0 -c:v libx264 -crf 28 -c:a copy -c:s copy "C:\AVOut\23.976p.MKV"

The 'interleave' filter temporally muxes 2 (or more) streams. It orders the stream frames based on 
their time stamps (with extensive buffering).

This is discouraging.
The 'mix' filter is no good. It's single-threaded. I've been waiting over 2-1/2 hours to finish 
interleaving a 10-second video that ordinarily takes about 10 seconds to transcode. According to 
Windows' Sysinternals Process Explorer, the process *is* alive and executing.

A better solution?
Better would be a filter that accepts a template in lieu of time stamps. It would simply fetch and 
process the stream frames in the order they are presented to the inputs (fifo-style), and interleave 
the input streams according to the template.

In my case, the filter would have 3 inputs and the template would be: 1 1 2 1 1 1 1 3 1 1.

Do *you* know of such a filter? Or have a better idea?

Thanks,
Mark.


More information about the ffmpeg-user mailing list