[FFmpeg-user] theoretical concurrency limitations

Anatol anatol2002 at gmail.com
Fri Sep 16 14:46:24 EEST 2016


There are ffmpeg instances/process and there are threads, although u did
not ask about them.
ffmpeg/x264 tends to use all existing CPU cores (Linux) to run a thread for
every ffmpeg instance/process.
This means that if u have 24 or 32 cores ffmpeg will run 24/32 concurrent
x264 encoding threads.
And this is HIGHLY un-recommended due to severe quality reduction.
Use at most 4-5 threads (via '-threads' operand) for every ffmpeg process.

According to my tests u can quite safely run number of ffmpeg processes
that is up to twice the number of CPU cores - 48 ffmpegs for server with 24
CPU
For higher factor (>2) the overhead becomes more significant.
At factor 4 and higher, the run-time is doubled and some of the processes
crashed.
It is possible that this kind of misbehavior was caused by disk NFS
problems, I did not go that far to investigate those issues.

There was no difference between 1 threaded and 4 threaded processes.

Tested with ffmpeg 2.3.1/2.7.2.
Although, I don't know how ffmpeg 3+ and newer x264 behaves, but I think
that it works the same


On Fri, Sep 16, 2016 at 2:00 PM, Carl Eugen Hoyos <ceffmpeg at gmail.com>
wrote:

> 2016-09-16 4:29 GMT+02:00 James Heliker <james.heliker at gmail.com>:
>
> > Basically, can someone tell me what factors should be considered
> > when determining how many instances of FFmpeg can be run
> > concurrently (efficiently) on a single machine?
>
> You mean apart from cpu, memory and disk bandwidth?
> (Assuming you are not using hardware acceleration.)
>
> Carl Eugen
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-user mailing list