[直播一揽子]x264 for Android 的编译

终于进入正题了。前提条件是你需要有ndk。我这边下载的是r11b的版本。其他的版本也不会出问题。但是为什么不用最新的呢?

在Linux/Mac下,开始x264的编译工作。

首先从官网上下载最新的x264源码:http://www.videolan.org/developers/x264.html。这里贴一下git的地址:

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

下载完成之后,就可以开始编译了。这里我就先没有去了解怎么使用,因为目前还不需要使用它,编译出来才是第一步。

关于如何用NDK编译x264,网上有很多这样的代码。我是怎么做的呢:在github上搜索X264,然后进去看看有没有编译的相关脚本。一般运气不会太差,前几页就会有。

这里我贴一下我的脚本。虽然对cpu的支持还不是很全,但是能编译运行了。至于对CPU的支持,以后等整体跑通了,再去做支持。(以后去做,也许就不会去做了。。TODO一下吧!)

在x264的源码根目录下建一个build_android.sh文件,然后写入以下编译代码

#!/bin/bash
#这里需要配置一下你的NDK的根目录。
ANDROID_NDK=$NDK_HOME

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`
#这里配置最终生成。a的目录
PREFIX=$SOURCE/build/android/arm/
#目标编译版本
SYSROOT=$ANDROID_NDK/platforms/android-14/arch-arm
#arm-linux-androideabi-4.9 这个数字可能需要变化。不同的NDK版本版本号不一致。
#目标编译版本和toolchains下的目录有对应关系。arch-arm对应arm-linux或aarch64。arch-mips对应mipsel-linux或米皮sel-linux。x86同样。
CROSS_PREFIX=$ANDROID_NDK/toolchains/arm-linux-androideabi-4.9/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 \
	--disable-asm  \
	--sysroot=$SYSROOT

make clean
make STRIP= -j4 install || exit 1

然后赋予build_android.sh执行权限。根目录下运行:

# ./build_android.sh

应该不会出错(如果有错,欢迎在文章下面评论,我会尽量帮助完善)。

编译完成之后,在源码的目录中,多了一个build目录。这个目录里面就是我们想要的头文件和静态库。两个头文件,和一个.a的静态库

include
  |______x264_config.h
  |______x264.h
lib
  |______libx264.a

有了这几个文件,就可以开始安卓的采集工作了。

顺带提一句:x264里面有个example.c,这个文件里面是使用的示例代码。这也是我后面编译X264的主要参考文件。

转载于:https://my.oschina.net/lifj/blog/709188

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值