FFmpeg初级开发(一)之日志信息

从今天开始更一系列关于FFmpeg初级开发系列的文章,更完这一系列之后再写一些FFmpeg深入开发的文章,一点一点的深入,将FFmpeg开发呈现给读者阅读,希望能帮到想学FFmpeg的同学,我们一起成长,一起进步。
首先要说一下FFmpeg的代码结构:

libavcodec: 编码器的实现
libavformat: 流协议,容器格式及基本IO访问的实现
libavfilter: 音视频过滤器(最复杂最重要)
libavutil: hash器,解码器和各种工具函数
libavdevice: 访问捕获设备和回访设备的借口
libswresample: 实现混音和重采样
libswscale: 实现色彩转换和缩放功能

上面的结构大家在这里了解就行,因为随着学习的深入这些API都会使用到。

FFmpeg初级开发包括:
1. FFmpeg日志Log;
2. FFmpeg文件操作;
3. FFmpeg目录操作;
4. FFmpeg Meta信息;
5. FFmpeg抽取音频数据;
6. FFmpeg抽取视频H264数据;
7. FFmpeg格式转换;
8. FFmpeg音视频裁剪。

那么我们今天来说一说FFmpeg的日志系统。
FFmpeg的日志系统非常简单,一般通过3个步骤就能将日志打印出来。

1. 引入头文件:include 
2. 设置日志级别:av_log_set_level(AV_LOG_DEBUG)
3. 使用打印语句:av_log(NULL, AV_LOG_DEBUG, "……%s\n", log)  类似于printf打印语句

通过以上三步就能打印出来日志信息。

这里要注意的是日志的级别是:

AV_LOG_DEBUG;
AV_LOG_INFO;
AV_LOG_WARNING;
AV_LOG_ERROR;

从上到下,LOG的级别由弱变强。

下面我们写几行代码来举个例子:

新建一个ffmpegLog.c文件

#include
#include
int main(int argc, char* argv[]){
    av_log_set_level(AV_LOG_DEBUG);
    av_log(NULL, AV_LOG_DEBUG, "Print log info!\n");
    return 0;
}

注:编译的时候需要连接libavutil库,

编译语句:clang -g -o ffmpegLog ffmpegLog.c -lavutil
然后运行:./ffmpegLog

得到打印的Log信息"Print log info"

通过上面简单的3步就可以打印出来你想要的Log信息,在我们日后做FFmpeg开发的时候可以在需要打印Log信息的地方加入Log语句来打印信息。

你可能感兴趣的:(FFmpeg初级开发(一)之日志信息)