2011-08-22 21:59:57 +0000 2011-08-22 21:59:57 +0000
132
132

Como posso fazer com que ffmpeg seja mais silencioso/menos verboso?

Por defeito, ffmpeg envia um monte de mensagens para stderr: quando construído, como foi construído, codecs, etc, etc, etc, etc.

Como posso torná-lo mais silencioso?

Tentei -v 0 (e -v 10 uma vez que a documentação apenas diz timidamente Set the logging verbosity level. sem qualquer indicação de qual é a gama de entradas) – ainda não silencioso.

Tentei -loglevel quiet – ainda não silencioso.

Devo mencionar que estou à procura de “mais silencioso”, e não de “nenhuma saída jamais”. Se houver um erro, quero vê-lo, mas não preciso de ouvir falar da configuração do ffmpeg todas as vezes.

Respostas (9)

122
122
122
2012-01-12 00:59:37 +0000

Ainda não o testei, mas vejo uma opção na página de homem a fazer:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

Deve fazer com que apenas os erros graves sejam registados, em teoria

92
92
92
2016-02-24 19:37:56 +0000

ffmpeg -hide_banner -loglevel panic

Isto é aludido num comentário abaixo da resposta actual.

A opção -hide_banner foi introduzida no final de 2013 – https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )

58
58
58
2012-06-18 11:54:37 +0000

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

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 },
    };
21
21
21
2015-08-12 06:41:29 +0000

Utilizei com sucesso o seguinte (mais recente versão FFMPEG na altura da redacção):

-nostats -loglevel 0

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

18
18
18
2016-07-09 17:25:13 +0000
ffmpeg -loglevel error [other commands]

Isto esconde o banner e exibe apenas erros. Utilize -loglevel warning& se desejar ver avisos.

Testado em Ffmpeg 3.0.2.

A partir da documentação :

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

& > Definir o nível de registo utilizado pela biblioteca. A adição de “repeat+” indica que a saída de registo repetido não deve ser comprimida na primeira linha e a linha “Last message repeated n times” será omitida. A “repeat” também pode ser usada sozinha. Se “repeat” for utilizada sozinha, e sem o nível de registo prévio definido, será utilizado o nível de registo predefinido. Se forem dados múltiplos parâmetros de nível de registo, a utilização de “repeat” não alterará o nível de registo. nível de registo é uma string ou um número que contém um dos seguintes valores:

& > ‘silencioso, -8’ & > Não mostrar nada; ser silencioso.

& > ‘panic, 0’ & > Mostrar apenas erros fatais que possam levar o processo a falhar, tais como e afirmar o fracasso. Isto não é actualmente utilizado para nada.

& > ‘fatal, 8’ & > Mostrar apenas erros fatais. Estes são erros após os quais o processo não pode absolutamente continuar depois.

& > ‘erro, 16’ & > Mostrar todos os erros, incluindo os que podem ser recuperados.

& > ‘warning, 24’ & > Mostrar todos os avisos e erros. Qualquer mensagem relacionada com eventos possivelmente incorrectos ou inesperados será mostrada.

& > ‘info, 32’ & > Mostrar mensagens informativas durante o processamento. Isto para além de avisos e erros. Este é o valor por defeito.

& > ‘verbose, 40’ & > O mesmo que info, excepto mais verbose.

& > ‘debug, 48’ & > Mostrar tudo, incluindo informação de depuração.

& > ‘trace, 56’ & > & > Por defeito o programa regista para stderr, se a coloração for suportada pelo terminal, as cores são usadas para marcar erros e avisos. A coloração dos registos pode ser desactivada definindo a variável de ambiente AV_LOG_FORCE_NOCOLOR ou NO_COLOR, ou pode ser forçada a definir a variável de ambiente AV_LOG_FORCE_COLOR. A utilização da variável de ambiente NO_COLOR é depreciada e será abandonada numa versão FFmpeg seguinte.

5
5
5
2018-10-04 16:04:12 +0000

O seguinte funcionou para mim em macOS:

ffmpeg -v quiet

ou apenas para ver o progresso:

ffmpeg -v quiet -stats
3
3
3
2013-04-17 14:00:47 +0000

Pode canalizar stderr através do grep. Por exemplo, se quisesse remover as informações de configuração, poderia fazê-lo desta forma:

% ffmpeg -i infile.avi -s 640x480 outfile.avi >/dev/null 2>&1 | grep -v configuration:
0
0
0
2019-05-30 01:41:51 +0000

ffmpeg -loglevel error -hide_banner -nostats

Apenas os erros, nada mais.

Eu pessoalmente gosto mais disto;

ffmpeg -loglevel warning -hide_banner -stats

Só dá avisos e erros, mas também mostra o progresso do trabalho.

0
0
0
2011-08-23 05:08:56 +0000

Isto é um pouco barato, mas anexar >/dev/null 2>&1 é uma forma segura de manter o ffmpeg em silêncio na casca.

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ção sobre bash output