FFmpeg框架在iOS平臺上的編譯和使用
1.使用環(huán)境
macOS Sierra 10.12.3?
2.開發(fā)工具
Xcode 8.2.1
Terminal(終端)
3.需要下載相關(guān)的文件鏈接

只需要下載上圖中的4個,ffmpeg-2.8不用直接下載,因為當(dāng)編譯腳本的時候發(fā)現(xiàn)mac沒有ffmpeg-2.8時會在終端里幫助我們下載ffmpeg-2.8
1.下載完成后打開終端 進入gas-preprocessor文件夾
cd 將文件拖進來回車
2.將文件夾內(nèi)的gas-preprocessor.pl文件拷貝到/usr/sbin/目錄下
sudo cp /Users/chenqiang/Downloads/gas-preprocessor-master/gas-preprocessor.pl /usr/local/bin
注意上面的sudo cp(這個地方是gas-preprocessor文件下gas-preprocessor.pl的地址,只需要將gas-preprocessor.pl文件拖進來就行了) /usr/local/bin 回車
3.修改/usr/sbin/gas-preprocessor.pl的文件權(quán)限為可執(zhí)行權(quán)限
如果1.命令如果不行就使用2.命令(我當(dāng)時用的是2.命令)
1.
chmod 777 /usr/sbin/gas-preprocessor.pl
2.
chmod +x gas-preprocessor.pl

4.此時為了編譯時有問題我們現(xiàn)在進入下載后的yasm文件夾,通過編譯安裝命令yasm
cd 將文件拖進來回車
./configure && make -j 4 && sudo make install
如果上一步不行使用Homebrew包管理器,進行安裝(我是用Homebrew包管理器,進行安裝的)
首先檢查Homebrew包管理器是否安裝
終端命令輸入 brew
如果沒有安裝 Homebrew包管理器
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
執(zhí)行完之后輸入下面的命令安裝yasm
brew install yasm
測試是否安裝成功
yasm --version




上方的Failed during:/usr/local/bin/brew update --force說明是fatal: unable to access 'https://github.com/Homebrew/homebrew-core/': SSLRead() return error -9806
Error: Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core failed!
Updated 1 tap (homebrew/core).原因是網(wǎng)絡(luò)不穩(wěn)定不能訪問github,還有就是之前我已經(jīng)安裝過了Homebrew,多試幾次ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
接下來
執(zhí)行FFmpeg-iOS-build-script-master文件夾內(nèi)的build-ffmpeg.sh
cd 將文件FFmpeg-iOS-build-script-master拖進來回車
編譯所有的版本arm64、armv7、x86_64的靜態(tài)庫
./build-ffmpeg.sh
如果編譯支持arm64架構(gòu)的靜態(tài)庫
./build-ffmpeg.sh arm64
如果編譯適用于armv7和x86_64(64-bit simulator)的靜態(tài)庫
./build-ffmpeg.sh armv7 x86_64
或者編譯合并的版本
./build-ffmpeg.sh lips
接下來就是等終端自己編譯不用再管,大概要十幾分鐘

若是遇到上面的問題就重復(fù)上 面的第一個步驟的gas-preprocessor過程
參考如下
1. 下載最新的gas-preprocessor.pl,地址是https://github.com/applexiaohao/FFmpeg-iOS-build-script
1.下載完成后打開終端 進入gas-preprocessor文件夾
cd 將文件拖進來回車
2.將文件夾內(nèi)的gas-preprocessor.pl文件拷貝到/usr/sbin/目錄下
sudo cp /Users/chenqiang/Downloads/gas-preprocessor-master/gas-preprocessor.pl /usr/local/bin
注意上面的sudo cp(這個地方是gas-preprocessor文件下gas-preprocessor.pl的地址,只需要將gas-preprocessor.pl文件拖進來就行了) /usr/local/bin 回車
3.修改/usr/sbin/gas-preprocessor.pl的文件權(quán)限為可執(zhí)行權(quán)限
如果1.命令如果不行就使用2.命令(我當(dāng)時用的是2.命令)
1.
chmod 777 /usr/sbin/gas-preprocessor.pl
2.
chmod +x gas-preprocessor.pl
編譯后的內(nèi)容:

編譯完成后將FFmpeg-iOS-build-script-master內(nèi)的FFmpeg-iOS文件夾拖到到x-code工程中,將kxMovie這個文件夾(最好下載最新的kxmovie,太久的會提示UIImage找不到)也拖入到工程中

添加下面的依賴庫
* 加入依賴庫libz.tbd
* 加入依賴庫libbz2.tbd
* 加入依賴庫libiconv.tbd
這時運行可能會報錯 #include “l(fā)ibavformat/avformat.h”這個頭文件找不到
下面是解決辦法
進入工程target settings 這里寫圖片描述

搜索 library search paths 這里寫圖片描述
改為后綴是.lib的
然后復(fù)制這個lib的的這一條
在setting 的搜索框中搜索header search paths
這里寫圖片描述
添加剛才復(fù)制的改為.include的后綴

運行發(fā)現(xiàn)工程不會報錯了這樣FFmpeg就算導(dǎo)入成功了
接下
在工程中引入#import "KxMovieViewController.h"
在創(chuàng)建解碼的地方

模擬器運行成功的:

有啥問題也可以參考http://www.itdecent.cn/p/fab457bef29c

你也可以直接下載編譯好的FFMpeg
鏈接: https://pan.baidu.com/s/1c1Nqeis 密碼: 8twi
然后拖入x-code就是