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

Wie kann ich ffmpeg dazu bringen, leiser/weniger wortreich zu sein?

Standardmäßig sendet ffmpeg eine ganze Reihe von Meldungen an stderr: wann es gebaut wurde, wie es gebaut wurde, Codecs, etc, etc, etc.

Wie kann ich es leiser machen?

Ich habe es mit -v 0 versucht (und -v 10, da die Dokumentation nur schüchtern Set the logging verbosity level. sagt, ohne einen Hinweis auf den Bereich der Eingaben zu geben) – immer noch nicht leise.

Ich habe es mit -loglevel quiet versucht – immer noch nicht leise.

Ich sollte erwähnen, dass ich nach “leiser” suche, nicht nach “überhaupt keine Ausgabe”. Wenn es einen Fehler gibt, möchte ich ihn sehen, aber ich muss nicht jedes Mal etwas über die Konfiguration von ffmpeg hören.

Antworten (9)

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

Ich habe es nicht ausprobiert, aber ich sehe eine Option in der Manpage, die folgendes tut:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

Sollte dafür sorgen, dass nur schwere Fehler protokolliert werden, theoretisch

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

ffmpeg -hide_banner -loglevel panic

Darauf wird in einem Kommentar unterhalb der aktuellen Antwort angespielt.

Die Option -hide_banner wurde Ende 2013 eingeführt – https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )

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

Hier haben Sie Loglevels aus dem Quellcode (FFmpeg Version 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

Ich habe mit Erfolg folgendes verwendet (neueste FFMPEG-Version zum Zeitpunkt des Schreibens):

-nostats -loglevel 0

Dann ist es in meinem Nutzungsszenario absolut ruhig.

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

Damit wird das Banner ausgeblendet und nur Fehler angezeigt. Verwenden Sie -loglevel warning, wenn Sie Warnungen sehen möchten.

Getestet in Ffmpeg 3.0.2.

Aus der Dokumentation :

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

Legen Sie die von der Bibliothek verwendete Protokollierungsstufe fest. Das Hinzufügen von “repeat+” zeigt an, dass wiederholte Log-Ausgaben nicht auf die erste Zeile komprimiert werden sollen und die Zeile “Last message repeated n times” weggelassen wird. “repeat” kann auch allein verwendet werden. Wenn “repeat” allein verwendet wird und kein vorheriger Loglevel festgelegt wurde, wird der Standard-Loglevel verwendet. Wenn mehrere Loglevel-Parameter angegeben werden, wird die Verwendung von “repeat” den Loglevel nicht ändern. loglevel ist eine Zeichenkette oder eine Zahl, die einen der folgenden Werte enthält:

‘quiet, -8’

Überhaupt nichts anzeigen; still sein.

‘panic, 0’

Zeigt nur schwerwiegende Fehler an, die den Prozess zum Absturz bringen könnten, wie z. B. und Assert-Fehler. Dies wird derzeit für nichts verwendet.

‘fatal, 8’

Nur fatale Fehler anzeigen. Dies sind Fehler, nach denen der Prozess absolut nicht mehr fortgesetzt werden kann.

‘error, 16’

Alle Fehler anzeigen, auch solche, die behoben werden können.

‘warning, 24’

Alle Warnungen und Fehler anzeigen. Alle Meldungen, die sich auf möglicherweise fehlerhafte oder unerwartete Ereignisse beziehen, werden angezeigt.

‘info, 32’

Zeigt informative Meldungen während der Verarbeitung. Dies geschieht zusätzlich zu den Warnungen und Fehlern. Dies ist der Standardwert.

‘verbose, 40’

Wie info, nur ausführlicher.

‘debug, 48’

Alles anzeigen, einschließlich Debugging-Informationen.

‘trace, 56’

Standardmäßig protokolliert das Programm auf stderr, wenn die Farbgebung vom Terminal unterstützt wird, werden Farben verwendet, um Fehler und Warnungen zu markieren. Die Einfärbung des Protokolls kann durch Setzen der Umgebungsvariablen AV_LOG_FORCE_NOCOLOR oder NO_COLOR deaktiviert oder durch Setzen der Umgebungsvariablen AV_LOG_FORCE_COLOR erzwungen werden. Die Verwendung der Umgebungsvariablen NO_COLOR ist veraltet und wird in einer folgenden FFmpeg-Version entfallen.

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

Folgendes hat bei mir unter macOS funktioniert:

ffmpeg -v quiet

oder um nur den Fortschritt zu sehen:

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

Sie können stderr durch grep leiten. Wenn Sie z. B. die Konfigurationsinformationen entfernen möchten, könnten Sie dies so tun:

% 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

Nur die Fehler, sonst nichts.

Mir persönlich gefällt dies am besten;

ffmpeg -loglevel warning -hide_banner -stats

Es gibt nur Warnungen und Fehler, zeigt aber auch den Arbeitsfortschritt an.

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

Dies ist eine etwas billige Vorgehensweise, aber das Anhängen von >/dev/null 2>&1 ist ein sicherer Weg, um ffmpeg in der Shell still zu halten.

Beispiel

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

Mehr Infos zur Bash-Ausgabe