ffmpeg 提供了自己的 log 模块 av_log,会默认把输出打印到 stderr 上,因此无法方便地跟踪日志。但是 ffmpeg 提供了一个接口 av_log_set_callback 以供外界自定义自己的日志输出。
libglog 提供的是c++ 形式的日志输出样式,因此需要将二者关联起来,代码如下:
extern "C"
{
#include "libavutil/log.h"
}
void glogLOG(void* ins,int level,const char* fmt, va_list li)
{
char str[8192] = {0};
snprintf(str,8192,fmt,li);
//这里可以根据 level 的级别使用 LOG(INFO) / LOG(ERROR) / LOG(FATAL) 等等
LOG(INFO) << str;
}
void init(){
av_log_set_callback(glogLOG);
}