如何使它更安静?
我已经尝试过
-v 0
(和-v 10
,因为文档只是说Set the logging verbosity level.
却没有说明输入范围是多少)-仍然不安静。我已经尝试过
-loglevel quiet
-仍然没有安静。我要说的是,我要的是“安静”,而不是“永远没有输出”。如果有错误,我希望看到它,但是我不需要每次都听到ffmpeg的配置。单。时间。
#1 楼
ffmpeg -hide_banner -loglevel panic
在当前答案下方的评论中被提及。
选项
-hide_banner
于2013年末推出-https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2013-December /152349.html)-loglevel warning
似乎比-loglevel panic
更好。查看评论。评论
最佳答案,但是-show-banner选项比隐藏它会更好
– hetepeperfan
18年5月16日在15:23
也许也添加-nostats?
– Mikko Rantalainen
18年5月18日在8:28
不要使用'-loglevel panic'。 ffmpeg文档说:“当前未用于任何用途”。而是建议使用“ -loglevel警告”:“将显示与可能不正确或意外事件有关的任何消息。”
–小男孩
20 Mar 5 '20 at 9:51
我建议使用-loglevel fatal而不是-loglevel panic,它应该显示任何导致ffmpeg退出的错误。恐慌甚至更加极端,可能并不能真正以有意义的方式得到支持(仅适用于断言),该警告会打印出各种信息,在某些情况下,这些信息可能超出了预期(例如,您只是想把它完成而无所谓)如果媒体出现故障)。
– GregD
20年8月19日在15:29
我想产生与-loglevel info -nostats相反的效果。我希望它显示编码进度,但不显示文件的内部元数据。
– Paul
20/09/10在21:04
#2 楼
我尚未对其进行测试,但是我在手册页中看到了一个可以做的选择:ffmpeg -loglevel panic [rest of your ffmpeg stuff]
应该这样做,因此理论上只记录严重的错误
评论
即使出现-loglevel紧急情况,对我来说也只是减少一点输出-它仍然会打印版本信息,流映射,配置选项(甚至进度信息!)...。我可能不得不提到这是最新的svn主干的自编译版本。
–编码
2012年4月30日11:42
将其通过管道传输到位存储桶:> / dev / null 2>&1
–rogerdpack
2012年8月2日在15:05
@rogerdpack适用于大多数程序,但是ffmpeg会将其所有文本输出放到stderr而不是stdout(这样做是为了将编码器输出通过管道传输到其他程序),因此将stdout重定向到/ dev / null不会'做任何有用的事情。
– evilsoup
2012年12月21日14:29
除了降低详细程度外,还使用-hide_banner是一个不错的折衷方案。
–Makaveli84
14年8月12日在16:14
除了已说明的所有内容外,-nostats将禁用进度输出。
– Ely
2014年10月13日在12:23
#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 },
};
评论
尽管URL会随着时间而改变,但最好也将它们作为答案的来源。例如,目前在ffmpeg.org/ffmpeg.html#toc-Generic-options中有记录,即使该URL发生更改,读者也将知道在文档中的查找位置。
–Fr0zenFyr
2015年12月15日上午8:01
#4 楼
我已经成功使用了以下内容(在撰写本文时,是最新的FFMPEG版本):-nostats -loglevel 0
然后在我的使用场景中它绝对安静。
评论
对ffmpeg 3.2中的此解决方案感到满意
– BernhardDöbler
16 Dec 24 '15:12
-nostats是我想要的。它将抑制进度输出(例如,在非终端环境中很有用)。
– jox
19年7月12日在16:46
可悲的是-nostats也隐藏了横幅。 ffmpeg需要一个-show_banner选项;)
– mgutt
19年8月9日在22:30
@mgutt,但这不是最不重要的信息吗?例如,如果要隐藏实际内容,那么为什么要显示横幅?只是好奇
– Sreenikethan I
20年7月4日在4:51
#5 楼
ffmpeg -loglevel error [other commands]
这会隐藏标语,仅显示错误。如果要查看警告,请使用
-loglevel warning
。已在Ffmpeg 3.0.2。中进行了测试。
来自文档:
- loglevel [repeat +] loglevel | -v [repeat +] loglevel
设置库使用的日志记录级别。添加“ repeat +”表示
不应将重复的日志输出压缩到第一行
,并且将省略“最后消息重复n次”行。 “ repeat”
也可以单独使用。如果单独使用“ repeat”,并且未设置先前的日志级别,则将使用默认日志级别。如果给定了多个loglevel
参数,则使用'repeat'不会更改日志级别。
loglevel是一个字符串或包含以下值之一的数字:
'quiet,-8'
什么也不显示;请保持沉默。
‘紧急,0’
仅显示致命错误,这些错误可能导致进程崩溃,例如
并断言失败。目前没有任何使用。
致命8,
仅显示致命错误。这些错误将导致进程
绝对不能继续执行。
'error,16'
显示所有错误,包括可以从中恢复的错误。
'warning,24'
显示所有警告和错误。将显示与任何可能的
错误或意外事件相关的消息。
‘info,32'这是对
警告和错误的补充。这是默认值。
'verbose,40'
与
info
相同,但更为冗长。'debug,48'
显示所有内容,包括调试信息。
'trace,56'
默认情况下,如果
在终端上,颜色用于标记错误和警告。日志着色
可以通过设置环境变量
AV_LOG_FORCE_NOCOLOR
或NO_COLOR
禁用,或者可以强制设置环境变量
AV_LOG_FORCE_COLOR
。不建议使用环境变量NO_COLOR
,它将在以下版本的FFmpeg中删除。#6 楼
以下在macOS上对我有用:ffmpeg -v quiet
或仅查看进度:
ffmpeg -v quiet -stats
评论
那正是我想要的。我在脚本中使用ffmpeg,需要查看其是否正常运行,但不需要有关输入和输出流等的所有信息。
–stib
19年2月26日在5:01
哇谢谢你。最后,一个命令隐藏了所有的争用主线(除非您不知道要处理的内容,通常这样做是...),但仍显示进度!到现在为止,它看起来像是一个“有/有”案例。
–乔纳斯(Jonas)
20年5月20日在19:54
#7 楼
ffmpeg -loglevel error -hide_banner -nostats
只是错误,没有别的。
我个人最喜欢;
ffmpeg -loglevel warning -hide_banner -stats
警告和错误,还可以显示工作进度。
#8 楼
您可以通过grep传递stderr。例如,如果要删除配置信息,可以这样进行:% ffmpeg -i infile.avi -s 640x480 outfile.avi >/dev/null 2>&1 | grep -v configuration:
评论
我相信可能需要ffmpeg…2>&1> / dev / null | grep…。
–斯科特
13年4月17日在15:37
#9 楼
这有点便宜,但是添加>/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输出的更多信息
评论
ffmpeg比您领先一步,并且将配置信息和实际错误输出到stderr。
– blahdiblah
11年8月23日在19:19
#10 楼
这些措施不会隐藏编解码器标语(即使使用“ -loglevel 0”也是如此)。要隐藏H.265横幅,它应如下所示:-vcodec libx265 -x265-params log-level=error
评论
ffmpeg绝对是“对于开发人员来说,按开发人员的程序类型”之一。使用-loglevel quiet -stats。
或者,-loglevel错误-stats将显示错误“包括可以从中恢复的错误”,并且使用-stats可确保打印编码进度和统计信息行。将-loglevel从错误更改为警告稍微有些冗长,但可以轻松地在一个终端页面上显示。
如果您希望减少冗长的中间过程,则可以按-并按Enter键,而要增加它,可以进行shift和=(或+)并按Enter来增加它。