关于Vscode插件安装不再赘述,本文主要讲解如何配置FFmpeg的开发环境以及CMake文件写法,如果不知道该安装什么插件请看本文:
Ubuntu配置Vscode
文章目录
- 1.安装FFmpeg开发包
- 2.配置Vscode项目
- 3.使用C语言验证FFmpeg版本
1.安装FFmpeg开发包
-
更新系统包列表: 打开终端并运行以下命令来更新你的系统包列表:
sudo apt update
-
安装FFmpeg: 如果你还没有安装FFmpeg,可以使用以下命令安装:
sudo apt install ffmpeg
-
安装FFmpeg开发包: FFmpeg开发包包括库文件和头文件,允许开发者在自己的应用程序中使用FFmpeg的功能。安装这些开发包可以使用以下命令:
sudo apt install libavcodec-dev libavformat-dev libavutil-dev libavdevice-dev libswscale-dev libavfilter-dev libswresample-dev
这些包分别对应于不同的FFmpeg库:
libavcodec-dev
:音视频编解码库libavformat-dev
:多格式输入输出库libavutil-dev
:工具库(如日志管理和错误处理)libavdevice-dev
:设备输入输出库libswscale-dev
:图像缩放和像素格式转换库libavfilter-dev
:音视频滤镜库libswresample-dev
:音频重采样库
-
验证安装: 安装完毕后,可以通过检查FFmpeg版本来验证安装是否成功:
ffmpeg -version
2.配置Vscode项目
1.在工程目录下新建三个文件夹: src 、build、include
src存放源代码
build 存放编译好的二进制可执行文件
include 存放需要引用的头文件
2.在工程目录下新建CMakeLists.txt文件 (暂时不用写内容)
3.使用C语言验证FFmpeg版本
1.在src下新建main.c
#include <libavutil/avutil.h>
#include <stdio.h>
int main() {
printf("FFmpeg version: %s\n", av_version_info());
return 0;
}
注意:如果新建的是CPP文件,FFmpeg是纯C编写的,如果C++引用的话一定要加上 extern “C”
例如以下例子:
extern "C"
{
#include <libavformat/avformat.h>
#include <libavdevice/avdevice.h>
#include <libavcodec/avcodec.h>
#include <libavutil/avutil.h>
#include <libavfilter/avfilter.h>
#include <libswscale/swscale.h>
#include <libavutil/opt.h>
}
#include <iostream>
using namespace std;
int main()
{
cout << av_version_info() << endl;
return 0;
}
2.编写 CMakeLists.txt
为了编译这个C语言程序,我们需要创建一个CMake配置文件,这个文件会告诉CMake如何找到并链接FFmpeg的开发库。
cmake_minimum_required(VERSION 3.10)
project(FFmpegVersionDemo)
# 设置使用C++标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# 寻找FFmpeg组件
find_package(PkgConfig REQUIRED)
pkg_check_modules(AVCODEC REQUIRED libavcodec)
pkg_check_modules(AVFORMAT REQUIRED libavformat)
pkg_check_modules(AVUTIL REQUIRED libavutil)
pkg_check_modules(SWSCALE REQUIRED libswscale)
pkg_check_modules(AVFILTER REQUIRED libavfilter)
pkg_check_modules(AVDEVICE REQUIRED libavdevice )
# libavdevice
# 添加可执行文件
add_executable(ffmpeg_test src/main.cpp)
# 链接FFmpeg库
target_link_libraries(ffmpeg_test ${AVCODEC_LIBRARIES} ${AVCODEC_LIBRARIES} ${AVFORMAT_LIBRARIES} ${AVUTIL_LIBRARIES} ${SWSCALE_LIBRARIES} ${AVFILTER_LIBRARIES})
3.使用Vscode 配置Cmake
快捷键:Ctrl+shift+p 选择Cmake 配置
Vscode就会自动帮我们配置这个CMake项目。
再按下Ctrl+S Cmake配置就生效了
4.配置快捷键运行编译
在.vscode 文件夹下新建tasks.json (如果没有找到这个文件夹,也可以自己手动新建)
{
"version": "2.0.0",
"tasks": [
{
"label": "CMake Build",
"type": "shell",
"command": "cmake",
"args": [
"--build",
"build/", // 指定构建目录
"--config",
"Release" // 可以改为Debug
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": true,
"clear": false
}
},
{
"label": "CMake Clean",
"type": "shell",
"command": "cmake",
"args": [
"--build",
"build/",
"--target",
"clean"
],
"problemMatcher": [],
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"clear": false
}
}
]
}
保存之后,使用快捷键 CTRL+shift+B 便可以快速编译程序了
在build目录下就可以运行编译出来的二进制执行程序了
至此FFmpeg开发环境就配置好了。
如果提示xxxx没有被引用,一定要检查CMakeLists.txt是否写对没有,FFmpeg lib引用到没有。