IJKPlayer編譯so支持HTTPS的踩坑歷程

hello,大家好,我是那個太監(jiān)許久的郭同學,這段時間發(fā)生了一些不愉悅的事情,進入了不務正業(yè)的狀態(tài),但是···┑( ̄Д  ̄)┍ who care呢?我也知道沒人會想念我的,所以就沒怎么更新了,絕對不是因為懶喲。︿( ̄︶ ̄)︿

同志,github來過沒?右轉不屑 ----> https://github.com/CarGuo

1、前言

為什么要編譯?因為默認IJK居然不帶HTTPS?Why?因為愛情,不會輕易悲傷···這就是愛吧((/- -)/。

編譯IJK的動態(tài)鏈接庫,絕對是對于win黨最大的打擊,經(jīng)常是褲子脫了一半,發(fā)現(xiàn)拉鏈卡住,而且還很痛,上也不是,不上也不是的蛋碎感(ノ?益?)ノ彡┻━┻,官方都說了:on Cygwin (unmaintained),Linux和Mac的勝利。如果你堅持,也許你就會遇上它們:

  • 安裝Cygwin的時候,記得把make選上。
  • $'\r': 未找到命令 : dos2unix xxx,把所有你會編譯到的.sh都輪一遍,你以為完了?不,編譯生成出來的version.sh和configure也需要。
  • mingw32-gcc.exe: error: CreateProcess: No such file or directory,據(jù)說是文件路徑太深了,然而IJK的路徑,本來就好深,所以你要把IJK的環(huán)境在整一遍,反正到這里我就放棄了治療啦(ˉ ̄~) 。
2、VMware + Ubuntu編譯環(huán)境

作為一個win黨,頭頂青天,個人馬上把電腦里塵封已久的虛擬機搬出來了,個人裝的是Ubuntu,加上VMtools,妥妥的,環(huán)境搭建我就不嘮叨了,這里走起《VMware安裝Ubuntu教程,Linux下搭建Android開發(fā)環(huán)境》。家中常備,總有一天你會用得上。注意NDK r10e以上,虛擬機硬盤盡量選大一點,不然后面擴展容量又是一番功夫。

3、編譯帶HTTPS的so

到了這里你就簡單多了,因為是親生的啊,這時候就是機械化流程啦(??)。

  • 打開終端命令,安裝需要程序。
sudo apt-get install git
sudo apt-get install yasm
  • 下載IJKPlayer源碼,在命令終端里cd到ijk的根目錄
  • 切換到release版本的tag下,當然,你也可以直接在master
git checkout -B k0.7.5  //這個版本參考ijk的依賴庫版本
  • 流程化腳本編譯
    1、編譯前選擇你的配置
    If you prefer more codec/format
cd config
rm module.sh
ln -s module-default.sh module.sh

If you prefer less codec/format for smaller binary size (include hevc function)

cd config
rm module.sh
ln -s module-lite-hevc.sh module.sh

If you prefer less codec/format for smaller binary size (by default)

cd config
rm module.sh
ln -s module-lite.sh module.sh

2、初始化openSSL和FFMPEG
這里會同步下載對應的代碼,所以可能會比較耗時喲,

./init-android-openssl.sh
./init-android.sh

3、編譯
cd到android/contrib下,執(zhí)行清除命令,然后編譯需要的so,這里的all是生成所有版本的,如果只需要對應版本的,可以把all替換成armv7a等你需要的版本。編譯需要一段時間,這時候你可以找個妹子先吹吹水。︿( ̄︶ ̄)︿

./compile-openssl.sh clean//清除
./compile-ffmpeg.sh clean//清除
./compile-openssl.sh all//編譯
./compile-ffmpeg.sh all//編譯

4、生成對應so
切換到android目錄下,執(zhí)行腳本就可以生成so啦,感覺一路順暢,一瀉千里有木有。

./compile-ijk.sh all

生成的so每種類型有三個,傳說,ffmepg的so大于3M就是https成功的標志啦!


最后注意

1、最后不要忘記,在你的gradle里面加入下方的配置喲,不然app會找不到你的so的。


2、如果你覺得你的包so太大了,可以使用下圖的ndk過濾,隨時控制你想支持的so,具體可參看Android蹲坑的疑難雜癥集錦(兼Gradle) 二

3、如果需要編譯其他播放類型支持,可以修改module.sh下的配置來使能。

4、IJKplayer 編譯rtsp、rmvb支持

相關的so已經(jīng)集成到播放器里面,需要的可以直接拿出來用,下方鏈接走起<( ̄︶ ̄)>,點我點我。

https://github.com/CarGuo/GSYVideoPlayer

多日♂不見

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容