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

如何让ffmpeg更安静/不啰嗦?

Advertisement

默认情况下,ffmpeg会向stderr发送大量的信息:何时建立的,如何建立的,编解码器,等等等等。

怎样才能让它更安静?

我试过-v 0(还有-v 10,因为文档中只是腼腆地说Set the logging verbosity level.,没有说明输入范围是多少)–还是不安静。

我试过-loglevel quiet – 还是不安静。

我应该说,我想要的是 “更安静",而不是 "永远没有输出"。如果有错误,我想看到它,但我不需要每次都听到ffmpeg的配置。

Advertisement

答案 (9)

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

我还没有测试过,但我在手册页面上看到一个选项:

ffmpeg -loglevel panic [rest of your ffmpeg stuff]

理论上应该只记录严重的错误。

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

ffmpeg -hide_banner -loglevel panic

这在当前答案下面的评论中有所提及。

选项-hide_banner是在2013年底推出的 – https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html )

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

这里有源代码中的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 },
    };
```。
21
21
21
2015-08-12 06:41:29 +0000

我已经成功使用了以下内容(写稿时最新的FFMPEG版本):

-nostats -loglevel 0

然后在我的使用场景中绝对安静。

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

这将隐藏横幅,只显示错误。如果你想看到警告,请使用-loglevel warning

在Ffmpeg 3.0.2中测试。

来自 文档

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

设置库使用的记录级别。添加 “repeat+"表示重复的日志输出不应该被压缩到第一行,"Last message repeated n times "一行将被省略。"repeat "也可以单独使用。如果单独使用 "repeat",且事先没有设置日志级别,将使用默认的日志级别。如果给出了多个日志级别参数,使用 "repeat "将不会改变日志级别。"日志级别 "是一个字符串或数字,包含以下值之一。

‘quiet, -8’

什么也不显示,保持沉默。

‘panic, 0’

只显示可能导致进程崩溃的致命错误,如和断言失败。目前没有用于任何事情。

‘fatal, 8’

只显示致命的错误。这些错误是指之后的进程绝对无法继续的错误。

‘error, 16’

显示所有错误,包括可以恢复的错误。

‘warning, 24’

显示所有警告和错误。任何与可能不正确或意外事件有关的消息都会被显示出来。

‘info, 32’

显示处理过程中的信息。这是对警告和错误的补充。这是默认值。

‘verbose, 40’

info 相同,只是更详细。

‘debug, 48’

显示一切,包括调试信息。

‘trace, 56’

默认情况下,程序会将日志记录到 stderr,如果终端支持着色,则用颜色来标记错误和警告。日志着色可以通过设置环境变量AV_LOG_FORCE_NOCOLORNO_COLOR来禁止,也可以通过设置环境变量AV_LOG_FORCE_COLOR来强制着色。环境变量NO_COLOR的使用已被废弃,并将在后续的FFmpeg版本中被取消。

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

以下内容在macOS上对我有效:

ffmpeg -v quiet

或者只看进度。

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

你可以通过grep来管stderr。例如,如果你想删除配置信息,你可以这样做。

% 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

只有错误,没有其他。

我个人最喜欢这个;

ffmpeg -loglevel warning -hide_banner -stats

它只给出警告和错误,还能显示工作进度。

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

这样做有点小题大做,但附加>/dev/null 2>&1是让ffmpeg在shell中保持沉默的一个可靠方法。

示例

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输出的信息

Advertisement
Advertisement