Ubuntu16.04交叉编译Android平台下的x264

前端之家收集整理的这篇文章主要介绍了Ubuntu16.04交叉编译Android平台下的x264前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一,获取x264源码

使用git下载:

git clone http://git.videolan.org/git/x264.git

官网下载:

http://www.videolan.org/developers/x264.html

历史版本:

ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

二, ubuntu16.04 + ndk-r10e环境

Windows 32-bitandroid-ndk-r10e-windows-x86.exe

Windows 64-bitandroid-ndk-r10e-windows-x86_64.exe

Mac OS X 64-bitandroid-ndk-r10e-darwin-x86_64.bin

Linux 32-bit (x86)android-ndk-r10e-linux-x86.bin

Linux 64-bit (x86)android-ndk-r10e-linux-x86_64.bin

百度网盘下载:

链接:https://pan.baidu.com/s/1cOMfj_TlKosuoK_zxJYE8A 密码:ctv3

下载之后进入到ndk(android-ndk-r10e-linux-x86_64.bin )所在目录,右击打开Teminal命令窗口,逐次执行以下两条命令:
chmod a + x android-ndk-r10c-linux-x86_64 . bin
/android-ndk-r10c-linux-x86_64 bin 1

三,编译脚本

如果是编译动态库,先进入到x264目录,修改configure文件。定位到 1500行

else echo "SOSUFFIX=so" >> config.mak

echo "SONAME=libx264.so.$API"

这几行,将"libx264.so.$API"替换为"libx264.so",文件名中就不要版本了

在源码根目录下创建脚本文件 build_android.sh, 内容如下:


#!/bin/bash

if [ -z "$ANDROID_NDK" ]; then

echo "You must define ANDROID_NDK before starting."

echo "They must point to your NDK directories.\n"

exit 1

fi

# Detect OS

OS=`uname`

HOST_ARCH=`uname -m`

export CCACHE=; type ccache >/dev/null 2>&1 && export CCACHE=ccache

if [ $OS == 'Linux' ]; then

export HOST_SYSTEM=linux-$HOST_ARCH

elif [ $OS == 'Darwin' ]; then

export HOST_SYSTEM=darwin-$HOST_ARCH

fi

SOURCE=`pwd`

PREFIX=$SOURCE/build/android

SYSROOT=$ANDROID_NDK/platforms/android-14/arch-arm

CROSS_PREFIX=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/$HOST_SYSTEM/bin/arm-linux-androideabi-

EXTRA_CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=neon -D__ARM_ARCH_7__ -D__ARM_ARCH_7A__"

EXTRA_LDFLAGS="-nostdlib"

./configure  --prefix=$PREFIX \

--cross-prefix=$CROSS_PREFIX \

--extra-cflags="$EXTRA_CFLAGS" \

--extra-ldflags="$EXTRA_LDFLAGS" \

--enable-pic \

--enable-static \

--enable-strip \

--disable-cli \

--host=arm-linux \

--sysroot=$SYSROOT

make clean

make STRIP= -j4 install || exit 1


注意 :ANDROID_NDK为NDK所在目录,

PREFIX,为编译生成x264目标库文件路径

SYSROOT ,CROSS_PREFIX 为NDK相关路径

可以根据自己电脑配置修改以上变量。



然后修改build_android_arm.sh文件的权限:


sudo chmod a+x build_android.sh

后执行

./build_android.sh

等待编译.........

音视频开发训练营公众号

猜你在找的Ubuntu相关文章