[libglog][FFmpeg] 如何把 ffmpeg 的库日志输出到 libglog里

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,8120,fmt,li);
    
    //这里可以根据 level 的级别使用 LOG(INFO) / LOG(ERROR) / LOG(FATAL) 等等
    LOG(INFO) << str;
}

void init(){
    av_log_set_callback(glogLOG);
}

你可能感兴趣的:(#,FFmpeg,ffmpeg)