最近在研究VLC播放器,主要目的是使用Android平台VLC播放器进行RTMP直播,研究目的是为了降低RTMP直播的延迟,目标将延迟降到1s以内。

首先需要在Linux(本人使用Ubuntu 14)下编译VLC for Android的源码,根据官方的Wiki,以及自己实际操作的步骤,总结为如下:

1. 安装及更新系统工具

#apt-get install ant autoconf automake autopoint cmake gawk gcc g++ libtool m4 patch pkg-config ragel subversion unzip

2. 安装VLC相关依赖库

#apt-get build-dep vlc

3. 安装配置JDK
从Oracle官网下载JDK,VLC官方推荐使用JAVA 6版本,我解压的目录是"/usr/lib/jvm".
下载后解压,并根据解压目录设置环境变量如下:

#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/

#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平台,设置如下:

#vi /etc/profile
   export ANDROID_ABI=armeabi-v7a
#source /etc/profile

6. 获取VLC for Android源码并编译

#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)如果你遇到一些奇怪的第三库找不到问题。

首先看你系统是不是有这个库,执行如下命令:
#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/