記一次ijkplayer的編譯過程

2021-09-20 10:59:53 字數 2555 閱讀 8670

在mac上編譯ijkplayer之前,需要先安裝一些基本的軟體,這些軟體在其他的開發中也會用到,需要安裝的軟體有homebrew、git、yasm。

開啟terminal,輸入如下的命令:

ruby -e "$(curl-fssl"
安裝好homebrew後,再安裝git和 yasm,安裝的命令如下:

brew install git

brew install yasm

然後,開啟terminal輸入並輸入如下的命令來開啟環境變數,然後新增ndk的相關環境。

open -e .bash_profile
當然,也可以直接使用文字編輯器開啟.bash_profile檔案。

然後新增如下內容:

export path=$path:你的ndk路徑

export android_ndk=你的ndk路徑

然後 command+s 儲存 ,最後檢測是否配置ndk路徑成功,在terminal輸入如下命令進行檢測。

注意:當然,也可以使用android-sdk裡面的ndk,不過android-sdk是最新版本,該檔案所在結構如下:

配置完後,我們可以使用如下命令來檢測ndk環境是否配置正確。

將ijkplayer框架原始碼clone到本地並編譯,依次在終端輸入如下命令。

git clone ijkplayer-android

cd ijkplayer-android

然後執行初始化,此時會從網上自動拉**,主要是ijkplayer的一些基層類庫,時間比較長。命令如下:

./init-android.sh
./init-android-openssl.sh
注意:若出現如下錯誤,說明是ndk的環境配置有問題。

youmust define android_ndk, android_sdk before starting.they must point to yourndk and sdk directories.
然後,編譯各個平台的openssl。

cd android/contrib

./compile-openssl.sh clean

./compile-openssl.sh all

編譯各個平台的ffmpeg,如果需要更多的編譯碼格式,需要先執行下面的命令。

cd ../..

cd config

rm module.sh

ln -s module-lite.sh module.sh

cd ..

cd android/contrib

./compile-ffmpeg.sh clean

說明:如果使用最新版本上如果執行的是(ln -s module-lite.sh module.sh),會出現如下錯誤:

然後,編譯各個cpu架構的ffmpeg。命令如下:

./compile-ffmpeg.sh all
然後使用如下的命令編譯ijkplayer即可。

cd ..

./compile-ijk.sh all

如果出現如下圖所示的錯誤,請更換ndk的版本。

如果正確編譯的話,會分別在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64這些專案的src/main/libs/對應的名稱 目錄下分別生成libijkffmpeg.so、libijkplayer.so、libijksdl.so這三個so檔案。

記一次Android Studio編譯異常

最近電腦總是藍屏,所以重灌了一次win7系統,然後重新安裝android studio,然後發現在build的時候一直報乙個錯誤 a failure occurred while executing com.android.build.gradle.tasks.mergeresources file...

記一次的使用

將jsp拆分frame框架,因為採用了第一種方式,一直在考慮用jquery非同步請求獲取資料,總是但不到效果,終於在js寫吐的時候選擇了第二種方式。參考網上的使用,大多是下面這個樣子,如果涉及靜態頁面之間定位,是沒有問題的 href 為目標頁面 通過target定位到frame views main...

記一次除錯

這是我最近幾個月來遇到的最棘手的乙個問題 昨天花了4個小時找出第一層次的原因 這個糾結啊,本來和老婆說好準時下班回家吃飯的,結果被這個問題拖了老久。這是乙個gradle的plugin,用來resolve公司內部的dependency的,弄完了跑測試專案的,拋乙個npe,而且npe還不在自己的 裡面。...