前言
在我们学习如何使用FFmpeg开发一款简单播放器的时候,ffplay一定是一个非常不错的参考例子
如果能搭载ffplay的源码联调环境来进行断点调试的话,相信对我们理解ffplay一定能起到事半功倍的效果
本篇文章详细记载了如何在Mac端编译出可调试执行文件ffplay_g和在xcode中进行源码debug的步骤
编译环境
Mac m1、FFmpeg 5.1.2、xcode13.4.1
选择使用FFmpeg最新版本5.1.2的原因是ffplay的编译依赖sdl2,通过brew安装sdl2的版本为最新的2.24.0,只有FFmpeg5.1.2+的版本才能匹配上
(ffplay的编译依赖sdl2)
(sdl2的版本要求)
编译ffplay
首先需要安装sdl2
brew install sdl2
然后进入下载的FFmpeg5.1.2的源码根目录,在终端中执行:
./configure --enable-debug=3 --enable-ffplay --enable-sdl2 --disable-optimizations --disable-asm
--enable-debug=LEVEL是用来控制编译器,比如gcc的debug level选项的,不是用来控制ffmpeg的debug level选项的,所以上面不加这个option也行
https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
执行完成后查看下Programs是否存在ffplay,如果存在就表示环境准备好了
如果中途有报错,可以查看ffbuild/config.log进行排查
接下来进行编译
make clean
make -j8
编译产物
导入xcode
新建工程
语言选择C
引用FFmpeg源码,然后经过一段时间的导入,大概5分钟+
配置header和lib的seach path
新建target并配置源码目录
配置FFmpegDebuggerMake的Executable和执行参数
需要注意的一点是这里的参数需要输入绝对路径
断点调试
运行起来后我们就可以愉快的断点Debug了
~~END~~