デフォルトでは、ffmpegはたくさんのメッセージをstderrに送ります:ビルドされた時、ビルドされた時、コーデック等。
どうしたらもっと静かにできますか?
私は-v 0
を試しました(そして-v 10
はドキュメントが単にSet the logging verbosity level.
と言っているだけなので、入力の範囲が何であるかはわかりません)。
私は-loglevel quiet
を試しました - それでも静かではありません。
私は言及する必要があります、私は「今までにない出力」ではなく「より静か」を探しています。確認したいエラーがある場合は、ffmpegの設定をすべて聞く必要はありません。シングル。時間。
試したことはありませんが、manページにオプションがあります。
ffmpeg -loglevel panic [rest of your ffmpeg stuff]
理論上、重大なエラーのみがログに記録されるようにする必要があります。
ffmpeg -hide_banner -loglevel panic
これは、現在の回答の下のコメントで示唆されています。
オプション-hide_banner
は2013年後半に導入されました - https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )
ここにソースコードからのログレベルがあります(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 },
};
私は成功して以下のものを使ったことがある(執筆時点での最新のFFMPEGバージョン):
-nostats -loglevel 0
それからそれは私の使用シナリオでは絶対に静かです。
ffmpeg -loglevel error [other commands]
これはバナーを隠し、エラーのみを表示します。警告を表示したい場合は-loglevel warning
を使用してください。
Ffmpeg 3.0.2でテスト済み。
- loglevel [繰り返し+] loglevel | -v [repeat +] loglevel
ライブラリが使用するログ記録レベルを設定します。 "repeat +"を追加することは、繰り返されたログ出力が最初の行に圧縮されるべきではなく、 "最後のメッセージがn回繰り返された"行が省略されることを示します。 「繰り返し」も単独で使用できます。 "repeat"が単独で使用され、かつ以前のログレベルが設定されていない場合は、デフォルトのログレベルが使用されます。複数のログレベルパラメータが指定されている場合、「繰り返し」を使用してもログレベルは変更されません。 loglevelは、次のいずれかの値を含む文字列または数値です。
「静か、-8」
何も表示しません。静かに。
「パニック、0」
プロセスのクラッシュなどの致命的なエラーのみを表示し、失敗をアサートします。これは現在何にも使われていません。
「致命的、8」
致命的なエラーのみを表示します。これらはエラーであり、その後プロセスは絶対に続行できません。
「エラー、16」
回復可能なものも含めて、すべてのエラーを表示します。
「警告、24」
すべての警告とエラーを表示します。不正確または予期しないイベントに関するメッセージが表示されます。
「情報、32」
処理中に有益なメッセージを表示します。これは警告とエラーに加えてです。これがデフォルト値です。
「詳細、40」
より冗長であること以外は
info
と同じです。「debug、48」
デバッグ情報を含むすべてを表示します。
「トレース、56」
カラーリングが端末でサポートされている場合、デフォルトではプログラムはstderrにログを記録し、エラーと警告をマークするためにカラーが使用されます。ログカラーリングは、環境変数
AV_LOG_FORCE_NOCOLOR
またはNO_COLOR
の設定を無効にすることも、環境変数AV_LOG_FORCE_COLOR
の設定を強制することもできます。環境変数NO_COLOR
の使用は推奨されておらず、次のFFmpegバージョンでは削除される予定です。
以下はmacOSで私のために働きました:
ffmpeg -v quiet
進行状況を確認するだけです。
ffmpeg -v quiet -stats
あなたはgrepを通して標準エラー出力を渡すことができます。たとえば、設定情報を削除したい場合は、次のようにします。
% ffmpeg -i infile.avi -s 640x480 outfile.avi >/dev/null 2>&1 | grep -v configuration:
これは少し手間がかかりますが、>/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
ffmpeg -loglevel error -hide_banner -nostats
エラーだけです。他にはありません。
私は個人的にこれが一番好きです。
ffmpeg -loglevel warning -hide_banner -stats
警告とエラーだけが表示されますが、作業の進行状況も表示されます。