Ubuntu18 配置FFmpeg开发环境 (Vscode+CMake)

关于Vscode插件安装不再赘述,本文主要讲解如何配置FFmpeg的开发环境以及CMake文件写法,如果不知道该安装什么插件请看本文:
Ubuntu配置Vscode

1.安装FFmpeg开发包

  1. 更新系统包列表: 打开终端并运行以下命令来更新你的系统包列表:

    sudo apt update
    
  2. 安装FFmpeg: 如果你还没有安装FFmpeg,可以使用以下命令安装:

    sudo apt install ffmpeg
    
  3. 安装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:音频重采样库
  4. 验证安装: 安装完毕后,可以通过检查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引用到没有。

### 如何配置FFmpeg开发环境 #### 安装FFmpeg开发包 为了搭建FFmpeg开发环境,首先需要安装FFmpeg及其相关依赖项。对于基于Linux的操作系统(如Ubuntu),可以通过系统的软件包管理器来完成这一操作。例如,在Ubuntu上可以运行以下命令: ```bash sudo apt update && sudo apt install ffmpeg libavcodec-dev libavformat-dev libswscale-dev libavutil-dev ``` 这一步骤会安装FFmpeg以及其开发库文件[^1]。 #### 配置环境变量 为了让编译工具能够找到FFmpeg的相关头文件和库文件,可能还需要设置环境变量。如果FFmpeg被安装到自定义路径下,则需手动将其二进制目录加入`PATH`环境变量中。具体方法如下所示: ```bash export PATH="$PATH:/usr/local/ffmpeg/bin" source ~/.base_profile ``` 上述脚本的作用是更新当前用户的shell配置文件并使更改生效[^2]。 #### 创建VSCode项目结构 接下来创建一个新的Visual Studio Code工作区用于承载您的源码和其他资源文件。通常情况下,您应该至少准备两个主要部分——一个是用来编写业务逻辑的应用程序代码;另一个则是描述构建过程所需的CMakeLists.txt文件。 ##### 示例 CMakeLists 文件内容 下面是一个简单的 `CMakeLists.txt` 的例子,它展示了如何链接 FFmpeg 库至目标可执行文件: ```cmake cmake_minimum_required(VERSION 3.10) project(MyFfmpegProject LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(PkgConfig REQUIRED) pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec) pkg_check_modules(AVFMT REQUIRED IMPORTED_TARGET libavformat) pkg_check_modules(SWSCALE REQUIRED IMPORTED_TARGET libswscale) add_executable(mainApp main.cpp) target_link_libraries( mainApp PRIVATE PkgConfig::AVCODEC PkgConfig::AVFMT PkgConfig::SWSCALE ) ``` 此片段告诉 CMake 去寻找必要的 FFmpeg 组件,并将它们连接起来形成最终产物。 #### 编写测试代码验证环境是否正常运作 最后通过一段小程序检验整个流程是否成功建立。这里给出了一段利用标准模板库(STL)打印消息的同时调用了来自 FFmpeg 的日志功能的例子: ```cpp #include <iostream> extern "C" { #include <libavutil/log.h> } int main() { av_log_set_level(AV_LOG_DEBUG); std::cout << "hello world" << std::endl; av_log(nullptr, AV_LOG_INFO, "hello FFmpeg!\n"); return 0; } ``` 当一切就绪之后,只需启动调试或者单纯地触发一次完整的构建周期即可看到预期的结果输出[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Trump. yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值