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 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.
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 },
};
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 )
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.
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
orNO_COLOR
, or can be forced setting the environment variableAV_LOG_FORCE_COLOR
. The use of the environment variableNO_COLOR
is deprecated and will be dropped in a following FFmpeg version.
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:
O seguinte funcionou para mim no macOS:
ffmpeg -v quiet
ou apenas para ver o progresso:
ffmpeg -v quiet -stats
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
Tags ffmpeg