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

Jak mogę sprawić, żeby ffmpeg był cichszy/mniej verbose?

Domyślnie ffmpeg wysyła całą masę wiadomości na stderr: kiedy został zbudowany, jak został zbudowany, kodeki, itd, itd, itd.

*Jak mogę sprawić, żeby było ciszej? *

Próbowałem -v 0 (i -v 10, ponieważ dokumentacja nieśmiało mówi o Set the logging verbosity level. bez wskazania zakresu wejść) – wciąż nie jest cicho.

Próbowałem -loglevel quiet – nadal nie jest cicho.

Powinienem wspomnieć, że szukam “ciszej”, a nie “brak wyjścia kiedykolwiek”. Jeśli jest jakiś błąd, chcę go zobaczyć, ale nie muszę słyszeć o konfiguracji ffmpeg za każdym razem.

Odpowiedzi (9)

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

Nie testowałem tego, ale widzę opcję na stronie man, aby zrobić:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

Powinno to sprawić, że tylko poważne błędy będą logowane, w teorii

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

ffmpeg -hide_banner -loglevel panic

Jest to nawiązanie do tego w komentarzu poniżej aktualnej odpowiedzi.

Opcja -hide_banner została wprowadzona pod koniec 2013 roku – https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )

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

Tutaj masz loglevels z kodu źródłowego (FFmpeg wersja 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

Używałem z powodzeniem następujących (najnowsza wersja FFMPEG w momencie pisania tego tekstu):

-nostats -loglevel 0

Wtedy jest absolutnie cicho w moim scenariuszu użytkowania.

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

To ukrywa baner i wyświetla tylko błędy. Użyj -loglevel warning jeśli chcesz zobaczyć ostrzeżenia.

Przetestowane w Ffmpeg 3.0.2.

Z dokumentacji :

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

Ustawia poziom logowania używany przez bibliotekę. Dodanie “repeat+” oznacza, że powtarzane logi nie powinny być kompresowane do pierwszej linii, a linia “Ostatnia wiadomość powtórzona n razy” będzie pomijana. “repeat” może być również użyte samodzielnie. Jeśli “repeat” zostanie użyte samo, bez wcześniejszego ustawienia poziomu logów, użyty zostanie domyślny poziom logów. Jeśli podano wiele parametrów poziomu logu, to użycie ‘repeat’ nie zmieni poziomu logu. loglevel jest łańcuchem lub liczbą zawierającą jedną z następujących wartości:

‘quiet, -8’

Nic nie pokazuj; bądź cichy.

‘panic, 0’

Pokazuje tylko błędy śmiertelne, które mogą doprowadzić do załamania procesu, takie jak awaria asercji. To nie jest obecnie używane do niczego.

‘fatal, 8’

Pokazuje tylko błędy śmiertelne. Są to błędy, po których proces absolutnie nie może kontynuować.

‘error, 16’

Pokaż wszystkie błędy, także te, z których można wyjść.

‘warning, 24’

Pokaż wszystkie ostrzeżenia i błędy. Pokazane zostaną wszystkie komunikaty związane z potencjalnie błędnymi lub nieoczekiwanymi zdarzeniami.

‘info, 32’

Pokaż komunikaty informacyjne podczas przetwarzania. Jest to dodatek do ostrzeżeń i błędów. Jest to wartość domyślna.

‘verbose, 40’

To samo co info, tylko bardziej dosadne.

‘debug, 48’

Pokaż wszystko, łącznie z informacjami o debugowaniu.

‘trace, 56’

Domyślnie program wypisuje logi na stderr, jeśli terminal obsługuje kolorowanie, kolory są używane do zaznaczania błędów i ostrzeżeń. Kolorowanie logów można wyłączyć ustawiając zmienną środowiskową AV_LOG_FORCE_NOCOLOR lub NO_COLOR, lub wymusić ustawiając zmienną środowiskową AV_LOG_FORCE_COLOR. Użycie zmiennej środowiskowej NO_COLOR jest przestarzałe i zostanie usunięte w następnej wersji FFmpeg.

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

Na macOS działały mi następujące sposoby:

ffmpeg -v quiet

lub aby zobaczyć tylko postęp:

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

Możesz przekazać stderr przez grep. Na przykład, jeśli chcesz usunąć informacje o konfiguracji, możesz to zrobić w ten sposób:

% 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

Tylko błędy, nic więcej.

Osobiście najbardziej podoba mi się ta opcja;

ffmpeg -loglevel warning -hide_banner -stats

Daje tylko ostrzeżenia i błędy, ale także pokazuje postęp pracy.

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

Jest to trochę tani sposób, ale dołączenie >/dev/null 2>&1 jest pewnym sposobem na zachowanie ciszy w powłoce.

Przykład

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

Więcej informacji o wyjściu bash