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

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

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

|
870 字
|

vscode 配置 FFmpeg

视频链接

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

课程简介

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

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

FFmpeg 配置

前提准备

安装好 Ubuntu 和 VSCode, 并且配置好 WSL 和 VSCode 的连接
这里网上很多教程,就不多说了

编译安装

创建安装目录:

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

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

常见问题

解释器

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

使用 Hugo 构建
主题 Stack 由 Jimmy 设计