ffmpegをより静か/冗長にするにはどうすればよいですか?


117

デフォルトでは、ffmpegは、多くのメッセージをstderrに送信します:ビルド時、ビルド方法、コーデックなど、など。

どうすれば静かにできますか?

私は試しました-v 0(そして-v 10、ドキュメントSet the logging verbosity level.は入力の範囲が何であるかを示すことなく単に内気に言っているだけです)-まだ静かではありません。

試しましたが、-loglevel quietまだ静かではありません。

言及しなければならないのは、「出力がない」ではなく「静か」を探しているということです。エラーがある場合、私はそれを見たいのですが、ffmpegの設定について毎回聞く必要はありません。シングル。時間。


14
ffmpegは間違いなく「開発者向け、開発者向け」の種類のプログラムの1つです。
digitxp

1
を使用し-loglevel quiet -statsます。
fredsbend

または-loglevel error -stats、「回復可能なエラーを含む」エラーが表示され、使用-statsすると、エンコードの進行状況と統計行が確実に印刷されます。-loglevelからerrorに変更するwarningと多少冗長になりますが、1つのターミナルページに収まります。
マットスト

回答:


66

ffmpeg -hide_banner -loglevel panic

これは、現在の回答の下のコメントで暗示されています。

このオプション-hide_bannerは2013年後半に導入されました-https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html


7
これが受け入れ答えなければなりません
NineCattoRules

4
最善の答えは、しかし、オプション-show-bannerはそれを隠すよりも良いでしょう
-hetepeperfan

1
を追加すること-nostatsもできますか?
ミッコランタライネン

117

私はそれをテストしていませんが、manページにオプションがあります:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

理論的には、重大なエラーのみが記録されるようにする必要があります


5
でさえ-loglevel panic、私にとっては出力を少し減らすだけです-バージョン情報、ストリームマッピング、構成オプション(さらには進行状況情報も!)を出力します。私はそれが最新のsvn trunkからの自己コンパイルされたバージョンであることを言及しなければならないかもしれません。
コーディング

7
それをビットバケットにパイプします:> / dev / null 2>&1
rogerdpack

2
@rogerdpackはほとんどのプログラムで動作しますが、ffmpegはすべてのテキスト出力をstdoutではなくstderrに置きます(これにより、エンコーダー出力を他のプログラムにパイプできるようになります)。したがって、stdoutを/ dev / nullにリダイレクトします便利なことは何でもしません。
evilsoup

20
-hide_banner冗長レベルを下げることに加えて使用することは、良い妥協案です。
Makaveli84

5
これまでに述べてきたことに加えて、-nostatsは進行状況の出力を無効にします。
エリー

56

ここには、ソースコード(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   },
    };

5
URLは時間とともに変化する傾向がありますが、回答のソースとしてURLを含めることをお勧めします。たとえば、現時点ではこれはffmpeg.org/ffmpeg.html#toc-Generic-optionsに文書化されており、読者はこのURLが変更された場合でもドキュメントのどこを見るべきかを知っています。
Fr0zenFyr

19

私は成功して以下を使用しました(執筆時点での最新のFFMPEGバージョン):

-nostats -loglevel 0

それから、私の使用シナリオでは絶対に静かです。


ffmpeg 3.2のこのソリューションに満足
BernhardDöbler16年

-nostats私が探していたものでした。進行状況の出力を抑制します(たとえば、非終端コンテキストで役立ちます)。
jox

悲しいこと-nostatsにバナーも非表示にします。ffmpegには-show_bannerオプションが必要です;)
mgutt

18
ffmpeg -loglevel error [other commands]

これにより、バナーが非表示になり、エラーのみが表示されます。-loglevel warning警告を表示する場合に使用します。

Ffmpeg 3.0.2でテスト済み。

ドキュメントから:

-loglevel [repeat +] loglevel | -v [繰り返し+]ログレベル

ライブラリが使用するログレベルを設定します。「repeat +」を追加すると、繰り返されるログ出力は最初の行に圧縮されず、「最後のメッセージがn回繰り返される」行は省略されます。「繰り返し」も単独で使用できます。「繰り返し」が単独で使用され、以前のログレベルが設定されていない場合、デフォルトのログレベルが使用されます。複数のログレベルパラメータが指定されている場合、「repeat」を使用してもログレベルは変更されません。loglevelは、次のいずれかの値を含む文字列または数値です。

「静か、-8」

何も表示しません。静かに。

「パニック、0」

プロセスをクラッシュさせる可能性のある致命的なエラーのみを表示し、失敗をアサートします。現在、これは何にも使用されていません。

「致命的、8」

致命的なエラーのみを表示します。これらはエラーであり、その後はプロセスを継続できません。

「エラー、16」

回復可能なエラーを含むすべてのエラーを表示します。

「警告、24」

すべての警告とエラーを表示します。不正または予期しないイベントに関連する可能性のあるメッセージが表示されます。

「情報、32」

処理中に情報メッセージを表示します。これは、警告とエラーに追加されます。これがデフォルト値です。

「冗長、40」

infoより冗長であることを除き、と同じです。

「デバッグ、48」

デバッグ情報を含むすべてを表示します。

「トレース、56」

デフォルトでは、プログラムはstderrにログを記録します。端末でカラーリングがサポートされている場合、エラーと警告をマークするためにカラーが使用されます。ログの色付けは、環境変数の設定を無効にする AV_LOG_FORCE_NOCOLORNO_COLOR、環境変数の設定を強制することができますAV_LOG_FORCE_COLOR。環境変数の使用NO_COLORは非推奨であり、次のFFmpegバージョンでは廃止されます。


5

以下はmacOS上で私のために働いた:

ffmpeg -v quiet

または進行状況のみを表示するには:

ffmpeg -v quiet -stats

それがまさに私が探していたものです。スクリプトでffmpegを使用していますが、機能していることを確認する必要がありますが、入出力ストリームなどに関するすべての情報は必要ありません。
stib

3

grepを介してstderrをパイプできます。たとえば、構成情報を削除する場合は、次のようにします。

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

それが必要かもしれないと思うffmpeg … 2>&1 >/dev/null | grep …
スコット

0

これは少し安いですが、追加すること>/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

bash出力に関する詳細情報


14
ffmpegが一歩先を行くことを除いて、構成情報と実際のエラーの両方をstderrに出力します。
-blahdiblah

0

ffmpeg -loglevel error -hide_banner -nostats

エラーだけで、他には何もありません。

個人的にはこれが一番好きです。

ffmpeg -loglevel warning -hide_banner -stats

警告とエラーのみが表示されますが、作業の進行状況も表示されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.