FFmpeg開發筆記(五十九)Linux編譯ijkplayer的Android平臺so庫
不過正因為ijkplayer多年未更新,按照導包方式僅能在較老的平臺上編譯運行,比如ijkplayer支持的Android平臺僅限于API 9~23,支持的iOS平臺僅限于iOS 7.0~10.2.x。為了讓ijkplayer能夠在更新的開發環境上正常運行,需要先在Linux系統上交叉編譯ijkplayer在Android平臺上的so文件,才能在App工程中導入并調用so庫。下面介紹如何在Linux編譯ijkplayer的so庫。
一、準備Linux編譯環境
首先在Linux系統執行下面命令安裝編譯工具。
接著執行下面命令臨時調整tmp分區大小,確保系統的臨時空間充足,避免解壓大文件失敗。
二、安裝Android的SDK和NDK
依次執行下列命令下載并安裝Android的SDK,注意不要用太高版本的SDK,因為ijkplayer沒有適配高版本的SDK。
依次執行下列命令下載并安裝Android的NDK,注意不要用太高版本的NDK,因為ijkplayer沒有適配高版本的NDK,官方推薦采用r10e版本的NDK即可。
執行下面的環境變量設置命令,分別設置SDK的環境變量ANDROID_SDK,以及NDK的環境變量ANDROID_NDK。
三、下載并編譯ijkplayer
先執行以下命令下載ijkplayer的源碼包。
再執行以下命令檢查并初始化ijkplayer的Android編譯環境。
然后依次執行下列命令,分別編譯ijkplayer需要的openssl庫和ffmpeg庫,以及ijkplayer的so庫。之所以在三個腳本后面添加“ arm64”,是為了只編譯適配arm64指令的so文件。
一切順利的話,即可在ijkplayer/android/ijkplayer/ijkplayer-arm64/src/main/libs/arm64-v8a目錄下看到編譯好的三個so庫:libijkffmpeg.so、libijkplayer.so、libijksdl.so。把包含三個so文件在內的整個libs目錄復制到App工程的libs目錄,即可完整ijkplayer的so庫導入工作。
更多詳細的FFmpeg開發知識參見
浙公網安備 33010602011771號