默认情况下,libavformat将错误消息写入stderr,如下所示:
Estimating duration from bitrate, this may be inaccurate
我怎么才能关掉它?或者更好的是,将它输送到我自己的整洁日志功能中?
编辑:将stderr重定向到其他地方是不可接受的,因为我需要它来进行其他日志记录,我只是希望libavformat不写它。
发布于 2011-10-16 20:47:44
从代码中可以看出,您可以通过为av_log函数编写自己的回调函数来更改行为。
从libavutil/log.h中对该函数的描述
如果级别小于或等于当前的
,则将指定的消息发送到日志。默认情况下,所有日志记录消息都被发送到stderr。这种行为可以通过设置不同的av_vlog回调函数.来改变。
API提供了一个函数,允许您定义自己的回调:
void av_log_set_callback(void (*)(void*, int, const char*, va_list));在这种情况下,您可以编写一个简单的回调函数,它完全丢弃消息(或者将消息重定向到专用日志,等等)。不污染您的stderr流。
发布于 2011-10-27 10:48:56
试一试av_log_set_level(level)!
发布于 2018-09-10 07:57:13
#包括
av_log_set_level(AV_LOG_QUIET);
https://stackoverflow.com/questions/7786802
复制相似问题