iOS項(xiàng)目中編譯和集成FFmpeg

前言

自己因?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安裝情況

如果輸入如圖指令,并獲得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文件結(jié)構(gòu)

將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中輸入如圖指令,獲得如圖效果

安裝yasm

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

已安裝yasm
5,編譯FFmpeg-iOS-build-script,獲得FFmpeg靜態(tài)庫文件

下載FFmpeg-iOS-build-script文件,解壓縮后獲得以下文件:

目錄結(jié)構(gòu)

打開terminal,進(jìn)入該文件目錄下,輸入以下命令,然后就可以去喝茶了,編譯的時(shí)間略長......

./build-ffmpeg.sh

上面的命令是用來編譯所有類型的庫,你也可以根據(jù)官方文檔編譯你想要類型的庫。
編譯結(jié)束后會(huì)得到如圖目錄:

屏幕快照_2016-08-10_下午3_18_17.png

至此,我們已經(jīng)獲得了所需要的靜態(tài)庫文件。

集成FFmpeg靜態(tài)庫到iOS項(xiàng)目中

1,將FFmpeg-iOS文件夾復(fù)制到項(xiàng)目跟目錄中
項(xiàng)目跟目錄

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

工程目錄
3,添加Linked Frameworks and Libraries
添加相應(yīng)框架和庫
4,設(shè)置Header Search Paths和Library Search Paths
設(shè)置頭文件路徑和庫路徑

以上路徑需要是你的文件所在路徑。

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

檢測靜態(tài)庫

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

后記

相信你通過這篇文章已經(jīng)能夠明白FFmpeg在iOS的集成了,如果你覺得對你有幫助就點(diǎn)個(gè)贊吧。本人作為FFmpeg的新手,將會(huì)在后續(xù)陸續(xù)總結(jié)一些有關(guān)使用的心得。希望有朋友能跟我一起學(xué)習(xí)!
如需轉(zhuǎn)載請標(biāo)明作者,只有尊重知識的分享才是傳播知識最好的方式,謝謝!
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容