VLC for Android : 编译问题 & 解决办法

十年热恋 提交于 2019-11-29 20:12:10

敬告:
编译前尽量安装/更新必要的软件:vlc-dep, android-sdk, android-ndk


1. libmpeg2 下载源错误, 必须修改$(vlc-setup)/vlc/contrib/src/libmpeg2/rules.mak, 内容如下:

#$(vlc-setup)/vlc/contrib/src/libmpeg2/rules.mak
LIBMPEG2_VERSION = 0.5.1

#src:
#LIBMPEG2_URL := http://libmpeg2.sourceforge.net/files/libmpeg2-$(LIBMPEG2_VERSION).tar.gz

#mod:
LIBMPEG2_URL := ftp://mirror.ovh.net/gentoo-distfiles/distfiles/libmpeg2-0.5.1.tar.gz

P.S. vlc目录是通过git命令下载的,见compile.sh

2. 若出现该错误内容:android-sdk-linux/tools/ant/build.xml:539: Unable to resolve project target 'android-17',则必须更新SDK,命令如下:

android update sdk


3. 如果是在Ubuntu-64bit + Android-NDK(64bit)下编译,则在编译vlc/contrib/android/a52dec等模块时,会报错:arm-linux-androideabi not found。必须修改compile.sh: Ln77,内容如下:

# $(vlc-setup)/compile.sh

#src:
#NDK_TOOLCHAIN_PATH=${ANDROID_NDK}/toolchains/${PATH_HOST}-${GCCVER}/prebuilt/`uname|tr A-Z a-z`-x86/bin

#mod
NDK_TOOLCHAIN_PATH=${ANDROID_NDK}/toolchains/${PATH_HOST}-${GCCVER}/prebuilt/`uname|tr A-Z a-z`-`uname -m|tr A-Z a-z`/bin

#or
#NDK_TOOLCHAIN_PATH=${ANDROID_NDK}/toolchains/${PATH_HOST}-${GCCVER}/prebuilt/`uname|tr A-Z a-z`-x86_64/bin


4. 值得注意的是, Android的多媒体框架是采用的OpenMAX标准, 并通过IPC来实现的. 而VLC-Android默认是采用Android多媒体框架的实现方式. 除此之外, 也支持直接调用Android-OMX动态库的实现方式. 就兼容性而言, 前者明显要好于后者, 而实际播放速度来说, 正好相反..
     其中, VLC-Android通过编译宏(-DUSE_IOMX)来指定具体实现的版本, 详见$(vlc-setup)/vlc/modules/codec/omxil/Modules.am. 因此, 编译调用Android-OMX动态库的版本, 必须禁用-DUSE_IOMX. (用按此编译出来的版本, 在GoogleNexus的机器上, 播放1080p的高清影片, 播放速度基本流畅, 而基于Android多媒体框架的版本, 则相对比较吃力).


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!