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

Come posso rendere ffmpeg più silenzioso/meno verboso?

Di default ffmpeg invia un sacco di messaggi a stderr: quando è stato costruito, come è stato costruito, codec, ecc, ecc, ecc.

*Come posso renderlo più silenzioso? *

Ho provato -v 0 (e -v 10 visto che la documentazione dice solo timidamente Set the logging verbosity level. senza indicare quale sia la gamma di input) – ancora non è tranquillo.

Ho provato -loglevel quiet – ancora non è tranquillo.

dovrei menzionare, sto cercando “più tranquillo”, non “nessuna uscita mai”. Se c'è un errore voglio vederlo, ma non ho bisogno di sentire la configurazione di ffmpeg ogni singola volta.

Risposte (9)

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

Non l'ho provato, ma vedo un'opzione nella pagina man per fare:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

Dovrebbe fare in modo che solo gli errori gravi siano registrati, in teoria

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

ffmpeg -hide_banner -loglevel panic

A questo si allude in un commento sotto la risposta attuale.

L'opzione -hide_banner è stata introdotta alla fine del 2013 – https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )

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

Qui avete i loglevel dal codice sorgente (FFmpeg versione 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

Ho usato con successo le seguenti (versione FFMPEG più recente al momento della scrittura):

-nostats -loglevel 0

Allora è assolutamente tranquillo nel mio scenario di utilizzo.

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

Questo nasconde il banner e mostra solo gli errori. Usa -loglevel warning se vuoi vedere gli avvertimenti.

Testato in Ffmpeg 3.0.2.

Dalla documentazione :

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

Imposta il livello di log usato dalla libreria. L'aggiunta di “repeat+” indica che l'output di log ripetuto non dovrebbe essere compresso alla prima linea e la linea “Last message repeated n times” sarà omessa. “repeat” può anche essere usato da solo. Se “repeat” è usato da solo, e senza un loglevel precedente impostato, verrà usato il loglevel di default. Se vengono dati più parametri di loglevel, l'uso di “repeat” non cambierà il loglevel. loglevel è una stringa o un numero contenente uno dei seguenti valori:

‘quiet, -8’

Non mostrare nulla; essere silenzioso.

‘panic, 0’

Mostra solo gli errori fatali che potrebbero portare il processo al crash, come il fallimento di un assert. Questo non è attualmente usato per niente.

‘fatal, 8’

Mostra solo errori fatali. Questi sono errori dopo i quali il processo non può assolutamente continuare.

‘error, 16’

Mostra tutti gli errori, inclusi quelli da cui si può recuperare.

‘warning, 24’

Mostra tutti gli avvisi e gli errori. Verrà mostrato qualsiasi messaggio relativo a possibili eventi errati o inaspettati.

‘info, 32’

Mostra messaggi informativi durante l'elaborazione. Questo è in aggiunta agli avvertimenti e agli errori. Questo è il valore predefinito.

‘verbose, 40’

Come info, ma più prolisso.

‘debug, 48’

Mostra tutto, incluse le informazioni di debug.

‘trace, 56’

Di default il programma registra su stderr, se la colorazione è supportata dal terminale, i colori sono usati per marcare errori e avvisi. La colorazione dei log può essere disabilitata impostando la variabile d'ambiente AV_LOG_FORCE_NOCOLOR o NO_COLOR, o può essere forzata impostando la variabile d'ambiente AV_LOG_FORCE_COLOR. L'uso della variabile d'ambiente NO_COLOR è deprecato e sarà abbandonato in una versione successiva di FFmpeg.

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

Il seguente ha funzionato per me su macOS:

ffmpeg -v quiet

o per vedere solo il progresso:

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

Si può fare un pipe stderr attraverso grep. Per esempio, se volete rimuovere le informazioni di configurazione, potete fare così:

% 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

Solo gli errori, nient'altro.

Personalmente mi piace di più questo;

ffmpeg -loglevel warning -hide_banner -stats

Dà solo avvertimenti ed errori, ma mostra anche il progresso del lavoro.

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

Questo è un po’ economico, ma aggiungere >/dev/null 2>&1 è un modo sicuro per mantenere ffmpeg silenzioso nella shell.

Esempio

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

Maggiori informazioni sull'output di bash