Mac上终端调试FFmpeg任意版本源码的最佳实践

文章目录

      • 一. FFmpeg原工程调试
        • step.1 编译 ffmpeg
        • step.2 新建一个空的 xcode 项目
        • step.3 添加 `ffmpeg-3.0.2` 源码目录进 `ffmpeg-xcode` 项目中
        • step.4 添加头文件搜索路径
        • step.5 添加一个 target
        • step.6 修改 `ffmpeg-make` 源码路径配置
        • step.7 修改 `ffmpeg-make` 命令行参数
        • step.8 添加断点(ffplay.c->main函数), 点击 run
      • 二. IJKPlayer带FFMpeg源码调试(推荐)
          • 为什么要用这个方式呢?有以下几个原因. 1.自带了UI界面,方便终端调试. 2.IJKPlayer对FFmpeg有自己的改造.
        • 1. 安装git和yasm
        • 2. 安装源码
        • 3. 将默认编译的 module-lite.sh 更改为 module-default.sh
        • 4. 获取 ffmpeg
        • 5. 编译
        • 6.调试
      • 三. brew安装FFMpeg指定版本
        • 1. 查看软件包安装来源
        • 2. Github中查看rb文件历史提价(版本)信息
        • 3. 安装 ffmpeg-3.4.2 版本软件包
      • 参考文献

一. FFmpeg原工程调试

https://github.com/xcysuccess/ffmpeg-xcode

step.1 编译 ffmpeg
  • tar xvf ffmpeg-3.0.2.tar.bz2
  • cd ffmpeg-3.0.2
  • ./configure --enable-debug
  • make -j8
step.2 新建一个空的 xcode 项目
  • Create a new Xcode project
  • 新建一个空的 xcode 项目

Mac上终端调试FFmpeg任意版本源码的最佳实践_第1张图片
Mac上终端调试FFmpeg任意版本源码的最佳实践_第2张图片
Mac上终端调试FFmpeg任意版本源码的最佳实践_第3张图片

step.3 添加 ffmpeg-3.0.2 源码目录进 ffmpeg-xcode 项目中
  • 拖进去
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第4张图片

  • 不要勾选下面这个选项
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第5张图片

  • 接着一点要选 ffmpeg-xcode, 否则看代码时, 不可以跳转. 写代码时不会有提示.
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第6张图片

step.4 添加头文件搜索路径
  • 到这里就可以实现头文件跳转了. 要等待处理完毕才可以点击头文件或者类来查看代码.
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第7张图片
step.5 添加一个 target
  • File -> New -> Target -> Cross-platform -> External Build System
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第8张图片

  • target 命名为 ffmpeg-make
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第9张图片

  • target 切换到 ffmpeg-make
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第10张图片

step.6 修改 ffmpeg-make 源码路径配置
  • 修改 ffmpeg-make 源码路径。

Mac上终端调试FFmpeg任意版本源码的最佳实践_第11张图片

step.7 修改 ffmpeg-make 命令行参数
  • 修改命令行参数
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第12张图片

  • 修改可执行命令
    Mac上终端调试FFmpeg任意版本源码的最佳实践_第13张图片

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

Mac上终端调试FFmpeg任意版本源码的最佳实践_第14张图片

二. IJKPlayer带FFMpeg源码调试(推荐)

为什么要用这个方式呢?有以下几个原因. 1.自带了UI界面,方便终端调试. 2.IJKPlayer对FFmpeg有自己的改造.

那么具体怎么用呢?

1. 安装git和yasm
brew install git
brew install yasm
2. 安装源码
# 进入新建的文件夹内
cd ~/Desktop/ijkplayer/

# 获取 ijkplayer 源码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios

# 进入源码目录
cd ijkplayer-ios

# 切换分支 (目前为k0.8.8, 可以自行去GitHub查看最新版本号)
git checkout -B latest k0.8.8
3. 将默认编译的 module-lite.sh 更改为 module-default.sh
# 进入 config 目录
cd config

# 删除当前的 module.sh 文件
rm module.sh

# 可根据需要替换为 `module-default.sh`, `module-lite-hevc.sh`, `module-lite.sh`
# 创建软链接 module.sh 指向 module-default.sh
ln -s module-default.sh module.sh

cd ..
cd ios
sh compile-ffmpeg.sh clean
4. 获取 ffmpeg
# 回到根目录
cd ..

# 初始化 ffmpeg
./init-ios.sh
5. 编译

可以在 compile-ffmpeg.sh 中删除 armv7 ,然后编译

./compile-ffmpeg.sh all
6.调试

Mac上终端调试FFmpeg任意版本源码的最佳实践_第15张图片

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

Mac上终端调试FFmpeg任意版本源码的最佳实践_第16张图片

三. brew安装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的同学应该已经看透了秘密):

Mac上终端调试FFmpeg任意版本源码的最佳实践_第17张图片

Mac上终端调试FFmpeg任意版本源码的最佳实践_第18张图片

Mac上终端调试FFmpeg任意版本源码的最佳实践_第19张图片

Mac上终端调试FFmpeg任意版本源码的最佳实践_第20张图片

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

ffmpeg:3.4.2 对应的ffmpeg.rb文件网址:https://raw.githubusercontent…
执行安装

$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/18b47ee7e250f4e0447dc6454d9189d1fae0c6a5/Formula/ffmpeg.rb.  

参考文献

  1. ijkPlayer编译、打包、多格式及Https支持
  2. ffmpeg安装指定版本
  3. ffmpeg源码调试,非静态库

你可能感兴趣的:(音视频技术,ffmpeg,macos,xcode)