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

来源:互联网 发布:类似imagemeter的软件 编辑:程序博客网 时间:2024/04/28 22:34

http://my.oschina.net/erehmii/blog/118748

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


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

?
1
2
3
4
5
6
7
8
#$(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,命令如下:

?
1
android update sdk


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

?
1
2
3
4
5
6
7
8
9
10
# $(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|trA-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多媒体框架的版本, 则相对比较吃力).


分享到:1
声明:OSCHINA 博客文章版权属于作者,受法律保护。未经作者同意不得转载。

评论6

  • 1楼:huruxing159发表于2013-12-08 16:12 回复此评论
    (cd speex-git && patch -fp1) < ../../contrib/src/speex/no-ogg.patch
    patching file configure.ac
    Hunk #1 succeeded at 109 with fuzz 1 (offset -3 lines).
    patching file libspeex/Makefile.am
    Hunk #1 FAILED at 11.
    1 out of 1 hunk FAILED -- saving rejects to file libspeex/Makefile.am.rej
    patching file src/Makefile.am
    Hunk #1 FAILED at 11.
    Hunk #2 FAILED at 24.
    2 out of 2 hunks FAILED -- saving rejects to file src/Makefile.am.rej
    make: *** [speex] Error 1


  • 2楼:huruxing159发表于2013-12-08 16:14 回复此评论
    Hi can you help me ,I think it maybe out of date error,
    but I am not fimiliar with c programing .
  • 3楼:koja发表于2013-12-11 09:15 回复此评论

    引用来自“huruxing159”的评论

    (cd speex-git && patch -fp1) < ../../contrib/src/speex/no-ogg.patch
    patching file configure.ac
    Hunk #1 succeeded at 109 with fuzz 1 (offset -3 lines).
    patching file libspeex/Makefile.am
    Hunk #1 FAILED at 11.
    1 out of 1 hunk FAILED -- saving rejects to file libspeex/Makefile.am.rej
    patching file src/Makefile.am
    Hunk #1 FAILED at 11.
    Hunk #2 FAILED at 24.
    2 out of 2 hunks FAILED -- saving rejects to file src/Makefile.am.rej
    make: *** [speex] Error 1


    去单独下载个speex-git.tar.gz放进contrib/tarballs里,再重新sh compile.sh就可以了
  • 4楼:一起流浪发表于2013-12-11 09:52 回复此评论
    楼主大人,知道如何添加字体吗?
  • 5楼:聂华明发表于2013-12-19 12:46 回复此评论
    问一下 如果在安卓上编译成功之后是不是就可以嵌入到自己的项目当中来呀
  • 6楼:EREHMii发表于2013-12-19 16:08 回复此评论

    引用来自“聂华明”的评论

    问一下 如果在安卓上编译成功之后是不是就可以嵌入到自己的项目当中来呀

    可以,不过需要考虑系统版本的兼容性,建议去官网看看兼容性列表

0 0