FFmpeg(二):Windows下編譯全平臺(tái)架構(gòu)的FFmpeg

前言

FFmpeg的源碼編譯,我不知道該怎么說好!難吧?但網(wǎng)上教程好像很簡單。不難吧?就沒有編譯成功幾次,一模一樣的源碼和腳本,也編譯不成功!三個(gè)月來,只要一閑下來我就查閱各種資料進(jìn)行各種實(shí)驗(yàn),都達(dá)不到想要的結(jié)果。上周五,整整編譯了一天,都沒有編譯成功,后來下班了,沒關(guān)電腦讓他編譯了一個(gè)周末,才完全成功了的。FFmpeg的坑就在這兒,編譯都能坑死多半的人!

本片文章主要將如何在Windows下使用MinGW+msys將FFmpeg-3.2.5的源碼編譯成全平臺(tái)架構(gòu)的so庫

正文

  • 1 工具準(zhǔn)備

平臺(tái):win10 64位
ndk版本: r14b
FFmpeg版本:3.2.5
minGW-w64.exe

  • 2 MinGW安裝

雙擊下載的mingw-w64.exe如圖配置安裝:

其實(shí)這個(gè)有點(diǎn)類似迅雷的下載器,配置好一路Next才會(huì)下載MingGW,可能有點(diǎn)卡,耐心等待。二次下載安裝完成后,右鍵我的電腦->屬性->高級(jí)系統(tǒng)設(shè)置->選擇“高級(jí)”選項(xiàng)->選擇下面“環(huán)境變量”->系統(tǒng)變量->Path
然后在開始菜單找到MinGW Installation Manager并運(yùn)行:

運(yùn)行后大概就是這個(gè)樣子,選擇Basic Setup,
由于我的已經(jīng)安裝好了,所有有四個(gè)是綠色的。在前三個(gè)和最后一個(gè)(可能順序不一致)上鼠標(biāo)右鍵選擇Mark for installation,最后在installation->apply changes后彈出的框框中點(diǎn)擊apply進(jìn)行第三次安裝即可

都完成以后cmd中運(yùn)行gcc -v,如圖則一切順利可進(jìn)行后續(xù)操作:

  • 3 FFmpeg的so庫編譯
    FFmpeg的編譯我完全是按照編譯Android下可用的全平臺(tái)FFmpeg(包含libx264與libfdk-aac)編譯的,這里我給出跳轉(zhuǎn)鏈接就好,但有兩點(diǎn)請注意:
    1: 腳本中的ndk路徑替換的時(shí)候,切記一定是“/”,如:D:/Java/android-ndk-r14b,可以簡單的把MinGW+msys理解成模擬的linux系統(tǒng),linux系統(tǒng)的文件分隔符是正斜杠“/”,而Windows的文件分隔符是反斜杠“\”,所以這個(gè)必須替換
    2: 腳本中的darwin-x86_64(mac系統(tǒng)),如果操作系統(tǒng)是Linux則改為linux-x86_64Windows系統(tǒng)則改為windows-x86_64,實(shí)際以ndk路徑為準(zhǔn),當(dāng)然我的已經(jīng)替換過了。
    完成好配置后,進(jìn)入MinGW的安裝路徑,如圖找到mysy.bat右鍵管理員運(yùn)行:
    然后cd進(jìn)入FFmpeg-3.2.5里,如圖執(zhí)行后就靜靜的等待吧:

    最后會(huì)在FFmpeg下的android_more下生成每個(gè)架構(gòu)的頭文件和so庫:

結(jié)語

有人說我為什么完全照搬別人的東西,也不知道改一下,比如那么多腳本名稱,長不說還是別人的名字!這里插播一個(gè)小故事,大學(xué)我們上計(jì)算機(jī)基礎(chǔ),有同學(xué)發(fā)現(xiàn)老師講的PPT,署名是系里另一位老師的,同學(xué)們就嘲笑老師“不備課”就算了,用別人的東西還不知道改一下,老師付之一笑,淡淡的說道,首先我改了的話,性質(zhì)就不一樣,因?yàn)榈銈儾⒉恢肋@PPT并不是我做的,這算剽竊,其次我保留署名是為了表明我對他的辛苦付出的感恩。
作為程序員我們最怕的就是重復(fù)造輪子,而且還沒有別人造的好,更何況這個(gè)系列的文章我的確是站在大佬們的肩膀上寫下去,你覺得照搬的東西,而我是在尊重原版原作者,感恩開源!

下一節(jié)講:
FFmpeg(三):初識(shí)CMakeList和native-lib
內(nèi)容不多,了解CMake的可直接跳:
FFmpeg(四):CMake移植FFmpeg的靜態(tài)庫到AndroidStudio中

github源碼

簡書半停更說明

碎碎念:如果諸君喜歡,請點(diǎn)個(gè)贊
更多問題,歡迎加群:584275290
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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