1. 版本
库/工具 | 版本 |
---|---|
ubuntu | 20.0.4 |
ffmpeg | n4.4.1 |
SDL2 | 2.0.10 |
gcc | 9.4.0 |
vscode | 1.84.2 |
2. 环境配置
2.1 工具包和依赖库安装
首先,在编译ffmpeg前,需要安装一些工具和依赖包。注意:安装时可能需要使用sudo
获得root权限
# 安装gcc等编译工具链的相关包
sudo apt install g++ nasm yasm pkg-config
# SDL2库
sudo apt-get install libsdl2-2.0 libsdl2-dev
# 编解码相关库和工具
sudo apt install libx264-dev libx265-dev libdc1394-22-dev libv4l-dev libmp3lame-dev
2.2 ffmpeg编译
上面的工具和依赖库安装完成后,就可以开始对ffmpeg进行配置并编译安装,源码请自行到ffmpeg官网获github中下载。
我这里只是编译一个比较简单的,如果需要配置更复杂的,可在源码目录下自行使用./configure --help
查看更多选项
./configure \
--prefix=/usr/local/ \
--enable-libx264 \
--enable-libx265 \
--enable-gpl \
--enable-shared \
--disable-static \
--enable-avresample \
--enable-nonfree \
--enable-libdc1394 \
--enable-libmp3lame \
--enable-sdl2 \
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-x86asm \
--disable-stripping
上面配置选项中,后面5行的配置项主要是为了开启 debug 模式,告诉编译器不要优化代码,方便我们进行源码调试。
在f终端的fmpeg源码目录下,输入以上内容,然后回车
configure完成后会出现一堆信息
如果配置期间没有报错,则可以进行到下一步,对源码进行编译(make
)和安装(make install
),如果你只是项编译调试不需要安装的话,则把&& make install
删掉
make -j4 && make install
编译后可以在源码目录下看到几个可执行文件,分别是ffmpeg
,ffprobe
,ffplay
,ffmpeg_g
,ffprobe_g
和ffplay_g
ffmpeg_g
,ffprobe_g
和ffplay_g
分别是ffmpeg
,ffprobe
,ffplay
,ffmpeg_g
的调试版本
2.3 vscode
vscode可以通过去官网下载对应的安装包,也可以通过snap商店或命令行安装
snap install code --classic
安装完成后,在ffmpeg源码目录下,使用vscode打开当前文件夹
code .
随便打开一个.c文件,vscode就会给你推荐一些对应的插件,按需安装即可,我安装了以下几个
3. 调试配置
现在开始配置vscode对源码进行调试
首先,可以点击想要调试的可执行文件(ffmpeg, ffprobe和ffplay)对应的源码,运行->启动调试让vscode自动生成一些配置,这三个工具对应的源码位于fftools
下的同名文件。
这里以ffplay
为例,点击启动调试
后,会自动生成.vscode
文件夹,文件夹下自动生成了task.json
文件
然后,点击调试按钮旁的那个设置图标按钮,选择(gdb)启动
运行,点击后在.vscode目录下
会自动生成launch.json
自动生成的launtch.json
如下
比如我这里项调试ffplay video.mp4
命令行,则将launtch.son
文件改为下面的内容,主要是对生成的文件中的program
和args
修改,添加了视频的路径
然后在源码中想要打断点的地方添加断点,然后点击F5
即可运行调试,并在断点处阻塞
继续按F5
运行到下一个断点处,这里后面没有断点了,则会一直运行到程序结束