Legend:

There are numerous avenues to extract maximum performance out of FFmpeg when it is built from source. The following list describes some of them:

34

34

35

* If using {{{GCC}}}, consider adding {{{-ftree-vectorize}}} to {{{--extra-cflags}}}. Most recent versions of {{{GCC}}} do not miscompile FFmpeg with the auto-vectorizer enabled, and can easily reap a general 1-2% increase in performance from a FATE run ({{{make fate-rsync; make fate}}}), with gains varying across the codebase and compiler version. However, the project does not currently maintain a list of compiler versions under which the vectorizer works correctly, since even recent releases like {{{4.8.0}}} had problems. Therefore, {{{configure}}} by default disables the auto-vectorizer on {{{GCC}}}, and it must be enabled by the user explicitly if desired, such as via the method outlined above. It is highly advised to test at least a FATE run to ensure that things work correctly when the auto-vectorizer is turned on.

36

37

35

* If using {{{GCC/Clang}}}, consider adding {{{-march=native}}} to {{{--extra-cflags}}} to make slightly better use of your hardware. Alternatively, for a more general solution, examine the {{{--arch}}} and {{{--cpu}}} options. Gains are variable, and usually quite small. However, this is usually even more safe than the above, and is thus listed here.