Como posso tornar o ffmpeg mais silencioso / menos detalhado?

84

Por padrão, o ffmpeg envia uma mensagem inteira para o stderr: quando construído, como construído, codecs, etc, etc, etc.

Como posso torná-lo mais silencioso?

Eu tentei -v 0 (e -v 10 , pois a documentação simplesmente diz Set the logging verbosity level. sem nenhuma indicação de qual é o intervalo de entradas) - ainda não está silenciosa.

Eu tentei -loglevel quiet - ainda não silencioso.

Devo mencionar que estou procurando por "mais silencioso" e não "sem saída". Se houver um erro, quero vê-lo, mas não preciso ouvir sobre a configuração do ffmpeg. solteiro. tempo.

    
por blahdiblah 22.08.2011 / 23:59

8 respostas

82

Eu não testei, mas vejo uma opção na man page para fazer:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

Deve fazer com que apenas erros sérios sejam registrados, em teoria

    
por 12.01.2012 / 01:59
47

Aqui você tem loglevels do código-fonte (versão 0.10.2.git do FFmpeg)

const struct { const char *name; int level; } log_levels[] = {
        { "quiet"  , AV_LOG_QUIET   },
        { "panic"  , AV_LOG_PANIC   },
        { "fatal"  , AV_LOG_FATAL   },
        { "error"  , AV_LOG_ERROR   },
        { "warning", AV_LOG_WARNING },
        { "info"   , AV_LOG_INFO    },
        { "verbose", AV_LOG_VERBOSE },
        { "debug"  , AV_LOG_DEBUG   },
    };
    
por 18.06.2012 / 13:54
37

ffmpeg -hide_banner -loglevel panic

Isso é mencionado em um comentário abaixo da resposta atual.

A opção -hide_banner foi introduzida no final de 2013 - link )

    
por 24.02.2016 / 20:37
14

Eu usei com sucesso o seguinte (a mais nova versão do FFMPEG no momento da escrita):

-nostats -loglevel 0

Então é absolutamente silencioso no meu cenário de uso.

    
por 12.08.2015 / 08:41
13
ffmpeg -loglevel error [other commands]

Isso oculta o banner e exibe apenas erros. Use -loglevel warning se você gostaria de ver avisos.

Testado no Ffmpeg 3.0.2.

A partir da documentação :

-loglevel [repeat+]loglevel | -v [repeat+]loglevel

Set the logging level used by the library. Adding "repeat+" indicates that repeated log output should not be compressed to the first line and the "Last message repeated n times" line will be omitted. "repeat" can also be used alone. If "repeat" is used alone, and with no prior loglevel set, the default loglevel will be used. If multiple loglevel parameters are given, using ’repeat’ will not change the loglevel. loglevel is a string or a number containing one of the following values:

‘quiet, -8’

Show nothing at all; be silent.

‘panic, 0’

Only show fatal errors which could lead the process to crash, such as and assert failure. This is not currently used for anything.

‘fatal, 8’

Only show fatal errors. These are errors after which the process absolutely cannot continue after.

‘error, 16’

Show all errors, including ones which can be recovered from.

‘warning, 24’

Show all warnings and errors. Any message related to possibly incorrect or unexpected events will be shown.

‘info, 32’

Show informative messages during processing. This is in addition to warnings and errors. This is the default value.

‘verbose, 40’

Same as info, except more verbose.

‘debug, 48’

Show everything, including debugging information.

‘trace, 56’

By default the program logs to stderr, if coloring is supported by the terminal, colors are used to mark errors and warnings. Log coloring can be disabled setting the environment variable AV_LOG_FORCE_NOCOLOR or NO_COLOR, or can be forced setting the environment variable AV_LOG_FORCE_COLOR. The use of the environment variable NO_COLOR is deprecated and will be dropped in a following FFmpeg version.

    
por 09.07.2016 / 19:25
1

Você pode canalizar stderr através do grep. Por exemplo, se você quisesse remover as informações de configuração, poderia fazer assim:

% ffmpeg -i infile.avi -s 640x480 outfile.avi >/dev/null 2>&1 | grep -v configuration:
    
por 17.04.2013 / 16:00
0

O seguinte funcionou para mim no macOS:

ffmpeg -v quiet

ou apenas para ver o progresso:

ffmpeg -v quiet -stats
    
por 04.10.2018 / 18:04
-1

Isso é um pouco barato, mas anexar >/dev/null 2>&1 é uma maneira de manter o ffmpeg silencioso no shell.

Exemplo

ffmpeg -f x11grab -y -r 24 -s 800x600 -i :0.0+1366,100 -f oss -i /dev/dsp3 -sameq ./out.avi >/dev/null 2>&1

Mais informações sobre o bash output

    
por 23.08.2011 / 07:08

Tags