1. 程式人生 > >關於編譯ijkplayer下的so經驗分享

關於編譯ijkplayer下的so經驗分享

  • 前言:公司最近需要做直播方面的技術調研,所以需要去研究播放器相關的技術;剛好本人github上收藏了ijkplayer,之前一直沒有研究過,現在剛好clone下來研究研究。

我先在Windows安裝cygwin編譯,各種報錯,各種坑,果斷放棄。然後使用VMware安裝的Ubuntu 16.04,一次性完成。哈哈

那麼進入正題!

編譯環境
Ubuntu 16.04
NDKr11b
Android SDK 24
Lantern(翻牆工具,建議安裝,下載地址: https://github.com/getlantern/lantern)

編譯前準備
1.安裝git 命令:$ sudo apt-get install git

2.安裝yasm 命令:$ sudo apt-get install yasm

3.配置環境變數
命令:$sudo gedit ~./bashrc
新增以下兩個環境變數
export ANDROID_SDK= sdk path
export ANDROID_NDK= ndk path

開始編譯
1.下載專案到本地
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.5.1

2.執行初始化操作
./init-android.sh

3.編譯ffmpeg
cd android/contrib
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all

4.開始編譯so
cd ..
./compile-ijk.sh all

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

編譯成功後將目錄下android/ijkplayer專案匯入Android Studio即可執行

友情提示
可能出現的問題大部分都是因為環境變數導致,建議仔細檢查環境變數
注意:Windows環境下編譯會出現很多問題,強烈建議使用Linux環境進行編譯

相關推薦

Android 關於編譯ijkplayerso經驗分享

本地 pat 經驗 變量 一次 公司 https 調研 vmw 前言:公司最近需要做直播方面的技術調研,所以需要去研究播放器相關的技術;剛好本人github上收藏了ijkplayer,之前一直沒有研究過,現在剛好clone下來研究研究。 我先在Windows安裝c

關於編譯ijkplayerso經驗分享

前言:公司最近需要做直播方面的技術調研,所以需要去研究播放器相關的技術;剛好本人github上收藏了ijkplayer,之前一直沒有研究過,現在剛好clone下來研究研究。 我先在Windows安裝cygwin編譯,各種報錯,各種坑,果斷放棄。然後使用VM

這周擼了兩款小程式,分享經驗

本週擼了兩款小程式,在這裡總結下開發過程中的小經驗,希望對大家有用。 小程式端 我們先說小程式要注意的地方。 ##預設入口轉發問題 當一個小程式Page的js檔案中存在 onShareAppMessage 方法時,可以觸發轉發功能,但是通過小程式開發者工具生

1112UI自動化測試經驗分享-expected_conditions模組的visibility_of()

這兩天在學習顯式等待,其實就是把expected_conditions模組下的幾個類實踐,去敲一下。上週六學到visibility_of()遇到些問題,今天分享下: 一)visibility_of() 這是原始碼: class visibility_of(object):

DDD實施經驗分享—價值導向、從上往進行(圈內第一個吃螃蟹DDD實施方案)

閱讀目錄: 1.背景 2.從業務開始 3.從戰略到戰術 4.藉助外力推動研發(QA、領導、自動化測試) 5.領域模型與SAAS平臺的核心(價值最大化) 6.最後 1.背景 DDD本身的技術就不介紹了,本篇文章要分享下我在推廣DDD或者說實施DDD的過程中的心得和寶貴的經驗。事實證明,這

十八年開發經驗分享(04)問題解決篇(

關於本系列文字的來源,初衷和內容定位可以參考第一篇的開頭部分,連結地址如下: http://blog.csdn.net/binarytreeex/article/details/8174445 http://www.cnblogs.com/WideUnion/archiv

經驗分享:雙系統丟失OS X系統引導的修復方法

起因 在通過Boot Camp安裝完Win10之後,發現只有一個分割槽,就在Win10的磁碟管理中通過“壓縮卷”功能對當前系統分割槽操作,擴充套件了一部分未使用的容量出來,於是在重啟系統之後發現引導介面中“Macintosh HD”引導項不見了,在一番折騰之後

交叉編譯uclinux的應用程式時出現"cannot handle file 'libc.so.6' with TLS data''錯誤提示時的解決辦法.

    最近在PC上用brecis mips uclinux交叉編譯環境編譯應用程式時時常碰到"cannot handle file 'libc.so.6' with TLS data"的錯誤提示,開始是不知何意,無從下手去查問題,又以為是編譯環境有問題,又重新編譯uclin

Windows安裝python pip的經驗分享

      先講一下我為啥安裝pip,本來是想安裝Python的Django框架,發現沒有pip根本裝不了吶,就去研究了下怎麼裝pip,在裝pip之前我已經安裝了Python的最新版本,應該是3.6版本的吧,然而裝完了我發現沒有Scripts資料夾,先講一下這個Script

Android NDK編譯的程式依賴obj資料夾so

so引用方式不用PREBUILT的方式,就可以不依賴obj/local/.... #LOCAL_SHARED_LIBRARIES := *** LOCAL_LDFLAGS   := -pie -fPIE #LOCAL_LDFLAGS  += -Wl,--allow-shl

webkit windows編譯經驗分享

在Windows平臺上編譯了一週webkit,終於成功了。下面根據自己經驗,分享給大家,希望能幫助到大家。 1.      第一步無可厚非就是安裝cygwin,之前在webkit官網上下載的cygwin怎麼也編不過,後來去百度查一些webkit編譯經驗文件,找到一個cyg

編譯APP嵌入廣告賺錢經驗分享

app賺錢的方式很多,廣告、內購、聯盟等,而廣告是個人開發者最為熱衷的一種方式。因為在apk中嵌入廣告程式碼幾乎零門檻,不需要多麼高深的技術,只要推廣到位,收入也相對可觀。這個流程總的來說其實就是在apk包中加廣告,然後推廣這個包,安裝越多,廣告展示越多,而廣告

Ubuntu使用SublimeText3配置C++編譯環境的一些設定分享

最近開始接觸Ubuntu系統,在嘗試使用Sublime Text3配置C++編譯環境後,發現每次使用g++編譯如果程式涉及cin等輸入互動時,都需要自己呼叫終端執行,非常不方便。下面給出一種自動呼叫終端編譯執行的方法: 新建編譯系統,輸入如下指令,並儲存為新

Kaggle 數據挖掘比賽經驗分享

沒有 bin 不一致 要求 center 線性模型 保留 libz 無法 1.Kaggle 基本介紹 Kaggle 於 2010 年創立,專註數據科學,機器學習競賽的舉辦,是全球最大的數據科學社區和數據競賽平臺。在 Kaggle 上,企業或者研究機構發布商業和科研難題,懸賞

防遺忘筆記,Fedora交叉編譯window的virt-iewer的漢化

正常 後來 效果 cal 方法 dir 文件中 通過 應用 1. 漢化代碼裏的資源 virtviewer使用的是gettex的方案是標準的linux裏國際化的方案。按道理僅僅須要改動virtualviewer/po/zh_CN.po的文件。編譯。 然後確認在代碼裏設置好

項目優化經驗分享(一)數據自己主動匹配

als 主動 options option reg shee total tomat 功能 從今天開始。我將和大家分享一下近期經手項目的優化經驗。今天我們分享的內容是:自己主動匹配! 引言: 輸入框數據自己主動匹配大家應該非常熟悉,當我們在使用百度或go

<轉載> MySQL 性能優化的最佳20多條經驗分享 http://www.jb51.net/article/24392.htm

構造 進程 還需 query 情況 關聯表 string類型 優化技巧 fix 當我們去設計數據庫表結構,對操作數據庫時(尤其是查表時的SQL語句),我們都需要註意數據操作的性能。這裏,我們不會講過多的SQL語句的優化,而只是針對MySQL這一Web應用最多的數據庫。希望下

HDMI調試經驗分享(一)—— 基於KC705的example實現

alt 如果 追蹤 分享 生成 必須 還需要 pro 註意 在KC705的平臺上,實現HDMI的example有兩個,xapp1287,xapp1291。其中1291偏復雜。 因為我沒有HDCP的license,使用xapp1287的tcl生成

經驗分享:嵌入式系統學習步驟

淩陽教育 嵌入式 嵌入式學習的朋友們,想要學好嵌入式嗎?我們該如何學好嵌入式?看看淩陽教育的老師為大家帶來的一些方便大家了解的嵌入式學習路線與步驟: 1、Linux 基礎 安裝Linux操作系統 Linux文件系統 Linux常用命令 Linux啟動過程詳解 熟悉Linux服務能夠

搭建LNMP經驗分享

linux lnmp 花了一個禮拜總算是搭建了lnmp集群(也就是傳統的web網站架構),下面就來分享一下,搭建的過程,以及遇到的各種坑。A.首先先搭建nginx服務:1.先安裝pcre(偽靜態)庫yum install pcre pcre-devel -y 2.在普通用戶的家目錄下面創建一個tool