FFmpeg源码调试
前言
最近在学习下FFmpeg源代码,也会同时记录这一学习过程。这篇是这一系列的开篇,记录FFmpeg的源码调试方法。
调试环境:Mac + Xcode
整体调试流程
使用Xcode调试FFmpeg源代码,主要有以下几个步骤:
- 下载FFmpeg源码
- 编译FFmpeg
- Xcode调试FFmpeg源码
下载FFmpeg源码
直接github上下载即可,https://github.com/FFmpeg/FFmpeg
编译FFmpeg
最终的目的是使用ffplay播放视频,并且能够源码调试这个播放流程。
安装SDL库
ffplay的编译依赖SDL库,所以先要安装SDL。直接是用brew安装
1 | brew install sdl2 |
开始编译FFmpeg
需要编译可调试的ffplay,所以编译选项需要带上 enable-ffplay 和 enable-debug。最终的编译指令如下:
1 | // 第一步 |
验证编译产物
编译完成后,会生成几个可执行文件:
- ffmpeg && ffmpeg_g
- ffprobe && ffprobe_g
- ffplay && ffplay_g
其中带g后缀的就是可调式的版本
执行ffplay_g,看能否正常播放视频
1 | ./ffplay_g demo.mp4 |
Xcode调试FFmpeg源码
参考该链接 https://zhuanlan.zhihu.com/p/479796037
需要注意的是:该链接中调试的是ffmpeg,所以我们需要将ffmpeg_g替换成ffplay_g
遇到的问题
编译FFmpeg后,产物没有ffplay
- 没有安装SDL
- 没有打开enable-ffplay编译选项
可以将configure输出到文件,查看编译产物是否带ffplay
1 | ./configure --enable-debug --disable-optimizations --disable-asm --enable-ffplay > ff.txt |
参考链接
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.