1. 程式人生 > >mac電腦上編譯能在ios上用的 ffmpeg 靜態庫 (成功經驗)有疑問可以留言

mac電腦上編譯能在ios上用的 ffmpeg 靜態庫 (成功經驗)有疑問可以留言

首先,相信你已經有了ffmpeg,廢話不多說,你仍然需要另外的一個檔案,gas-preprocessor.pl  這個檔案相信你也會想盡辦法找到,所有的一切具備之後,下面讓我們開始編譯。

1,開啟終端,cd到ffmpeg所在目錄。例如:cd /users/apple/documents/ffmpeg,回車,

這裡我編譯了三份,分別是:i386,armv7,armv7s 框架下的,如果需要armv6框架下的可以自己嘗試著編譯,畢竟現在很少人用了。

好了! i386:


./configure --cc=/Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc --as='./gas-preprocessor.pl /Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc' --extra-ldflags=-L/Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk/usr/lib/system --sysroot=/Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.0.sdk --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-armv5te --disable-asm --enable-cross-compile --enable-decoder=h264 --enable-pic --target-os=darwin --arch=i386 --cpu=i386 --extra-cflags='-arch i386' --extra-ldflags='-arch i386'

輸入上面這句回車,成功後會出現類似:

License: LGPL version 2.1 or later
Creating config.mak and config.h...
libavutil/avconfig.h is unchanged


WARNING: pkg-config not found, library detection may fail.
localhost:ffmpeg apple$ 

這樣說明已經配置完了,然後 make回車。最後出現類似:

STRIPffprobe
localhost:ffmpeg apple$ 

然後,make install 好了 成功了,現在你就可以將編譯好的靜態庫,拷貝到別的地方存起來了 。類似下面這種:

cp libavcodec/libavcodec.a ./lib/i386/libavcodec.a

這樣你就將 libavcodec.a庫拷貝到了 i386資料夾下,當你將所需要的庫全部拷貝出來後,你就可以清除掉編譯好的庫在當前目錄下的。

執行 make clean 命令就可以了。  接下來你可以照此方法編譯armv7,跟armv7s框架下的。

具體配置已經寫好了:

//armv7下

./configure --cc=/Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='./gas-preprocessor.pl /Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --extra-ldflags='-arch armv7 -isysroot /Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk' --sysroot=/Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-armv5te --disable-asm --enable-cross-compile --enable-decoder=h264 --enable-pic --target-os=darwin --arch=arm --cpu=cortex-a8 --extra-cflags='-arch armv7'

//armv7s下

./configure --cc=/Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='./gas-preprocessor.pl /Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --extra-ldflags='-arch armv7s -isysroot /Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk' --sysroot=/Applications/Xcode4.5.2.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-armv5te --disable-asm --enable-cross-compile --enable-decoder=h264 --enable-pic --target-os=darwin --arch=arm --cpu=cortex-a8 --extra-cflags='-arch armv7s' 

//修改。。上面的是在xcode4.5.2下編譯的,我又在xcode4.6下成功編譯:

//i386


./configure --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc --as='./gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc' --extra-ldflags=-L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/usr/lib/system --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-armv5te --disable-asm --enable-cross-compile --enable-decoder=h264 --enable-pic --target-os=darwin --arch=i386 --cpu=i386 --extra-cflags='-arch i386' --extra-ldflags='-arch i386' 


//arm7




./configure --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='./gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --extra-ldflags='-arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk' --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-armv5te --disable-asm --enable-cross-compile --enable-decoder=h264 --enable-pic --target-os=darwin --arch=arm --cpu=cortex-a8 --extra-cflags='-arch armv7' 


//arm6
//arm7s


./configure --cc=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc --as='./gas-preprocessor.pl /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc' --extra-ldflags='-arch armv7s -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk' --sysroot=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffserver --disable-armv5te --disable-asm --enable-cross-compile --enable-decoder=h264 --enable-pic --target-os=darwin --arch=arm --cpu=cortex-a8 --extra-cflags='-arch armv7s' 

如果 三個框架下的庫 你都編譯完了,那說明你已經相當的成功了,只差一步,那就是將三個版本的庫合成一個,那麼在任何框架下就都能用了。

這樣

// merge


lipo -create lib/i386/libavcodec.a lib/arm7/libavcodec.a lib/arm7s/libavcodec.a -output lib/libavcodec.a
lipo -create lib/i386/libavformat.a lib/arm7/libavformat.a lib/arm7s/libavformat.a -output lib/libavformat.a
lipo -create lib/i386/libavdevice.a lib/arm7/libavdevice.a lib/arm7s/libavdevice.a -output lib/libavdevice.a
lipo -create lib/i386/libavutil.a lib/arm7/libavutil.a lib/arm7s/libavutil.a -output lib/libavutil.a
lipo -create lib/i386/libswscale.a lib/arm7/libswscale.a lib/arm7s/libswscale.a -output lib/libswscale.a

這裡的所有的路徑都是我電腦上編譯時的路徑,具體到每臺電腦上,路徑不同的自己看看改了就行了 再就是我編譯的時候xcode的版本是4.5.2的 所以我寫的是Xcode4.5.2.app很多的地方用到 存在於路徑中,你可以視具體情況而定。

再就是 有一點 步驟中的make install我一直不明白有啥用處。從網上查,很多地方都用到了 不過貌似跳過這一步也不會有任何問題,沒事的時候可以拿來編譯一下,也可以增加些自信。最後祝你成功。!!!

相關推薦

mac電腦編譯iosffmpeg 靜態 成功經驗疑問可以留言

首先,相信你已經有了ffmpeg,廢話不多說,你仍然需要另外的一個檔案,gas-preprocessor.pl  這個檔案相信你也會想盡辦法找到,所有的一切具備之後,下面讓我們開始編譯。 1,開啟終端,cd到ffmpeg所在目錄。例如:cd /users/apple/doc

Lunix下codeblocks靜態.a檔案及動態.so檔案編譯

Lunix 下靜態庫.a檔案相當於windows下.lib檔案,.so檔案相當於windows下.dll檔案,下面來說一下編譯他們的一種方法(不唯一,可以通過terminal編譯)。 1.編譯.a檔案

Ubuntu16.04下編譯OpenCV2.4.13靜態.a檔案

我們在做專案的時候,經常用到的都是連結動態庫,在Linux平臺中就是.so檔案,我的另外一篇文章介紹的就是如何生成動態庫,可以參看《ubuntu 16.04下安裝使用OpenCV2.4.13(動態庫.so)》。但是有時候,我們仍然希望通過靜態呼叫的方式來使用OpenCV,這個

linux機器檢視到pthread所有模組比如mutex, cond)的解決辦法

在編碼過程中總會需要檢視一些介面,及相關的使用的規則和介面引數注意事項, 但是在有些linux 系統安裝會發現man 命令查不到了 比如: man pthread_mutex_init No manual entry for pthread_mutex_init 那麼

CentOS6編譯安裝GDB 8.1版本程記錄包括安裝peda

下載 我是在CentOS6下首先將gcc升級到8.1後才著手升級gdb的。如果直接採用舊版本的gcc編譯,可能會由於原始碼中出現某些使用了新特性的情況導致中途報錯。升級gcc的過程可以參考我的上一篇文章CentOS6上編譯安裝gcc8.1版本全過程記錄(包括排

Github一些好的開源專案隨時記錄

1、RecyclerViewSwipeDismiss(滑動刪除recycleView) 專案地址 https://github.com/CodeFalling/RecyclerViewSwipeDismiss 使用:1、匯入libary檔案到專案中;            

在阿里雲伺服器ECSCloudera搭建叢集隨記

阿里雲購買的三臺機器,學習用的,所以基本上資源都是按最低買的,按流量時長計費,也花不了多少錢,並且一個賬戶下的機器不用配置,直接能ping通 三臺機器Slave2是我最早買的,安裝的環境都是是CentOS 7.3 64位 修改主機名 hostnamectl set-ho

安裝交叉編譯工具arm-none-linux-gnueabi-gcc——Linux編譯在android執行的c程式

# vim /etc/bash.bashrc 在最後新增 PATH=$PATH:/usr/local/arm-2014.05/bin source /etc/bash.bashrc 使其立刻生效 開啟另一個終端 執行 arm-none-linux-gnueabi-gcc -v,顯示版本即說明安裝成功 方法二

mac電腦解壓縮工具哪個好

alt www ... 免費 位置 易用 down -c 需求 壓縮文件是很多朋友經常遇到的,Mac電腦的朋友你用的是哪款解壓縮軟件呢?mac電腦解壓縮工具哪個好用呢?本人親自試驗了幾款非常不錯的解壓縮軟件,一起來看看吧! 1.Archiver 3 Arc

白話如何在kali linux多功能截圖以及保證筆記萬無一失安全版

note precise 點擊下載 選擇 apt original 官網 packages 商業 技術博客的可讀性非常重要,這也是技術博客寫作的重要原則。 kali linux版本為2018.1 64位 如果使用最新安裝的kali linux,你會發現系統自帶的截圖工具不是

個推戶畫像產品個像iOS集成實踐

9.png ext 步驟 設置 源文件 開發者 資源 tor 成功 個推最近新推出了產品“個像·用戶畫像”,能夠為開發者提供豐富的用戶畫像與實時的場景識別能力。經過一段時間的體驗,我們認為個像的效果不錯,因而寫下這篇攻略,方便需要集成的小夥伴們了解具體的操作步驟。 一、登錄

在服務器搭建多個WordPress博客網站教程超級詳細

direct red cat 解壓 1.4 數據庫 ctrl+c reg reserve 實驗準備 一臺阿裏雲服務器二個域名(IP與域名已經建立解析關系)Linux關於web架構的知識 實驗步驟 1.用crt遠程登錄阿裏雲服務器 2.安裝nginx,mysql,php 建

電腦系統重灌後觸控板不了了消失了

問題:win10系統重灌後發現觸控板用不了(消失了) 如圖 正常的情況應該如圖下 造成這種情況的原因: 1.可能是誤刪觸控板驅動。 2.可能是重灌系統的時候觸控板驅動沒打上。 3.可能是觸控板因進水,撞擊損壞。 4.略(可能因素太多了) 這次我主講華碩電腦,因為華碩的觸控板驅動比較坑

影響 POST 請求檔案傳失敗的幾個環節的配置php + nginx

寫在前面 最近寫一個 php 介面,接受上傳的檔案,發現檔案只要超過 5m 以上就會無響應失敗,最後發現是 shadowsocks 的 timeout 設定問題(我全程開了全域性的 VPN),但一開始並不知曉,把 nginx 和 php 的相關配置都看了個遍,乾脆記錄一下,以後遇到此類問題可以按照這個邏輯順序

iOS專案編譯失敗提示找不到靜態的解決

在我的iOS專案中嵌入了一個自己寫的靜態庫工程,之前在模擬器上執行都是正常,靜態庫的名字是:HyCommon,在我的App工程中有: import HyCommon 今天打算切換到真機上執行,編譯時提示:無法找到靜態庫HyCommon.(之前也在真機上除錯執行

以太坊1--在CentOS 6.5搭建以太坊私有鏈的步驟圖文詳細

我們在研究和使用以太坊的過程中,碰到了許多坑,走了許多的彎路。用以太坊作為關鍵詞去百度或者谷歌搜尋,雖然能夠搜到許多結果,但其實對於我們來說,這些結果存在2個問題:1,網上的這些文章互相拷貝,雖然看起來很多,但其實就那麼兩篇;2,一些文章裡介紹的步驟雖然看起來很合理,很順

Swiper實現拉重新整理和下拉載入更多學習筆記④

簡單粗暴的放碼 一個簡單的效果 分頁器效果中加下拉重新整理和上拉載入功能 HTML結構: <div class="a">標題</div> <div class="tab"> <a class="active" href="j

Vue2.0史最全入坑教程—— 搭建Vue腳手架vue-cli

這裡要手動複製就是用滑鼠右鍵那個,具體為啥不多解釋),安裝這裡是因為我們用的npm的伺服器是外國,有的時候我們安裝“依賴”的時候很很慢很慢超級慢,所以就用這個cnpm來安裝我們說需要的“依賴”。安裝完成之後輸入 cnpm -v,如下圖,如果出現相應的版本號,則說明安裝成功。安裝webpack安裝webpack

Java中,當表單含有檔案傳時,提交資料的如何讀取吐血版

int TeamId = 0;// 用於存放輸出的資訊String message = "";// 在自己的專案中構造出一個用於存放使用者照片的資料夾String projectpath = this.getServletContext().getRealPath("/he

Git安裝、配置、傳公鑰、測試登入及clone使用者教程

1安裝Git 以windows為例,Linux和Mac OS X的同學請百度。 由於雙擊Git-1.9.4-preview20140815.exe,安裝過程很簡單,這裡不再贅述。 但是有幾點注意的地方: (1) 選擇目標安裝位置時,最好不使用預設的路徑如”C:\Progra