Question Comment puis-je rendre ffmpeg plus silencieux / moins verbeux?


Par défaut, ffmpeg envoie un grand nombre de messages à stderr: lors de la construction, de la manière dont ils ont été construits, des codecs, etc., etc.

Comment puis-je le rendre plus silencieux?

J'ai essayé -v 0 (et -v 10 puisque la documentation dit simplement Set the logging verbosity level. sans indication de la gamme des entrées) - toujours pas silencieux.

J'ai essayé -loglevel quiet - toujours pas tranquille.

Je devrais mentionner, je cherche "plus silencieux", pas "pas de sortie jamais". S'il y a une erreur, je veux la voir, mais je n'ai pas besoin d'entendre parler de la configuration de ffmpeg à chaque fois. unique. temps.


76
2017-08-22 21:59


origine


ffmpeg est certainement l'un de ceux "pour les développeurs, par les types de programmes des développeurs". - digitxp


Réponses:


Je ne l'ai pas testé, mais je vois une option dans la page de manuel à faire:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

Devrait faire en sorte que seules les erreurs graves sont enregistrées, en théorie


76
2018-01-12 00:59



Même avec -loglevel panic, pour moi, cela ne fait que réduire un peu la sortie - il imprime toujours des informations sur la version, le mappage des flux, les options de configuration (et même des informations sur les progrès!) .... des idées? Je devrais mentionner que c'est une version auto-compilée du dernier tronc svn. - codeling
le diriger vers le bucket:> / dev / null 2> & 1 - rogerdpack
@rogerdpack qui fonctionnerait pour la plupart des programmes, mais ffmpeg met tout son texte en sortie sur stderr, plutôt que sur stdout (cela permet de diriger la sortie de l'encodeur vers d'autres programmes), redirigeant ainsi stdout vers / dev / null wouldn ' t faire quelque chose d'utile. - evilsoup
En utilisant -hide_banner en plus d'un niveau de verbosité réduit serait un bon compromis. - Makaveli84
En plus de tout ce qui a été dit, -nostats désactivera la sortie de progression. - Ely


Ici, vous avez les niveaux de log du code source (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   },
    };

44
2018-06-18 11:54



Bien que les URL aient tendance à changer au fil du temps, il est bon de les inclure également comme source de réponse. Par exemple, ceci est actuellement documenté à ffmpeg.org/ffmpeg.html#toc-Generic-options et le lecteur saura où chercher dans les documents même si cette URL change. - Fr0zenFyr


ffmpeg -hide_banner -loglevel panic

Ceci est mentionné dans un commentaire ci-dessous la réponse actuelle.

L'option -hide_banner a été introduit fin 2013 - https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )


33
2018-02-24 19:37



cela devrait être la réponse acceptée - NineCattoRules
Meilleure réponse, cependant l'option -show-banner serait plus agréable que de la cacher - hetepeperfan
Peut-être ajouter -nostats, aussi? - Mikko Rantalainen


J'ai utilisé avec succès les éléments suivants (la plus récente version de FFMPEG au moment de la rédaction):

-nostats -loglevel 0

Ensuite, il est absolument silencieux dans mon scénario d'utilisation.


14
2017-08-12 06:41



satisfait de cette solution dans ffmpeg 3.2 - Bernhard Döbler


ffmpeg -loglevel error [other commands]

Cela masque la bannière et affiche uniquement les erreurs. Utilisation -loglevel warning si vous souhaitez voir des avertissements.

Testé dans Ffmpeg 3.0.2.

Du Documentation:

-loglevel [repeat +] loglevel | -v [répétition +] niveau de journalisation

Définissez le niveau de journalisation utilisé par la bibliothèque. Ajouter "repeat +" indique   cette sortie de journal répétée ne doit pas être compressée sur la première ligne   et la ligne "Dernier message répété n fois" sera omise. "répéter"   peut également être utilisé seul. Si "repeat" est utilisé seul et sans précédent   loglevel défini, le niveau de journalisation par défaut sera utilisé. Si plusieurs niveaux de logle   les paramètres sont donnés, utiliser 'repeat' ne changera pas le niveau de log.   loglevel est une chaîne ou un nombre contenant l'un des   valeurs suivantes:

'Calme, -8'

Ne rien montrer du tout soit silencieux.

'Panique, 0'

Afficher uniquement les erreurs fatales qui pourraient entraîner le blocage du processus, telles que   et affirmer l'échec. Ce n'est pas actuellement utilisé pour rien.

'Fatal, 8'

Afficher uniquement les erreurs fatales. Ce sont des erreurs après lesquelles le processus   ne peut absolument pas continuer après.

'Erreur, 16'

Afficher toutes les erreurs, y compris celles qui peuvent être récupérées.

'Avertissement, 24'

Afficher tous les avertissements et erreurs. Tout message lié à éventuellement   des événements incorrects ou inattendus seront affichés.

'Info, 32'

Afficher des messages informatifs pendant le traitement. Ceci est en plus de   avertissements et erreurs. Ceci est la valeur par défault.

'Verbose, 40'

Pareil que info, sauf plus verbeux.

'Debug, 48'

Tout afficher, y compris les informations de débogage.

'Trace, 56'

Par défaut, le programme se connecte à stderr, si la coloration est prise en charge par le programme.   terminal, les couleurs sont utilisées pour marquer les erreurs et les avertissements. Coloration du journal   peut être désactivé en définissant la variable d'environnement    AV_LOG_FORCE_NOCOLORou NO_COLOR, ou peut être forcé en définissant le   variable d'environnement AV_LOG_FORCE_COLOR. L'utilisation de l'environnement   variable NO_COLOR est obsolète et sera déposé dans une suite   Version FFmpeg.


11
2017-07-09 17:25





Vous pouvez utiliser stderr via grep. Par exemple, si vous souhaitez supprimer les informations de configuration, vous pouvez le faire comme ceci:

% ffmpeg -i infile.avi -s 640x480 outfile.avi >/dev/null 2>&1 | grep -v configuration:

1
2018-04-17 14:00



Je crois que cela doit être ffmpeg … 2>&1 >/dev/null | grep …. - Scott


C'est un peu cher pour y aller, mais en ajoutant >/dev/null 2>&1 est un moyen sûr de garder ffmpeg silencieux dans le shell.

Exemple

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

Plus d'infos sur la sortie de bash


-1
2017-08-23 05:08



Sauf que ffmpeg est en avance sur vous, et affiche à la fois des informations de configuration et réel erreurs à stderr. - blahdiblah