歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux 下編譯 VLC for Android

Linux 下編譯 VLC for Android

日期:2017/3/3 14:05:27   编辑:Linux技術
https://jiya.io/archives/compile-vlc-for-android.html
最近在研究VLC播放器,主要目的是使用Android平台VLC播放器進行RTMP直播,研究目的是為了降低RTMP直播的延遲,目標將延遲降到1s以內。
首先需要在Linux(本人使用Ubuntu 14)下編譯VLC for Android的源碼,根據官方的Wiki,以及自己實際操作的步驟,總結為如下:
1. 安裝及更新系統工具
[code]#apt-get install ant autoconf automake autopoint cmake gawk gcc g++ libtool m4 patch pkg-config ragel subversion unzip

2. 安裝VLC相關依賴庫
[code]#apt-get build-dep vlc

3. 安裝配置JDK
從Oracle官網下載JDK,VLC官方推薦使用JAVA 6版本,我解壓的目錄是"/usr/lib/jvm".
下載後解壓,並根據解壓目錄設置環境變量如下:
[code]#vi /etc/profile
   export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_45
   export PATH=$JAVA_HOME/bin:$PATH
   export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#source /etc/profile

4. 下載Android sdk及ndk並設置環境變量
從官方網站下載,並解壓。國內源(http://mirrors.neusoft.edu.cn/android/repository/)
[code]#vi /etc/profile
   export ANDROID_SDK=/path/to/android-sdk
   export ANDROID_NDK=/path/to/android-ndk
   export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
#source /etc/profile

另外,編譯是可能需要不止一個版本的SDK,我在編譯時下載的SDK 20版本,但是還需要19和21版本,這裡只需要在Android SDK的目錄下的platforms下新建“Android-19”和“Android-21”目錄,並下載對應的SDK放置其中即可。
5. 設置編譯的設備平台
國內大部分安卓設備都是arm平台,設置如下:
[code]#vi /etc/profile
   export ANDROID_ABI=armeabi-v7a
#source /etc/profile

6. 獲取VLC for Android源碼並編譯
[code]#git clone git://git.videolan.org/vlc-ports/android.git
#sh compile.sh

注:compile.sh腳本會先下載VLC依賴的第三方庫,有些庫的網址是訪問不了的,自己想辦法下好了放進“vlc/contrib/tarballs”目錄裡,然後重新執行編譯命令即可。怕麻煩就直接設置能訪問的代理。
至此,如果一切順利,就會編譯成功,當然你一定會遇到各式的問題,應該記住以下幾點:
(1)包含VLC需要的所有Android SDK版本。
(2)務必將需要的編譯工具升級(apt-get)。
(3)如果你遇到一些奇怪的第三庫找不到問題。
首先看你系統是不是有這個庫,執行如下命令:
[code]#ldconfig -p

如果顯示系統已經加載該動態庫,看是不是Ubuntu默認安裝的,並且版本太低,如果是用“apt-get remove”卸載,重新安裝VLC需要的版本。另外動態庫安裝成功了,需要執行“ldconfig”命令,如果沒有安裝在系統默認路徑,你需要將安裝後so文件的路徑添加到"/etc/ld.so.conf"中後再執行“ldconfig”命令。
編譯成功後,在VLC源碼路徑的“vlc-android/bin”內會有"VLC-debug.apk"文件。
參考:https://wiki.videolan.org/AndroidCompile/
Copyright © Linux教程網 All Rights Reserved