FFmpeg框架在iOS平臺上的編譯和使用

FFmpeg框架在iOS平臺上的編譯和使用

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個,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

gas-preprocessor文件夾的操作

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

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

上方的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就是

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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