默认情况下,ffmpeg 会向 stderr 发送大量消息:何时构建、如何构建、编解码器等等。
我怎样才能让它安静一点?
我已经尝试过了-v 0
(并且-v 10
由于文档只是含糊其辞地说明,Set the logging verbosity level.
而没有表明输入的范围)——仍然不安静。
我已尝试过-loglevel quiet
- 仍然没有安静。
我应该说一下,我正在寻找“更安静”,而不是“永远没有输出”。如果有错误,我希望看到它,但我不需要每次都听到有关 ffmpeg 的配置。
答案1
ffmpeg -hide_banner -loglevel error
当前答案下方的评论中提到了这一点。
该选项-hide_banner
于 2013 年底推出——https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December/152349.html)
-loglevel warning
导致输出比该error
级别更多(但少于默认info
级别),因为它显示所有警告消息。
-loglevel panic
是最不详细的输出(甚至省略了错误消息)但没有记录。
官方-loglevel
文档可以在ffmpeg 文档在下面通用选项、小节-loglevel [flags+]loglevel | -v [flags+]loglevel
。
答案2
我还没有测试过,但我在手册页中看到一个选项:
ffmpeg -loglevel panic [rest of your ffmpeg stuff]
理论上应该只记录严重错误
答案3
这里有来自源代码的日志级别(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 },
};
答案4
ffmpeg -loglevel error [other commands]
这会隐藏横幅并仅显示错误。-loglevel warning
如果您想看到警告,请使用此选项。
在 Ffmpeg 3.0.2 中测试。
来自文档:
-loglevel [重复+]日志级别 | -v [重复+]日志级别
设置库使用的日志级别。添加“repeat+”表示重复的日志输出不应压缩到第一行,并且将省略“最后一条消息重复 n 次”行。“repeat”也可以单独使用。如果单独使用“repeat”,并且没有设置先前的日志级别,则将使用默认日志级别。如果给出了多个日志级别参数,则使用“repeat”不会更改日志级别。日志级别是一个字符串或数字,包含以下值之一:
“安静,-8”
什么也不要做任何表现;保持沉默。
‘恐慌,0’
仅显示可能导致进程崩溃的致命错误,例如断言失败。目前此功能不用于任何用途。
“致命,8”
仅显示致命错误。这些错误会导致进程绝对无法继续。
‘错误,16’
显示所有错误,包括可以恢复的错误。
“警告,24”
显示所有警告和错误。任何与可能不正确或意外事件相关的消息都将显示。
'信息,32'
在处理过程中显示信息性消息。这是对警告和错误的补充。这是默认值。
'详细,40'
与 相同
info
,但更加冗长。‘调试,48’
显示所有内容,包括调试信息。
‘踪迹,56’
默认情况下,程序会将日志记录到 stderr,如果终端支持着色,则使用颜色来标记错误和警告。可以通过设置环境变量
AV_LOG_FORCE_NOCOLOR
或来禁用日志着色NO_COLOR
,也可以通过设置环境变量来强制使用AV_LOG_FORCE_COLOR
。环境变量的使用NO_COLOR
已弃用,并将在后续 FFmpeg 版本中删除。