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);
- }