我是靠谱客的博主 执着彩虹,最近开发中收集的这篇文章主要介绍NDK编译x264并引入到Android工程编译步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

H.264是ITU(International Telecommunication Union,国际通信联盟)和MPEG(Motion Picture Experts Group,运动图像专家组)联合制定的视频编码标准。
而x264是一个开源的H.264/MPEG-4 AVC视频编码函数库,是最好的有损视频编码器之一。

在x264在直播中的应用就是将摄像头采集到的视频数据进行编码,然后送到送到rtmp打包推流。

要在Android中使用x264就要,首先需要预编译出x264的静/动态库。

依照惯例,笔者先说明一下笔者的实例编译环境:

今天我们使用的是编译系统是Mac系统。

使用的NDK版本是r16,NDK在r18之后之后彻底移除了gcc(包含r18版本),所以如果使用r17之后的版本的话需要修改编译脚本。

编译步骤

首先我们从x264官网:https://www.videolan.org/developers/x264.html下载好x264的源码解码到制定目录。

然后新建编译脚本build_x264.sh:


#!/bin/bash

# 将NDK的路径替换成你自己的NDK路径
NDK_ROOT=/Users/liangchuanfei/Documents/Android/SDK/android-ndk-r16b

# 设置工具链mac苹果电脑的是darwin-x86_64 而如果是linux的话则是linux-x86_64

TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64

PREFIX=./android/armeabi-v7a

FLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security  -O0 -fPIC"
#--disable-cli 不需要命令行工具
#--enable-static 静态库
#和ffmpeg差不多
./configure 
--prefix=$PREFIX 
--disable-cli 
--enable-static 
--enable-pic 
--host=arm-linux 
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- 
--sysroot=$NDK_ROOT/platforms/android-21/arch-arm 
--extra-cflags="$FLAGS"

make clean
make install

编译脚本完成后我们给它增加一下可执行权限:

chmod +x build_x264.sh

然后运行脚本./build_x264.sh等待编译完成即可。

编译完成后会在当前目录的android/armeabi-v7a目录下生成对于的头文件已经静态库文件。

编译出静态库之后就可以把头文件以及点a文件拷贝到AS中引入到Android工程中使用了。如果你还不知道如何引用可以参考下这篇文章:《将ffmpeg引入到Android Studio工程中》,方法大同小异。

最后如果你对音视频开发感兴趣可扫码关注

最后

以上就是执着彩虹为你收集整理的NDK编译x264并引入到Android工程编译步骤的全部内容,希望文章能够帮你解决NDK编译x264并引入到Android工程编译步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部