Featured image of post 【雷霄骅课程笔记】0 配置

【雷霄骅课程笔记】0 配置

FFmpeg 配置教程,以及如何使用 cmake 配置 FFmpeg 项目

|
870 字
|

vscode 配置 FFmpeg

视频链接

这里的配置教程是另一处的,不是雷神的

课程简介

雷神的课程主要使用 Visual Studio 进行演示,但由于我个人不太习惯使用 VS,因此我选择了在 WSL 环境下使用 VSCodeCMake 来进行学习和实践
windows 环境总是出现各种不必要的麻烦,而且其实 linux 环境对音视频开发者更友好
配置过程些许复杂,但只要按照步骤来,不会有太大问题,有问题可以留言,我会尽力解答

我使用的资料都是比较新的(2025年2月),所以博客的一些代码和流程什么的可能和雷神介绍的有些不同

FFmpeg 配置

前提准备

安装好 UbuntuVSCode, 并且配置好 WSLVSCode 的连接
这里网上很多教程,就不多说了

编译安装

创建安装目录:

1
sudo mkdir -p /usr/local/ffmpeg

下载 FFmpeg 源码: 我这里都是用最新的 FFmpeg 源码
点击链接:下载地址
目前最新版是 7.1 ,而且我是 ubuntu 环境

下载压缩包之后进行解压:(具体解压指令可以问问 ai )

1
tar -xv ffmpeg-7.1.tar.xz

解压完之后要进入目录:

1
cd ffmpeg-7.1

然后进行配置:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
./configure \                                                                                 0 (20.192s) < 14:23:34          --prefix='/usr/local/ffmpeg' \
          --enable-gpl \
          --enable-nonfree \
          --enable-ffplay \
          --enable-libfdk-aac \
          --enable-libmp3lame \
          --enable-libx264 \
          --enable-libx265 \
          --enable-filter=delogo \
          --enable-debug \
          --disable-optimizations \
          --enable-libspeex \
          --enable-shared \
          --enable-pthreads \
          --enable-version3 \
          --enable-hardcoded-tables \
          --extra-cflags="-I/usr/local/ffmpeg/include" \
          --extra-ldflags="-L/usr/local/ffmpeg/lib"

这里可能会不断报错,显示缺各种库,那根据提示去安装对应库就行

下载:

1
2
3
4
sudo apt-get install libasound2-dev
sudo apt-get install libpulse-dev
sudo apt-get install libx11-dev
sudo apt-get install xorg-dev

配置:

1
./configure --prefix=/usr/local/ffmpeg --enable-shared --enable-video-x11 --enable-x11-shared --enable-video-x11-vm

ffplay 一直无法播放视频的话(因为我是用的wsl2),尝试在终端配置文件加上 SDL_RENDER_DRIVER=software

fish 终端配置文件加

1
set -x SDL_RENDER_DRIVER software

具体怎么加可以问问 ai

CMake配置

安装 CMake

安装插件 CMake Tools

书写 CMakeLists.txt

CMakeLists.txt 下写入以下内容:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 指定 CMake 的最低版本要求
cmake_minimum_required(VERSION 3.10)

# 设置项目名称和版本
project(MyProject VERSION 1.0)

# 设置 C++ 标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# 依赖 compile_commands.json 文件来理解项目的编译环境
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

# 设置 FFmpeg 库的路径
set(FFmpeg_DIR /usr/local/ffmpeg)

# 添加项目中的头文件目录
include_directories(${FFmpeg_DIR}/include)

# 添加库文件目录
link_directories(${FFmpeg_DIR}/lib)

# 添加可执行文件(就是源码的位置)
add_executable(main src/testffmpeg.cpp)

# 链接 FFmpeg 库
target_link_libraries(main avcodec avformat avutil)

测试代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#define __STDC_CONSTANT_MACROS

extern "C"
{
#include "libavcodec/avcodec.h"
};

int main(int argc, char *argv[])
{
    printf("%s", avcodec_configuration());
    return 0;
}

编译

输入指令

1
2
3
4
cd build
cmake ..
make
./main

如果成功输出,说明配置成功

常见问题

解释器

如果成功输出了发现源文件仍然显示找不到头文件,可能是没安装好解释器,我使用的是 clangdlinux 环境安装很简单,问一下 ai 就行
安装完成之后,clangd 会依赖 compile_commands.json 文件来理解项目的编译环境

使用 Hugo 构建
主题 StackJimmy 设计