首先下載FFmpeg源碼 git clone https://github.com/FFmpeg/FFmpeg.git
ps:這里也有打包好的饼拍,不想搞下面的可以直接去這里下載:https://evermeet.cx/ffmpeg/
打包arm64和x86_64需要兩個(gè)對應(yīng)環(huán)境的brew提供支持赡模。
安裝 Homebrew 這個(gè)網(wǎng)站寫的很詳細(xì):https://brew.idayer.com
安裝 ARM 版 Homebrew
ARM版 Homebrew 最終被安裝在/opt/homebrew路徑下。
直接執(zhí)行:/bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
添加環(huán)境:export PATH="/opt/homebrew/bin:$PATH"
安裝 X86 版 Homebrew
X86版 Homebrew 最終被安裝在/usr/local路徑下惕耕。
執(zhí)行:arch -x86_64 /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"
添加環(huán)境:export PATH="/usr/local/Homebrew/bin:$PATH"
多版本共存
設(shè)置別名到環(huán)境
alias abrew='arch -arm64 /opt/homebrew/bin/brew'
alias ibrew='arch -x86_64 /usr/local/Homebrew/bin/brew'
abrew纺裁、ibrew可以根據(jù)你的喜好自定義。
which abrew 應(yīng)該回來 /opt/homebrew/bin/brew
which ibrew 應(yīng)該回來 /usr/local/Homebrew/bin/brew
切換默認(rèn)brew
調(diào)整對應(yīng)環(huán)境PATH的位置即可。
打包 ARM 版 FFmpeg
- cd到FFmpeg文件夾
- 執(zhí)行 ./configure --cc=/usr/bin/clang --prefix=~/Downloads --enable-fontconfig --enable-gpl --enable-version3 --pkg-config-flags=--static --disable-ffplay --extra-cflags=-I/opt/homebrew/include --extra-ldflags=-L/opt/homebrew/lib
- make clean
- make -j4
打包 X86 版 FFmpeg
- 終端使用 Rosetta 打開
- cd到FFmpeg文件夾
- 執(zhí)行 ./configure --cc=/usr/bin/clang --prefix=~/Downloads --enable-fontconfig --enable-gpl --enable-version3 --pkg-config-flags=--static --disable-ffplay --extra-cflags=-I/usr/local/include --extra-ldflags=-L/usr/local/lib
- make clean
- make -j4
打包說明
- 打包時(shí)可能會報(bào)各種文件找不到欺缘,用對應(yīng)的 brew install 即可(abrew install OR brew install)栋豫。這個(gè)博客寫的很好:https://lvv.me/posts/2020/04/14_build_ffmpeg/
- FFmpeg最后兩句指令 --extra-cflags= --extra-ldflags= 表示FFmpeg需要的文件路徑,由于來回切換和一些環(huán)境因素谚殊,可能導(dǎo)致找不到已經(jīng)下載的庫丧鸯,建議始終加上這兩句,需要注意的是 ARM 和 X86 的文件路徑不一樣嫩絮。
- 例子中的 FFmpeg 指令是一些比較基礎(chǔ)的指令丛肢,根據(jù)自己的需求修改。
https://www.cnblogs.com/x_wukong/p/12746031.html
https://blog.csdn.net/u012117034/article/details/128157475 - 切換打包時(shí)剿干,可能報(bào)錯(cuò) does not match previous archive members cputype蜂怎,直接執(zhí)行 make clean 即可,為避免出錯(cuò)置尔,例子中每次都加上了這句杠步。
合并兩個(gè)二進(jìn)制包
lipo -create /Users//ffmpeg-x86/ffmpeg /Users//ffmpeg-arm/ffmpeg -output /Users/**/ffmpeg-merage/ffmpeg
- 都是絕對路徑。
- -output 后面跟的路徑要加上合成后的包名榜轿,要不然會報(bào)錯(cuò)幽歼。
lipo -info 查看包的架構(gòu)