====== Ubuntu - Video - Change ffmpeg -threads settings ======
The option flag you want is really just **-threads** and you would use it like this (for just one thread):
ffmpeg -i somefile.wmv -c:a libfdk_aac -c:v libx264 -threads 1 transcoded.mp4
However, there are quite a few subtleties that will raise your server load and ops time, such as rescaling, applying filters and final frame quality / frame rate - not to mention the fact that some VM architectures actually read and write everything twice (once natively and once virtually!!!)
Here are a few tips to get your speed up:
* use a queue, so that only one item is ever being transcoded at a time
* request smaller files from your users
* use the full horsepower of your machine by:
* reading and writing from a ramdisk
* switching to bare metal for transcoding tasks
* use -threads 0
----
===== Use docker =====
There is already a predefined ffmpeg image on github: https://github.com/jrottenberg/ffmpeg.
A single conversion will likely run slower because of the overhead but if you run multiple instances concurrently this could be a huge benefit.
Any this will scale very well, not to mention the improved security because each task is isolated from the underlying OS.
docker run jrottenberg/ffmpeg \
-i http://url/to/media.mp4 \
-stats \
$ffmpeg_options - > out.mp4