歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 將x264移植到Android

將x264移植到Android

日期:2017/3/1 9:43:46   编辑:Linux編程

x264的版本是:x264-snapshot-20131228-2245

NDK的版本:Android-ndk-r8b

虛擬機VMware9.0.2,Ubuntu12.04,

Linux環境下開發需要進行環境變量配置。Linux環境下主要用於x264/ffmpeg使用ndk編譯成動態庫文件。至於使用Eclipse可以在Linux環境或者Windows環境下。環境配置主要是為了編譯動態庫使用的,與Eclipse開發無關。

Ubuntu 14.04 x64配置Android 4.4 kitkat編譯環境的方法 http://www.linuxidc.com/Linux/2014-05/101148.htm

Ubuntu 12.04搭建Android開發環境 http://www.linuxidc.com/Linux/2012-09/69961.htm

Ubuntu 14.04 配置 Android SDK 開發環境 http://www.linuxidc.com/Linux/2014-05/101039.htm

64位Ubuntu 11.10下Android開發環境的搭建(JDK+Eclipse+ADT+Android SDK詳細) http://www.linuxidc.com/Linux/2013-06/85303.htm

Ubuntu 12.10 x64 安裝 Android SDK http://www.linuxidc.com/Linux/2013-03/82005.htm

Linux環境下,下載好上面的軟件之後,進行如下配置:

一、終端輸入:gedit ~/.bashrc

二、打開的腳本文件最後輸入下面兩行命令:

export NDK_HOME=/home/huaguanglu/src/android-ndk-r8b

export PATH=$PATH:$NDK_HOME

三、終端輸入:gedit /etc/profile

四、打開的腳本文件最後輸入下面兩行命令:

#set arm-linux-androideabi-gcc

export

ARM_LINUX_ANDROIDEABI_GCC=/home/huaguanglu/src/android-ndk-r8b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin

export PATH=$ARM_LINUX_ANDROIDEABI_GCC:$PATH

可以將上面的命令直接復制使用,注意改一下用戶名,即標藍色的地方。

測試一下ndk可不可以使用。終端到ndk的samples/hello-jni/jni目錄下,輸入ndk-build。如圖:

如果生成so文件,則說明ndk環境配置成功。

編譯x264動態庫

在主目錄下新建文件夾bysj,x264代碼放在~/bysj/目錄下,在目錄~/bysj/x264-snapshot-20131228-2245/下,新建腳本文件myconfig.sh.其代碼為:

export ARM_ROOT=/home/huaguanglu/bysj/android-ndk-r8b

export ARM_INC=$ARM_ROOT/platforms/android-8/arch-arm/usr/include/

export ARM_LIB=$ARM_ROOT/platforms/android-8/arch-arm/usr/lib/

export ARM_TOOL=$ARM_ROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86

export ARM_LIBO=$ARM_TOOL/lib/gcc/arm-linux-androideabi/4.4.3

export PATH=$ARM_TOOL/bin:$PATH

export ARM_PRE=arm-linux-androideabi

./configure --disable-gpac --extra-cflags=" -I$ARM_INC -fPIC -DANDROID -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,--noexecstack -MMD -MP " --extra-ldflags="-nostdlib -Bdynamic -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,nocopyreloc -Wl,-soname,/system/lib/libz.so -Wl,-rpath-link=$ARM_LIB,-dynamic-linker=/system/bin/linker -L$ARM_LIB -nostdlib $ARM_LIB/crtbegin_dynamic.o $ARM_LIB/crtend_android.o -lc -lm -ldl -lgcc" --cross-prefix=${ARM_PRE}- --disable-asm --host=arm-linux --disable-shared

將上面代碼復制到myconfig.sh中,終端到~/bysj/x264-snapshot-20131228-2245/目錄下,輸入命令:./myconfig.sh運行。運行完了之後,輸入make。就會在當前目錄下生成libx264.a靜態庫文件。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-05/102423p2.htm

Copyright © Linux教程網 All Rights Reserved