debugly/fsplayerdebugly/fsplayer
使用手册
技术干货
鸣谢
GitHub
使用手册
技术干货
鸣谢
GitHub
  • 使用手册

    • 介绍
    • 快速上手
    • 贡献指南
      • 1、fork 源码
      • 2、安装依赖库
      • 3、修改 FFmpeg 等三方库源码
    • 问题解答
    • 版本说明

注意

此文档将介绍修改源码后如何贡献到开源社区,日常使用者可忽略。

感谢你对 debugly/fsplayer 的认可,一起加入到其中让它变得更好吧。下面将为你介绍如何搭建开发环境:

提示

开发 fsplayer 的最佳环境

  • macOS Sequoia(15.1)
  • Xcode Version 16.1 (15F31d)
  • CocoaPods 1.16.1

1、fork 源码

当你做好了一同开发 fspalyer 时,你需要在 Github 上将 debugly/fsplayer fork 到自己的账号下,然后从自己名下的仓库克隆,并拉取依赖的子模块:

#{your_name} 改成你的 github 用户名
git clone https://github.com/{your_name}/fsplayer.git fsplayer
cd fsplayer
git checkout -B main
git submodule update --init

2、安装依赖库

fspalyer 依赖了 FFmpeg、ass、opus、smb2 等三方库,如果不需要修改这些三方库,可以直接下载已经预编译好的版本,直接调用 install 命令安装这些三方库:

./FFToolChain/main.sh install -p macos -l 'ass ffmpeg'
./FFToolChain/main.sh install -p ios -l 'ass ffmpeg'
./FFToolChain/main.sh install -p tvos -l 'ass ffmpeg'
# 可通过 demo 调试开发
pod install --project-directory=./examples/macos
pod install --project-directory=./examples/ios
pod install --project-directory=./examples/tvos

现在就可以打开 demo 工程运行项目了,修改 fsplayer 的源码后记得推送到你 fork 的仓库后方可在 GitHub 上提交 PR 给我。

提示

当安装 FFmpeg 这个库时,默认会把 FFmpeg 依赖的三方库一并安装,需要说明的是这些库不会被安装到系统目录里,只会安装到 FFToolChain/build 目录下,fspalyer 也不会使用使用 brew 等工具安装到系统里三方库。

3、修改 FFmpeg 等三方库源码

如果不需要修改 FFmpeg 等三方库源码,则可以跳过下面的介绍:

借助于 FFToolChain 这个工具管理所有三方库的源码以及编译和发布,这个工具就是为 debugly/fsplayer 打造的,所以如果使用起来不方便可以提交 issue给我。

使用 init 命令可以初始化三方库的源码,其原理是将远程仓库克隆到 build/extra 目录里,然后读取配置文件里定义好的 GIT_COMMIT 那次提交,二次克隆到该平台和架构对应的目录里。

#for ios
#先把所有依赖下载下来
./FFToolChain/main.sh install -l 'ass ffmpeg' -p ios
pod install --project-directory=examples/ios
#初始化需要修改的三方库的源码
./FFToolChain/main.sh init -l ffmpeg -p ios

执行完毕后,源码将会克隆到:build/src/ios/ 目录:

src
    ├── ios
    │   ├── ffmpeg-arm64
    │   ├── ffmpeg-arm64_simulator
    │   └── ffmpeg-x86_64_simulator

接下来就可以进入到对应的目录去修改源码了,当修改完后通过 compile 命令编译源码:

#通过 -a 参数指定编译的架构,可以提升开发效率,减少编译等待时间
./FFToolChain/main.sh compile -l ffmpeg -p ios -a arm64

运行 demo 进行测试,功能无误后,你需要进入到三方库对应的仓库目录(比如:fsplayer/FFToolChain/build/src/ios/ffmpeg-arm64)并提交相关修改。

提示

对于三方库的一切修改均通过 patch 的形式存在,下面简单介绍如何生成 patch。

  • 通过 git format-patch {your_commit_id} 命令,将刚才的改动以 patch 的形式导出
  • 把这些 patches 保存到 FFToolChain/patches 目录里
  • 将这些 patch 推送到你 fork 的仓库
  • 登录 GitHub 提交 PR 给我

脚本还提供了很多功能,可以执行 ./FFToolChain/main.sh --help 查看帮助。

感谢你为 debugly/fsplayer 做出的巨大贡献,所有使用者都会感激你的付出。

Edit this page
Last Updated: 3/26/2025, 8:11:38 AM
Contributors: qianlongxu, Matt Reach
Prev
快速上手
Next
问题解答