FFmpeg C++学习(一):编译和demo

目录

[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):非常冗长的跟踪调试信息,对底层开发非常有用。

相关推荐
海域云SeaArea_1 小时前
Windows Server 2008 R2 从零安装 IIS7.5(二):php.ini 配置
开发语言·windows·php
叼烟扛炮1 小时前
[LangChain] 学习笔记(02):LCEL 链式调用与动态模型配置实战
服务器·开发语言·网络·笔记·学习·langchain
xixingzhe21 小时前
图表中同比与环比的区别:看趋势还是看变化?
开发语言·python
程序员梅雨1 小时前
【从零开始学习数据仓库 | 第二篇】: 拉链表 & 数仓分层
大数据·数据仓库·学习
andyweike1 小时前
Swift
开发语言·ios·swift
纪念 2291 小时前
C++算法(六)
开发语言·c++·算法
一木 之林2 小时前
Dify学习笔记 04 · 检索底座:Embedding、Rerank与向量数据库(第46-54集)
笔记·学习·embedding·dify
ShineWinsu2 小时前
对于Qt:QCheckBox常见属性的详细解析
c++·qt·面试·笔试·gui·qcheckbox·多选框
芯思路2 小时前
STM32开发学习笔记之十【AI部署】
笔记·stm32·学习