FFmpeg下载:ffmpeg-4.4.1.tar.xz
思路: 先使用configure配置项目,生成Makefile文件,再用clion打开ffmpeg,进行调试。
一、安装依赖
# 如果要编译出ffplay程序,需要安装SDL2
sudo apt-get install diffutils make pkg-config yasm libsdl2-2.0
二、生成Makefile
# 会根据系统配置生成对应的Makefile文件
./configure \
--prefix=$(pwd)/install \
--enable-gpl \
--enable-nonfree \
--enable-debug=3 \
--disable-optimizations \
--disable-asm \
--disable-stripping
注意:
- 默认是编译静态库,如果需要编译动态库需要使用编译选项
--enable-shared
- 要使用debug模式,否则会进行代码优化,将一些代码合并运行 以提高运行效率,但会影响调试,代码跟踪会乱跳。
三、使用Clion调试
3.1 clion打开ffmpeg
clion会自动识别项目中的Makefile文件,并列出所有Target配置识别所有Target配置后,会提示清理项目,清理即可,待会用clion重新编译。
3.2 修改配置并调试
Target选择all,这个配置会编译所有内容。
(1)调试ffmpeg
代码文件:fftools/ffmpeg.c
(搜索main函数,在里面设置断点)
执行程序:ffmpeg
程序参数:-i walking-dead.mp4 walking-dead.flv
(2)调试ffplay
代码文件:fftools/ffplay.c
执行文件:ffplay
程序参数:-x 200 -i walking-dead.mp4
3.3 调试技巧
使用Watch Point调试功能,可以监控某个变量什么时候被修改。
设置生命周期:长期
3.4 解决clion无法识别Makefile问题
本次使用clion版本是clion-2022.1.1,如果无法识别到Makefile文件,请更新clion或手动添加一个Makefile Application
Makefile在clion的两种配置
- Makefile Target:类似make xx,不填就是默认,ffmpeg默认是all
- Makefile Application:类似gdb ./ffpaly (clion也是调gdb来调试的)
添加步骤:
- 添加Makefile Application配置
- Executable:可以自行添加一个ffmpeg
- 参数:
-i walking-dead.mp4 walking-dead.flv