FFmpeg日志函数

本文的代码下载地址:GitHub


FFmpeg 项目里面 输出日志信息的函数是 av_log,使用 av_log 函数可以在二次开发的时候,比较方便地做一些跟踪跟记录,可以把 av_log 作为 printf 函数的替代品。

av_log 函数的定义如下:

1-1

注释写得很详细,我翻译一下,就是 av_log 函数记录日志信息,前提是参数 levelav_log_level 变量小。 av_log_level 是一个全局变量。默认是 AV_LOG_INFO,可以通过 av_log_set_level 函数进行设置 av_log_level

av_log 函数的第一个参数是 avcl,这是一个指向 AVClass 的指针,如果提供了,就会把 AVClass 的信息也保存到日志,通常传 NULL 即可。

第二个 参数 是 level,代表日志级别。后面的参数其实 跟 printf 函数是类似的,不做过多讲解。


FFmpeg 的日志一共有 9 个级别,如下:

1-2


下面就来演示一下,如何使用 av_log 这个函数,如下:

1-3

可以看到,日志默认是输出到 控制台里面的。如果我们想把日志输出到文件里面保存,如何做呢?可以使用 av_log_set_callback 函数来自定义,代码如下:

1-4

可以看到,我定义了一个回调,来接受参数,然后打印到控制台,可以在这里输出到对应的日志文件,为了偷懒,我没操作文件打开写入。只是简单 printf 一下。

扩展知识:AVBPrintva_list 是 FFmpeg 自己的结构,源码有注释,对着抄就行。


参考资料:《深入理解FFmpeg AVBPrint》


版权所属 xianwanzhiyin.net 罗上文 2022 all right reserved,powered by Gitbook该文件修订时间: 2022-08-28 19:11:11

results matching ""

    No results matching ""