Mac下调试FFmpeg的两种方式(支持10.15.4及以上)
2020-08-21 本文已影响0人
向晨宇
公共步骤
step.1 编译 ffmpeg
在github上下载ffmpeg最新版
tar xvf ffmpeg-4.0.2.tar.bz2
cd ffmpeg-4.0.2
./configure --prefix="ffmpeg_build" --enable-debug --extra-cflags="-fno-stack-check" --cc=clang
sudo make && make install
step.2 新建一个空的 xcode 项目
- Create a new Xcode project
-
新建一个空的 xcode 项目
1.png
2.png
step.3 添加 ffmpeg-4.0.2
源码目录进 ffmpeg4_demo
项目中
image.png
step.4 添加头文件搜索路径
-
到这里就可以实现头文件跳转了. 要等待处理完毕才可以点击头文件或者类来查看代码.
image.png
方法一. 编译库之后用调试库下断点调试
step.1 添加一个 target
-
8.pngFile -> New -> Target -> Cross-platform -> External Build System
-
target 命名为
image.pngffmpeg-make
-
target 切换到
10.pngffmpeg-make
step.2 修改 ffmpeg-make
源码路径配置
- 修改
ffmpeg-make
源码路径。
image.png
step.3 修改 ffmpeg-make
命令行参数
-
修改命令行参数
image.png -
修改可执行命令
image.png
step.4 添加断点(ffplay.c->main函数), 点击 run
14.png方法二. 调试具体代码
在公共步骤之后我们在main.cpp写如下代码:
#include <iostream>
#ifdef __cplusplus
extern "C" {
#endif
#include "libavformat/avformat.h"
#include "libavcodec/avcodec.h"
#ifdef __cplusplus
}
#endif
int decodeStream(const char *url) {
int ret;
AVFormatContext *ifmtCtx = NULL;
if ((ret = avformat_open_input(&ifmtCtx,url, NULL, NULL)) < 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot openinput file\n");
return ret;
}
if ((ret = avformat_find_stream_info(ifmtCtx, NULL))< 0) {
av_log(NULL, AV_LOG_ERROR, "Cannot findstream information\n");
return ret;
}
return 0;
}
int main(int argc, const char * argv[]) {
// insert code here...
decodeStream("xxx");
return 0;
}
然后打断点即可完成调试
xcode添加库
image.png注意事项
1. 如果ffmpeg目录变了或者更新怎么办?
现在拿到了路径,我们就去这里路径去add.处理完之后变成这样。
利用dwarfdump -debug-info target xxx.a
去查看编译的ffmpeg路径,如果更新或者目录变了需要重新编译
2. 编译指定版本的ffmpeg
比如我现在要安装FFmpeg3.4.2版本.
1. 查看软件包安装来源
$ brew info ffmpeg
执行上述命令您会得到如下信息:
$ From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb
你看到了什么?github(版本控制) 还有 *.rb(安装文件)
2. Github中查看rb文件历史提价(版本)信息
复制链接到地址栏:https://github.com/Homebrew/homebrew-core/blob/master/Formula/ffmpeg.rb
可以看到如下信息:
url "https://ffmpeg.org/releases/ffmpeg-4.0.1.tar.xz"
sha256 "605f5c01c60db35d3b617a79cabb2c7032412be243554602eeed1b628125c0ee"
可以看到当前版本就是: ffmpeg-4.0.1
接着,在Github上查看历史提交信息,按照如下操作依次点击(熟悉github的同学应该已经看透了秘密):
18.png
19.png
20.png
3. 安装 ffmpeg-3.4.2 版本软件包
ffmpeg:3.4.2 对应的ffmpeg.rb文件网址:https://raw.githubusercontent...
执行安装