1. 程式人生 > >開源播放器ijkplayer-android編譯

開源播放器ijkplayer-android編譯

環境準備

硬體環境:PC機一臺

作業系統:Ubuntu 12.04(我是Ubuntu+XP雙系統)

軟體環境:除Ubuntu預裝的所有應用,還需要以下工具:git, ant, ccache, sdk, ndk。

其中git,ant和ccache直接使用sudo apt-get install XXX安裝即可。

sdk和ndk可以在android developer網站下載,下面給出分別的下載地址:

【注】git, ant, ccache工具的說明可以參考百度/谷歌等網路資料。

編譯前的準備

1. 在$HOME目錄下建立一個Development資料夾,後續我們所有的程式碼均放到該目錄下

2. 將下載好的adt和ndk拷貝到剛才建立的Development資料夾中,並直接解壓

tar xf android-ndk-r9b-linux-x86.tar.bz2

unzip adt-bundle-linux-x86-20130917.zip

3. 配置環境變數

設定ANDROID_SDK和ANDROID_NDK環境變數,並新增PATH環境變數中。

修改$HOME/.bashrc檔案,在最後面新增如下程式碼:

  1. export ANDROID_SDK=~/Development/adt-bundle-linux-x86-20130917/sdk  
  2. export ANDROID_NDK=~/Development/android-ndk-r9b  
  3. export PATH=$PATH:$ANDROID_SDK:$ANDROID_NDK:$ANDROID_SDK/platform-tools/  
其中將$ANDROID_SDK/platform-tools/新增到PATH環境變數中,這樣就將一些adb除錯的工具新增到環境變數中,可以方便連線裝置除錯。

4. 下載ijkplayer的程式碼

因為我們研究的物件ijkplayer是github上的一個開源專案,因此使用git下載其版本管理庫:

git clone https://github.com/bbcallen/ijkplayer.git

編譯ijkplayer庫

進入到ijkplayer目錄

cd ijkplayer

執行init-android.sh指令碼,指令碼的主要作用是下載ffmpeg原始碼。

sh init-android.sh

執行完成後,下載好的ffmpeg原始碼會放到android/ffmpeg-armv7a目錄。進入android目錄下,執行compile-ffmpeg.sh指令碼即可完成ffmpeg的編譯

cd android

sh compile-ffmpeg.sh

  然後,在執行compile-ijk.sh指令碼,完成ijk部分的編譯。

sh compile-ijk.sh

  編譯後會生成如下的檔案:

ijkmediaplayer/libs/armeabi-v7a/libffmpeg.so
ijkmediaplayer/libs/armeabi-v7a/libijkplayer.so
ijkmediaplayer/libs/armeabi-v7a/libijksdl.so
ijkmediaplayer/libs/armeabi-v7a/libijkutil.so
ijkmediaplayer/libs/armeabi-v7a/libstlport_shared.so

編譯ijkplayer Demo

      開啟eclipse(我們剛才下載的adt中除了sdk還有一個配置好的eclipse,位於~/Development/adt-bundle-linux-x86-20130917/eclipse/目錄中),開啟後直接就可以建立/使用android project。

      將位於~/Development/ijkplayer/android/目錄的三個android工程匯入到eclipse中。其中ijkmediaplayer和ijkmediawidget兩個工程編譯出來的是jar包和so庫,真正可以編譯成apk的是ijkmediademo工程。

     因為eclipse配置了自動構建,因此匯入工程後,即開始自動構建。但是初次構建會失敗,報出如下錯誤:

Cannot run program "ndk-build": Unknown reason
Error: Program "ndk-build" is not found in PATH

     而我們明明在命令列,直接輸入ndk-build是可以正常使用的,即ndk-build確實是在PATH中,這與當前的error資訊不符。結合在windows上的android開發經驗,再加上查詢其它網路資料,應該是eclipse本身沒有配置ndk的原因。

    在eclipse-->Preferences-->Android-->NDK中,設定好正確的ndk路徑:~/Development/android-ndk-r9b。然後,重新clean project --> build project --> run,即可在手機或者AVD上除錯demo應用。

相關推薦

開源播放ijkplayer-android編譯

環境準備 硬體環境:PC機一臺 作業系統:Ubuntu 12.04(我是Ubuntu+XP雙系統) 軟體環境:除Ubuntu預裝的所有應用,還需要以下工具:git, ant, ccache, sdk, ndk。 其中git,ant和ccache直接使用sudo a

開源播放 ijkplayer (六) :Android 下使用 ijkplayer 異常處理思路

videoplay 開源 下使用 ide 異常 異常處理 targe bsp 目前 一、 java.lang.IllegalStateException: mpjni: setOptionLong: null mp 根據已查到的資料看,目前是ijk內部的問題,只能通過tr

【Codecs】VLC開源播放以及原始碼編譯

Date: 2018.5.31 1、參考: 2、VLC簡介 VLC 是一款自由、開源的跨平臺多媒體播放器及框架,可播放大多數多媒體檔案,以及 DVD、音訊 CD、VCD 及各類流媒體協議。 下載地址: http://www.vid

安卓視訊播放——ijkPlayer(Bilibili開源

作為一個B站(Bilibili)使用者,特別喜歡B站的播放器 湊巧,發現了b站的github的地址。。嘿嘿。。B站github地址f 發現了ijkplayer播放器,支援android 和ios 我們用AndroidStudio新建project名字是bilibili_ijkplay

移動平臺播放ijkplayer開源框架分析(以IOS原始碼為例)

p_prepare_async_l呼叫stream_open,stream_open中建立了視訊渲染執行緒,該執行緒主要是進行視訊渲染工作,並對視訊進行同步,同步相關邏輯主要在這個執行緒裡面,同步的大概思路就是:有一個絕對時間作為同步起點,然後計算當前幀與上一幀時間差,然後與當前絕對時間基準源比較,如果不到時

Android邊緩衝邊播放視訊(ijkplayer編譯和使用)

當你看到這篇博文的時候希望你先對這個開源專案有所瞭解。 github上的地址: https://github.com/Bilibili/ijkplayer 感謝嗶哩嗶哩團隊不吝開放出來。此文主要用於幫助之後需要編譯ijkplayer的同學,少走一點彎路。 轉載請註明出處:CSD

開源視訊播放IjkPlayer使用記錄之(四)--多音軌的探路之旅

具體資訊可以見下:ffprobe -i test.mkv ffprobe version N-82166-g894e7ef Copyright (c) 2007-2016 the FFmpeg developers built with Apple LLVM version 8.0.0 (clang-80

使用Service組件實現簡單的音樂播放功能 --Android基礎

area direct start 獲取 點擊 btn src c函數 extern 1、本例利用Service實現簡單的音樂播放功能,下面是效果圖。(點擊開始播放開啟服務,音樂播放,點擊“停止播放”關閉服務,音樂停止播放。) 2、核心代碼:

通過一個簡單的音樂播放探討 Android Aidl 的實現原理

眾所周知,音樂播放器的播放不應該在前臺程序,而是要在另外一個程序的 Service 中進行,這樣才能實現後臺播放功能,同時不影響 UI 程序且不共用記憶體資源從而減少雙方被 kill 的可能性。 由於不同程序間是無法直接通訊的,因此在這種情況我們會使用 AID

三、VR視訊播放開發 ---- Android VR視訊/Google VR for Android /VR Pano/VR Video

simplevideowidget 如果沒有看上一篇文章的請先看完再來看這一篇吧,有寫重複的就不介紹了 AndroidManifest 上一篇文章有提到,其實這裡也沒有什麼特別的 build.gradle dependencie

播放】基於CKplayer6.8 更改了播放 二次編譯 去除分享和亮燈按鈕

基於CKplayer6.8 更改了播放器 二次編譯 去除分享和亮燈按鈕 基於CKplayer 更改了播放器的設定,重新編譯去掉了播放器中的分享和燈光 現分享出來: 連結:http://pan.ba

RN開源播放Video元件(react-native-video)

一. 專案介紹 該元件進行封裝成React Native平臺播放器Video元件,大家可以使用該元件進行播放視訊啦~不過支援React Native的版本最低0.19版本。 二. 1.1. 執行命令進行安裝 npm instal

搭建rtmp直播流服務之4:videojs和ckPlayer開源播放二次開發(播放rtmp、hls直播流及普通視訊)

前面幾章講解了使用 從資料來源獲取,到使用ffmpeg推流,再到nginx-rtmp釋出流,後端的服務到這裡就已經全部完成了。 如果這裡的流程沒走通,那麼這裡的播放器也是沒辦法播放實時流的。 本章講一下播放器的選用和二次開發,前端的播放器雖然有flex(flash)可

github上十二款最著名的Android播放開源項目

ext font .com 預覽 ffplay 亮度調節 f11 付費 lin Android第一神器—Xposed框架,堪稱黑科技,功能強大!   1.ijkplayer   項目地址:https://github.com/Bilibili/ijkplayer   介紹:

Android 音視頻深入 十九 使用ijkplayer做個視頻播放(附源碼下載)

視頻播放器項目地址https://github.com/979451341/Myijkplayer 前段時候我覺得FFmpeg做個視頻播放器好難,雖然播放上沒問題,但暫停還有通過拖動進度條來設置播放進度,這些都即便做得到,可以那個延緩。。。。。 現在學習一下目前移動端最知名的視頻播放器的框架ijkplayer

Android開發-基於ijkplayer框架開發網路電視直播播放的實現

前 言 ijkplayer框架是由B站在GitHub開源的一款比較好用的開源網路播放器框架,它能支援在Android、IOS等平臺上編譯移植使用。而且支援多種視訊格式的播放,而且編碼的速度比傳統的開源網路播放器還要快。除此之外,ijkplayer框架支援網路視訊播放時彈幕的推送等功能

第一個android ijkplayer播放

建立一個ijkplayer的播放器專案,需要三步設定: 一、在activity_main.xml中新增播放器標籤 <com.smallart.myapplication.media.IjkVideoView android:id="@+id/video_view"

android:ijkplayer播放的整合及簡單自定義播放

關於ijkplayer 最近公司準備要開發的專案裡涉及到播放器的功能模組,於是對Android播放器框架進行了預研。目前ijkplayer框架是為大多數公司及開發者青睞的框架。 ijkplayer是一個基於FFmpeg的輕量級Android/iOS視訊播放器。F

收集了很多音樂播放類的Android專案原始碼,非常不錯的開源專案【轉】

JieCaoVideoPlayer立志成為Android平臺使用最廣泛的視訊播放控制元件http://neast.cn/forum.php?mod=viewthread&tid=61610&fromuid=5 OPlayer Android平臺基於Vitamio的開源播放器http://ne

Android開源專案(一)音樂播放

作為一個有追求的程式設計師來說,專案原始碼必須看,但是網上那麼多資源是不讓你無從下手啊,博主今天為大家推薦五個經典專案吧。 一、android-UniversalMusicPlayer 這個開源專案展示瞭如何實現一個橫跨各種Android平臺的音樂播放器,包括手機,平板,汽車,手錶,電視等。 架構: