सवाल मैं ffmpeg को शांत / कम वर्बोज़ कैसे बना सकता हूं?


डिफ़ॉल्ट रूप से ffmpeg stderr को एक संपूर्ण लॉटा संदेश भेजता है: जब बनाया गया, कैसे बनाया गया, कोडेक्स, आदि, इत्यादि।

मैं इसे शांत कैसे कर सकता हूं?

मैंने कोशिश की -v 0 (तथा -v 10 चूंकि प्रलेखन सिर्फ कोयली कहते हैं Set the logging verbosity level. इनपुट की सीमा क्या है इसका कोई संकेत नहीं है) - अभी भी शांत नहीं है।

मैंने कोशिश की -loglevel quiet - अभी भी शांत नहीं है।

मुझे जिक्र करना चाहिए, मैं "शांत" की तलाश में हूं, "कोई आउटपुट कभी नहीं"। अगर कोई त्रुटि है तो मैं इसे देखना चाहता हूं, लेकिन मुझे ffmpeg की कॉन्फ़िगरेशन के बारे में सुनने की आवश्यकता नहीं है। एक। पहर।


84
2017-08-22 21:59


मूल


ffmpeg निश्चित रूप से डेवलपर्स के लिए डेवलपर्स के कार्यक्रमों में से एक है। - digitxp


जवाब:


मैंने इसका परीक्षण नहीं किया है, लेकिन मुझे मैन पेज में ऐसा करने का विकल्प दिखाई देता है:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

इसे बनाना चाहिए, सिद्धांत में, केवल गंभीर त्रुटियां लॉग इन हैं


82
2018-01-12 00:59



भी साथ -loglevel panic, मेरे लिए यह केवल थोड़ी कम उत्पादन को कम कर रहा है - यह अभी भी संस्करण की जानकारी, स्ट्रीम मैपिंग, कॉन्फ़िगरेशन विकल्प, और यहां तक ​​कि प्रगति की जानकारी प्रिंट करता है ....) कोई विचार? मुझे यह उल्लेख करना पड़ सकता है कि यह नवीनतम svn ट्रंक से एक स्वयं संकलित संस्करण है। - codeling
इसे थोड़ा बाल्टी पर पाइप करें:> / dev / null 2> और 1 - rogerdpack
@rogerdpack जो अधिकांश प्रोग्रामों के लिए काम करेगा, लेकिन ffmpeg stdout के बजाय अपने सभी टेक्स्ट आउटपुट को stderr में रखता है (यह ऐसा करता है ताकि आप अन्य प्रोग्रामों में एन्कोडर आउटपुट पाइप कर सकें), इसलिए stdout को / dev / null को रीडायरेक्ट करना ' कुछ भी उपयोगी नहीं है। - evilsoup
का उपयोग करते हुए -hide_banner एक कम verbosity स्तर के अलावा एक अच्छा समझौता होगा। - Makaveli84
कहा गया है कि सब कुछ के अलावा, -nostats प्रगति उत्पादन अक्षम कर देगा। - Ely


यहां आपके पास स्रोत कोड से Loglevels हैं (FFmpeg संस्करण 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   },
    };

47
2018-06-18 11:54



हालांकि यूआरएल समय के साथ बदलते हैं, फिर भी उन्हें अपने उत्तर के स्रोत के रूप में शामिल करना अच्छा होता है। उदाहरण के लिए, वर्तमान में यह दस्तावेज है ffmpeg.org/ffmpeg.html#toc-Generic-options और पाठक यह पता चलेगा कि यह यूआरएल बदलता है भले ही दस्तावेज़ों में कहां देखना है। - Fr0zenFyr


ffmpeg -hide_banner -loglevel panic

यह वर्तमान उत्तर के नीचे एक टिप्पणी में उल्लिखित है।

विकल्प -hide_banner 2013 के अंत में पेश किया गया था - https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )


37
2018-02-24 19:37



यह स्वीकार्य उत्तर होना चाहिए - NineCattoRules
सबसे अच्छा जवाब, हालांकि विकल्प-शो-बैनर इसे छिपाने से बेहतर होगा - hetepeperfan
शायद जोड़ें -nostatsभी? - Mikko Rantalainen


मैंने निम्नलिखित सफलता के साथ उपयोग किया है (लेखन के समय नवीनतम एफएफएमपीईजी संस्करण):

-nostats -loglevel 0

फिर यह मेरे उपयोग परिदृश्य में बिल्कुल शांत है।


14
2017-08-12 06:41



ffmpeg 3.2 में इस समाधान से संतुष्ट - Bernhard Döbler


ffmpeg -loglevel error [other commands]

यह बैनर छुपाता है और केवल त्रुटियों को प्रदर्शित करता है। उपयोग -loglevel warning अगर आप चेतावनियां देखना चाहते हैं।

Ffmpeg 3.0.2 में परीक्षण किया गया।

वहाँ से प्रलेखन:

-लोगेलवेल [दोहराना +] loglevel | -v [दोहराना +] loglevel

लाइब्रेरी द्वारा उपयोग किए जाने वाले लॉगिंग स्तर को सेट करें। "दोहराना +" जोड़ना इंगित करता है   कि बार-बार लॉग आउटपुट को पहली पंक्ति में संपीड़ित नहीं किया जाना चाहिए   और "अंतिम संदेश दो बार दोहराया गया" लाइन छोड़ी जाएगी। "दोहराने"   अकेले भी इस्तेमाल किया जा सकता है। यदि "दोहराना" अकेले उपयोग किया जाता है, और बिना किसी पूर्व के   loglevel सेट, डिफ़ॉल्ट loglevel का उपयोग किया जाएगा। यदि एकाधिक loglevel   पैरामीटर दिए जाते हैं, 'दोहराना' का उपयोग करके loglevel नहीं बदलेगा।   loglevel एक स्ट्रिंग या एक संख्या है जिसमें से एक है   निम्नलिखित मान:

'शांत, -8'

कुछ भी नहीं दिखाओ; चुप हो।

'आतंक, 0'

केवल घातक त्रुटियां दिखाएं जो प्रक्रिया को क्रैश करने के लिए नेतृत्व कर सकती हैं, जैसे कि   और असफलता का दावा करें। यह वर्तमान में किसी भी चीज़ के लिए उपयोग नहीं किया जाता है।

'घातक, 8'

केवल घातक त्रुटियां दिखाएं। ये त्रुटियां हैं जिसके बाद प्रक्रिया   बिल्कुल जारी नहीं रह सकते हैं।

'त्रुटि, 16'

सभी त्रुटियों को दिखाएं, जिनमें से कुछ भी वसूल किए जा सकते हैं।

'चेतावनी, 24'

सभी चेतावनियां और त्रुटियां दिखाएं। संभवतः संबंधित कोई भी संदेश   गलत या अप्रत्याशित घटनाएं दिखायी जाएंगी।

'जानकारी, 32'

प्रसंस्करण के दौरान सूचनात्मक संदेश दिखाएं। यह इसके अलावा है   चेतावनियां और त्रुटियां। यह व्यतिक्रम मूल्य है।

'वर्बोज़, 40'

के समान info, अधिक verbose को छोड़कर।

'डीबग, 48'

डीबगिंग जानकारी सहित सबकुछ दिखाएं।

'ट्रेस, 56'

डिफॉल्ट रूप से प्रोग्राम stderr पर लॉग करता है, अगर रंग समर्थित है   टर्मिनल, रंगों को त्रुटियों और चेतावनियों को चिह्नित करने के लिए उपयोग किया जाता है। लॉग रंग   पर्यावरण चर सेटिंग अक्षम किया जा सकता है    AV_LOG_FORCE_NOCOLORया NO_COLOR, या स्थापित करने के लिए मजबूर किया जा सकता है   वातावरण विविधता AV_LOG_FORCE_COLOR। पर्यावरण का उपयोग   परिवर्तनशील NO_COLOR बहिष्कृत है और निम्नलिखित में गिरा दिया जाएगा   एफएफएमपीईजी संस्करण।


13
2017-07-09 17:25





आप grep के माध्यम से पाइप stderr कर सकते हैं। उदाहरण के लिए, यदि आप कॉन्फ़िगरेशन जानकारी को हटाना चाहते हैं, तो आप इसे इस तरह से कर सकते हैं:

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

1
2018-04-17 14:00



मुझे विश्वास है कि होने की आवश्यकता हो सकती है ffmpeg … 2>&1 >/dev/null | grep …। - Scott


निम्नलिखित मैकोज़ पर मेरे लिए काम किया:

ffmpeg -v quiet

या केवल प्रगति को देखने के लिए:

ffmpeg -v quiet -stats

0
2017-10-04 16:04





इसके बारे में जाने के लिए यह थोड़ा सस्ता है, लेकिन संलग्न है >/dev/null 2>&1 खोल में ffmpeg चुप रखने के लिए एक निश्चित तरीका है।

उदाहरण

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

बैश आउटपुट के बारे में अधिक जानकारी


-1
2017-08-23 05:08



सिवाय इसके कि ffmpeg आपके आगे एक कदम आगे है, और कॉन्फ़िगरेशन जानकारी दोनों आउटपुट करता है और वास्तविक stderr करने के लिए त्रुटियों। - blahdiblah