ffmpeg mac 批量脚本_Mac下调试FFmpeg的两种方式(支持10.15.4及以上)

本文介绍了在Mac上调试FFmpeg的两种方法,包括通过批量脚本编译和使用Xcode的外部构建系统。详细步骤涵盖了从下载源码、创建Xcode项目到添加头文件搜索路径,以及如何设置目标和命令行参数进行断点调试。同时,文章还提醒了如何处理ffmpeg目录变化和安装指定版本的ffmpeg。
摘要由CSDN通过智能技术生成

公共步骤

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 项目

841ba82e5017

1.png

841ba82e5017

2.png

step.3 添加 ffmpeg-4.0.2 源码目录进 ffmpeg4_demo 项目中

841ba82e5017

image.png

step.4 添加头文件搜索路径

到这里就可以实现头文件跳转了. 要等待处理完毕才可以点击头文件或者类来查看代码.

841ba82e5017

image.png

方法一. 编译库之后用调试库下断点调试

step.1 添加一个 target

File -> New -> Target -> Cross-platform -> External Build System

841ba82e5017

8.png

target 命名为 ffmpeg-make

841ba82e5017

image.png

target 切换到 ffmpeg-make

841ba82e5017

10.png

step.2 修改 ffmpeg-make 源码路径配置

修改 ffmpeg-make 源码路径。

841ba82e5017

image.png

step.3 修改 ffmpeg-make 命令行参数

修改命令行参数

841ba82e5017

image.png

修改可执行命令

841ba82e5017

image.png

step.4 添加断点(ffplay.c->main函数), 点击 run

841ba82e5017

14.png

方法二. 调试具体代码

在公共步骤之后我们在main.cpp写如下代码:

#include

#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添加库

841ba82e5017

image.png

注意事项

1. 如果ffmpeg目录变了或者更新怎么办?

现在拿到了路径,我们就去这里路径去add.处理完之后变成这样。

841ba82e5017

image.png

利用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文件历史提价(版本)信息

url "https://ffmpeg.org/releases/ffmpeg-4.0.1.tar.xz"

sha256 "605f5c01c60db35d3b617a79cabb2c7032412be243554602eeed1b628125c0ee"

可以看到当前版本就是: ffmpeg-4.0.1

接着,在Github上查看历史提交信息,按照如下操作依次点击(熟悉github的同学应该已经看透了秘密):

841ba82e5017

17.png

841ba82e5017

18.png

841ba82e5017

19.png

841ba82e5017

20.png

3. 安装 ffmpeg-3.4.2 版本软件包

ffmpeg:3.4.2 对应的ffmpeg.rb文件网址:https://raw.githubusercontent...

执行安装

参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值