最近在做一个有关视频播放的项目,涉及到的问题就是视频解码,目前最优秀的两套解码库就是ffmpeg和flv,几乎现在能见到的所有视频格式都能解码,本文编译的faplayer就是基于flv的解码库。
编译成功的程序可以正常播放优酷的flv格式,截图如下:
环境配置
- Android SDk 参见 http://developer.android.com/sdk/index.html
- Android NDk 参见 http://developer.android.com/sdk/ndk/index.html
- 环境变量配置如下(~/.bashrc):
export ANDROID_SDK=/home/careychow/android/sdk/android-sdk-linux # export ANDROID_NDK=/home/careychow/android/ndk/android-ndk-r8 export ANDROID_NDK=/home/careychow/android/ndk/android-ndk-r5c export PATH=$PATH:$ANDROID_SDK/tools:$ANDROID_SDK/platform-toos:$ANDROID_NDK
注: faplayer 利用 android-ndk-r5c 编译,用 android-ndk-r8 编译会出现错误
- 安装ruby环境,推荐安装ruby1.9.2
sudo apt-get install ruby
手机CPU类型检测
我自己的三星s5830i cpu 信息如下
C:\Users\Administrator>adb shell cat /proc/cpuinfo Processor : ARMv6-compatible processor rev 5 (v6l) BogoMIPS : 832.90 Features : swp half thumb fastmult vfp edsp java CPU implementer : 0x41 CPU architecture: 6TEJ CPU variant : 0x1 CPU part : 0xb36 CPU revision : 5 Hardware : BCM21553 ThunderbirdEDN31 platform Revision : 0000 Serial : 0000000000000000
编译 faplayer
- 下载代码
git clone https://github.com/tewilove/faplayer.git
- 配置 local.properties 指向android sdk的安装路径,我的配置是:
sdk.dir=/home/careychow/android/sdk/android-sdk-linux
- 配置编译参数并编译代码,具体的配置需要参照上面的cpu信息,如果类型不匹配,编译出来的apk是无法正常安装的,会出现 Failure [INSTALL_FAILED_CPU_ABI_INCOMPATIBLE]错误,我的手机不支持neon,所以采用第二个配置参数 ABI=armeabi,可正常安装和执行
Build examples: ./build.sh # <-- this will build for cortex-a8 with neon by default. ./build.sh ABI=armeabi # <-- this will build for arm1136j-s with softfp. ./build.sh ABI=armeabi-v7a FPU=vfpv3-d16 TUNE=cortex-a9 # <-- Xoom
- 生成 APK
ant debug
命令后会在bin文件夹下面生成 faplayer-debug.apk
注:如果提示build.xml文件过期,则可用如下命令修复android update project -p .
求 QQ
@/dy心中的太阳: QQ 隐藏在围脖中 …