FFmpeg框架在iOS平臺(tái)上的編譯和使用

FFmpeg框架在iOS平臺(tái)上的編譯和使用

1.使用環(huán)境

macOS Sierra 10.12.3?

2.開發(fā)工具

Xcode 8.2.1

Terminal(終端)

3.需要下載相關(guān)的文件鏈接

gas-preprocessor

yasm

FFmpeg-iOS-build-script

ffmpeg-2.8

kxmovie

所要下載的文件

只需要下載上圖中的4個(gè),ffmpeg-2.8不用直接下載,因?yàn)楫?dāng)編譯腳本的時(shí)候發(fā)現(xiàn)mac沒有ffmpeg-2.8時(shí)會(huì)在終端里幫助我們下載ffmpeg-2.8

1.下載完成后打開終端 進(jìn)入gas-preprocessor文件夾

cd 將文件拖進(jìn)來回車

2.將文件夾內(nèi)的gas-preprocessor.pl文件拷貝到/usr/sbin/目錄下

sudo cp /Users/chenqiang/Downloads/gas-preprocessor-master/gas-preprocessor.pl /usr/local/bin

注意上面的sudo cp(這個(gè)地方是gas-preprocessor文件下gas-preprocessor.pl的地址,只需要將gas-preprocessor.pl文件拖進(jìn)來就行了) /usr/local/bin 回車

3.修改/usr/sbin/gas-preprocessor.pl的文件權(quán)限為可執(zhí)行權(quán)限

如果1.命令如果不行就使用2.命令(我當(dāng)時(shí)用的是2.命令)

1.

chmod 777 /usr/sbin/gas-preprocessor.pl

2.

chmod +x gas-preprocessor.pl

gas-preprocessor文件夾的操作

4.此時(shí)為了編譯時(shí)有問題我們現(xiàn)在進(jìn)入下載后的yasm文件夾,通過編譯安裝命令yasm

cd 將文件拖進(jìn)來回車

./configure && make -j 4 && sudo make install

如果上一步不行使用Homebrew包管理器,進(jìn)行安裝(我是用Homebrew包管理器,進(jìn)行安裝的)

首先檢查Homebrew包管理器是否安裝

終端命令輸入 brew

如果沒有安裝 Homebrew包管理器

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

執(zhí)行完之后輸入下面的命令安裝yasm

brew install yasm

測(cè)試是否安裝成功

yasm --version

brew
ruby-e-1
ruby-e
檢測(cè)是否安裝成功用版本查看

上方的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拖進(jìn)來回車

編譯所有的版本arm64、armv7、x86_64的靜態(tài)庫(kù)

./build-ffmpeg.sh

如果編譯支持arm64架構(gòu)的靜態(tài)庫(kù)

./build-ffmpeg.sh arm64

如果編譯適用于armv7和x86_64(64-bit simulator)的靜態(tài)庫(kù)

./build-ffmpeg.sh armv7 x86_64

或者編譯合并的版本

./build-ffmpeg.sh lips

接下來就是等終端自己編譯不用再管,大概要十幾分鐘

若是遇到上面的問題就重復(fù)上 面的第一個(gè)步驟的gas-preprocessor過程

參考如下

1. 下載最新的gas-preprocessor.pl,地址是https://github.com/applexiaohao/FFmpeg-iOS-build-script

1.下載完成后打開終端 進(jìn)入gas-preprocessor文件夾

cd 將文件拖進(jìn)來回車

2.將文件夾內(nèi)的gas-preprocessor.pl文件拷貝到/usr/sbin/目錄下

sudo cp /Users/chenqiang/Downloads/gas-preprocessor-master/gas-preprocessor.pl /usr/local/bin

注意上面的sudo cp(這個(gè)地方是gas-preprocessor文件下gas-preprocessor.pl的地址,只需要將gas-preprocessor.pl文件拖進(jìn)來就行了) /usr/local/bin 回車

3.修改/usr/sbin/gas-preprocessor.pl的文件權(quán)限為可執(zhí)行權(quán)限

如果1.命令如果不行就使用2.命令(我當(dāng)時(shí)用的是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這個(gè)文件夾(最好下載最新的kxmovie,太久的會(huì)提示UIImage找不到)也拖入到工程中

添加下面的依賴庫(kù)

* 加入依賴庫(kù)libz.tbd

* 加入依賴庫(kù)libbz2.tbd

* 加入依賴庫(kù)libiconv.tbd

這時(shí)運(yùn)行可能會(huì)報(bào)錯(cuò) #include “l(fā)ibavformat/avformat.h”這個(gè)頭文件找不到

下面是解決辦法

進(jìn)入工程target settings 這里寫圖片描述


搜索 library search paths 這里寫圖片描述

改為后綴是.lib的

然后復(fù)制這個(gè)lib的的這一條

在setting 的搜索框中搜索header search paths

這里寫圖片描述

添加剛才復(fù)制的改為.include的后綴

運(yùn)行發(fā)現(xiàn)工程不會(huì)報(bào)錯(cuò)了這樣FFmpeg就算導(dǎo)入成功了

接下

在工程中引入#import "KxMovieViewController.h"

在創(chuàng)建解碼的地方

模擬器運(yùn)行成功的:

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

你也可以直接下載編譯好的FFMpeg

鏈接: https://pan.baidu.com/s/1c1Nqeis 密碼: 8twi

然后拖入x-code就是

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容