前言
自己因?yàn)楣ぷ黜?xiàng)目的需要使用FFmpeg去實(shí)現(xiàn)視頻的編碼和解碼。在使用的過程中自己感到編譯和集成FFmpeg還是比較容易出錯(cuò)的,經(jīng)常出現(xiàn)一些莫名其妙的錯(cuò)誤。因此想將這整個(gè)過程記錄下來,以防自己忘記。并且希望能夠?qū)τ行枰娜擞兴鶐椭?/p>
編譯FFmpeg
想要方便快速的編譯FFmpeg我們需要以下幾個(gè)工具:
1,Homebrew -- 一個(gè)包依賴管理器
2,gas-preprocessor -- FFmpeg所需的腳本文件
3,yasm -- 一個(gè)完全重寫的NASM匯編
4,FFmpeg-iOS-build-script -- 編譯FFmpeg庫的文件
1,打開terminal,查看是否已經(jīng)安裝Homebrew。

如果輸入如圖指令,并獲得Homebrew的版本號,說明你已經(jīng)安裝了Homebrew。請?zhí)^第2步。
2,安裝Homebrew
在terminal中輸入以下命令:
ruby -e “$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/master/install](https://raw.githubusercontent.com/Homebrew/install/master/install))”
安裝完畢后,重復(fù)第1步的命令來確認(rèn)Homebrew已經(jīng)成功安裝。
3,下載gas-preprocessor
將gas-preprocessor下載下來,解壓縮后得到以下文件

將gas-preprocessor.pl 復(fù)制到/usr/sbin目錄下,如果這個(gè)目錄無法復(fù)制,那么就將該文件復(fù)制到/usr/bin目錄下。
之后根據(jù)復(fù)制的目錄路徑在terminal中輸入以下指令開啟可執(zhí)行權(quán)限。
chmod 777 /usr/sbin/gas-preprocessor.pl
或者
chmod 777 /usr/bin/gas-preprocessor.pl
4,下載yams
在terminal中輸入如圖指令,獲得如圖效果

如果輸入如圖指令后得到的提示如下圖說明已經(jīng)安裝了yasm

5,編譯FFmpeg-iOS-build-script,獲得FFmpeg靜態(tài)庫文件
下載FFmpeg-iOS-build-script文件,解壓縮后獲得以下文件:

打開terminal,進(jìn)入該文件目錄下,輸入以下命令,然后就可以去喝茶了,編譯的時(shí)間略長......
./build-ffmpeg.sh
上面的命令是用來編譯所有類型的庫,你也可以根據(jù)官方文檔編譯你想要類型的庫。
編譯結(jié)束后會(huì)得到如圖目錄:

至此,我們已經(jīng)獲得了所需要的靜態(tài)庫文件。
集成FFmpeg靜態(tài)庫到iOS項(xiàng)目中
1,將FFmpeg-iOS文件夾復(fù)制到項(xiàng)目跟目錄中

2,將FFmpeg-iOS圖拽到工程當(dāng)中

3,添加Linked Frameworks and Libraries

4,設(shè)置Header Search Paths和Library Search Paths

以上路徑需要是你的文件所在路徑。
至此,靜態(tài)庫的集成已經(jīng)完成了?,F(xiàn)在我們在代碼中輸入以下內(nèi)容進(jìn)行檢測:

如果run之后沒有報(bào)錯(cuò),我們的程序輸出了一些靜態(tài)庫的信息,那么恭喜你成功的完成了FFmpeg靜態(tài)庫的集成工作。