Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save eladkarako/05cb629c2bcf233c639c93b3ba434972 to your computer and use it in GitHub Desktop.

Select an option

Save eladkarako/05cb629c2bcf233c639c93b3ba434972 to your computer and use it in GitHub Desktop.
ffmpeg loglevel verbosity, and flags such as datetime and repeat, explained

Possible levels are (choose one):

level variable value meaning
quiet AV_LOG_QUIET -8 Print no output.
(empty) AV_LOG_PANIC 0 Something went really wrong and we will crash now.
fatal AV_LOG_FATAL 8 Something went wrong and recovery is not possible. For example, no header was found for a format which depends, on headers or an illegal combination of parameters is used.
error AV_LOG_ERROR 16 Something went wrong and cannot losslessly be recovered. However, not all future data is affected.
warning AV_LOG_WARNING 24 Something somehow does not look correct. This may or may not lead to problems. An example would be the use of '-vstrict -2'.
info AV_LOG_INFO 32 Standard information.
verbose AV_LOG_VERBOSE 40 Detailed information.
debug AV_LOG_DEBUG 48 Stuff which is only useful for libav* developers.
trace AV_LOG_TRACE 56 Extremely verbose debugging, useful for libav* development.

Possible flags are (can be combined, with + and -):

level variable value meaning
repeat AV_LOG_SKIP_REPEATED 1 Skip repeated messages, this requires the user app to use av_log() instead of (f)printf as the 2 would otherwise interfere and lead to "Last message repeated x times" messages below (f)printf messages with some bad luck. Also to receive the last, "last repeated" line if any, the user app must call av_log(NULL, AV_LOG_QUIET, "%s", ""); at the end.
level AV_LOG_PRINT_LEVEL 2 Include the log severity in messages originating from codecs. Results in messages such as: [rawvideo @ 0xDEADBEEF] [error] encode did not produce valid pts.
time AV_LOG_PRINT_TIME 4 Include system time in log output.
datetime AV_LOG_PRINT_DATETIME 8 Include system date and time in log output.

appending flags is done like this: (optionally wrap with "" for Windows)

ffmpeg -loglevel "repeat+quiet"
ffmpeg -loglevel "datetime+repeat+quiet"
ffmpeg -loglevel "-datetime-repeat-level+quiet"

example for using integer value.

instead of using -report
which implicitly uses 48 - debug (and ignores -loglevel and -v).

you can set an environment variable named FFREPORT (and remove -report),
its value should be non-empty to the default (same as including -report which will be using debug verbosity level),
or key1=value1:key2=value2

on Windows set "FFREPORT=level=32" will set the verbosity of the log file generated to info.

it also supports file= which can be used to override the default filename template.
you can use %p for program - ffmpeg, %t - timestamp, %% - %,
when using from cmd you might need to add one more % to escape it before it reaches ffmpeg.


how to combine values

use OR to combine flags and a level.

+datetime+repeat+info = 8 | 1 | 32 = 41


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment