大致步驟按照官方文檔操作就行。但是使用xcode9以后的版本編譯會(huì)出現(xiàn)以下幾個(gè)問題。
1.如果顯示錯(cuò)誤是關(guān)于armv7的錯(cuò)誤(如:./libavutil/arm/asm.S:50:9: error: unknown directive .arch armv7-a),是因?yàn)閤code9以后對(duì)于32位不再支持。
解決方法可以有以下幾種:
(1)下載使用xcode9版本編譯,編譯前需要選擇Xcode版本 sudo xcode-select -s /Applications/Xcode9.1.app/Contents/Developer,根據(jù)自己版本修改位置和版本號(hào)。
(2)如果是xcode13之前版本,可以修改ios文件夾下的compile-ffmpeg.sh里邊第24行為FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64”,其實(shí)就是刪除掉了armv7。但是到了xcode13以后必須按照下面這位大神的操作才可以 傳送門
(3)如果不想修改任何編譯腳本,也不想下載xcode9。這個(gè)時(shí)候可以在編譯的時(shí)候不選擇 ./compile-ffmpeg.sh all 而是使用 ./compile-ffmpeg.sh arm64 這樣只編譯64位的系統(tǒng), 這樣編譯起來也快。
兼容SSL
如果需要兼容ssl的話,需要先執(zhí)行compile-openssl.sh腳本, ./compile-openssl.sh all。
然后在執(zhí)行./compile-ffmpeg.sh這個(gè)腳本
網(wǎng)上有人說兼容SSL需要在config文件夾下的module.sh指向的腳本添加一行如下:
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl”。但是我自己編譯的庫是不需要添加這一行也能夠正常播放https地址的鏈接。