linux 下編譯ijkplayer的so庫


BIliBIli開源播放器github地址:
這個播放器是沒有編譯過的,沒有so文件,只是個播放器殼,播放支持的格式內容取決於你下載他的ffmpeg編譯時設定的配置。個人覺得播放器ijkplayer和內核ffmpeg分開放有助於解耦,方便播放器升級時候,不用重新下載ffmpeg。
 
ijkplayer 最新版本:k0.8.8
ffmpeg 基於內核:3.4
 
編譯環境需要下載 git  和yasm
1,linux環境,安裝好NDK,設置好環境代碼,最好把它寫到當前用戶的.bashrc下。
 
export JAVA_HOME=/home/lee/Desktop/jre1.8.0_191/bin
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
//NDK
export ANDROID_NDK=/home/leesoo/Desktop/android-ndk-r10e
export PATH=$ANDROID_NDK:$PATH
2,初始化android (比較久,下載半個小時)
./init-android .sh
看腳本就是git https://github.com/Bilibili/FFmpeg.git   到extra/ffmpeg 文件夾里面
再復制  到android/contrib/ffmpeg-$1 各個平台
最后./init-config.sh
./init-android-libyuv.sh           
./init-android-soundtouch.sh       // 聲音處理,可不要?視頻倍速播放時候,聲音變調用
3,編譯腳本配置
就是自動化編譯時的一些配置選項,比如支持什么協議啊,支持什么音視頻類型等, 
這個配置文件是:config/module.sh,你喜歡可以打開看看這個文件: 
比如這里是配置處理什么類型的數據的,enable啟用,disable禁用。
另外官方給我們提供了三個模板給我們使用:
module-default.sh:默認,如果你喜歡更多類型可以用這個;
module-lite-hevc.sh:如果您更喜歡較小的二進制大小的編解碼器/格式(包括hevc功能)
module-lite.sh:如果您更喜歡較小的二進制大小的編解碼器/格式(默認情況下)!
反正體積最小,就用module-lite.sh這個就行了,使用也很簡單:
 
rm module.sh
ln -s module-lite.sh module.sh  //建立軟鏈接到module-lite.sh,先刪掉原來的,不然提示已存在
source module.sh
 
4,編譯ijk用的FFmpeg  (編譯一個平台大概5-10分鍾,不寫平台默認是ARMV7A)
執行    . /compile-ffmpeg.sh
會生成對應平台的ffmpeg庫文件。 用來做預編譯Prebuilt。
/ijkplayer-android/android/contrib/build/ffmpeg-armv7a/output/ 目錄
生成 libijkffmpeg.so (15-20MB大)
5,編譯ijkpalyer,生成libijkffmpeg.so   libijkplayer.so    libijksdl.so  3個庫文件。
 
執行 ./compile-ijk.sh 
 
因為編譯 FFmpeg 只有一個平台,所以compile-ijk.sh  不寫平台參數也默認編譯armv7a的庫文件,生成so路徑為。把它拷貝到安卓項目下對應的libs目錄即可使用。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM