[FFmpeg-user] Using FFMPEG to encode multiple outputs in 'parallel' (doesn't work?)

Cley Faye cleyfaye at gmail.com
Thu Jun 29 00:41:29 EEST 2017

2017-06-28 22:56 GMT+02:00 shalin <shalin186 at gmail.com>:

> Piping only shows that I am trying to run all three ffmpeg transcode
> instances in parallel using single command line. If it makes any clearer,
> you can read them as three separate commands issued at the same time. With
> that, I hope we can focus on the concern raised in the original question.

‚ÄčThen you don't want pipes, you just want three parallel processes, which
you can do using &.

More to the point, as far as I know, ffmpeg will not do parallel treatment
on either input or output, as you deduced. It certainly is doable, but
don't seem trivial to implement in the ffmpeg CLI tool itself since that
tool must handle various cases, and introducing (more) special cases would
add complexity for not much benefits.

You should look in using the various ffmpeg libraries directly; with that
you could probably write it to decode once, encode multiple time. But
unless you have shockingly similar settings and unlimited processing power,
you'll most likely stall some of your encodings while other catch up with
them. I don't know how well ffmpeg libraries handle multithreading (I
suppose fairly well since most of it's operations are based on context
structures) but you'll have to do a fair amount of synchronization by hand.

More information about the ffmpeg-user mailing list