目录
[1 下载源码](#1 下载源码)
[2 编译](#2 编译)
[3 vscode demo](#3 vscode demo)
[3.1 创建C/CPP 文件](#3.1 创建C/CPP 文件)
[3.2 创建编译任务并配置](#3.2 创建编译任务并配置)
[3.2.1 创建task.json](#3.2.1 创建task.json)
[3.2.2 配置json](#3.2.2 配置json)
[3.3 编译运行](#3.3 编译运行)
[3.3.1 编译可执行文件](#3.3.1 编译可执行文件)
[3.3.2 执行demo](#3.3.2 执行demo)
1 下载源码
https://ffmpeg.org/download.html

2 编译

在下载的源码文件夹打开控制台,分别执行
# 1 配置
./configure
# 2 编译出ffmpeg ffplay ffprob
make
# 3 将编译出的文件安装到系统
make install
最后会被安装到usr/local的目录下

3 vscode demo
安装C++扩展插件

3.1 创建C/CPP 文件
如果是cpp文件则需要使用extern "C"进行包裹,如果是.c文件,则不需要

extern "C"
{
#include <libavutil/log.h>
}
int main()
{
av_log_set_level(AV_LOG_INFO);
av_log(nullptr, AV_LOG_DEBUG, "Hello ffmpeg debug");
av_log(nullptr, AV_LOG_INFO, "Hello ffmpeg Info");
return 0;
}
3.2 创建编译任务并配置
3.2.1 创建task.json


3.2.2 配置json
在编辑参数中添加如下内容,以保证编译和链接时正常

3.3 编译运行
3.3.1 编译可执行文件
1 将选择demo.cpp文件上(如果当前选择task.json文件,编译时会报错)。
2 执行terminal - > runtask -> C++生成文件
3 会在当前文件夹得到同名的可执行文件demo
4 执行./demo得到结果


3.3.2 执行demo
新建终端,输入./demo.发现只输出了hello ffmpeg info,表明了设置了log等级,会过滤掉低于该等级的数据。

4 Log 等级
AV_LOG_QUIET (-8):保持沉默,不输出任何日志信息。
AV_LOG_PANIC (0):确实出了问题,程序即将崩溃。
AV_LOG_FATAL (8):发生严重错误,且无法修复。
AV_LOG_ERROR (16):发生错误,不能毫无损失地恢复。
AV_LOG_WARNING (24):警告信息,有些东西看起来不太对,有可能出问题。
AV_LOG_INFO (32):标准信息(这是 FFmpeg 默认的日志级别)。
AV_LOG_VERBOSE (40):详细的信息,比 INFO 级别输出更多内容。
AV_LOG_DEBUG (48):调试信息,通常只对库的开发者有用。
AV_LOG_TRACE (56):非常冗长的跟踪调试信息,对底层开发非常有用。