内容简介:下载ffmpeg3.4
1.FFmpeg编译
1.1准备工作
下载ubuntu 18.04.2 www.ubuntu.com/download/de… (本人是直接在 linux上开发的,如果在windows上需要安装虚拟机)
下载ffmpeg3.4 ffmpeg.org/releases/ff… (目前最新版本编译死 的时候有问题,所以选择先用老版本,3.4版本后不需要更改configure文件内容)
下载ndk developer.android.google.cn/ndk/downloa…
(目前用的是r14b,其他版本试过没成功)
1.2编译过程
准备编译脚本
#!/bin/bash
echo "进入编译ffmpeg脚本"
NDK=/home/fanqile/Desktop/android-ndk-r16
#5.0
PLATFORM=$NDK/platforms/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=armv7-a
#输出路径
PREFIX=./android/$CPU
function buildFF
{
echo "开始编译ffmpeg"
./configure \
--prefix=$PREFIX \
--target-os=android \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--arch=arm \
--cpu=$CPU \
--sysroot=$PLATFORM \
--extra-cflags="$CFLAG" \
--cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
--nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
--enable-shared \
--enable-runtime-cpudetect \
--enable-gpl \
--enable-small \
--enable-cross-compile \
--disable-debug \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-postproc \
--disable-avdevice \
--disable-symver \
--disable-stripping \
$ADDmake
-j16
make install
echo "编译结束!"
}###########################################################
echo "编译支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/armv7-a-neon-hard
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp "
ADD="--enable-asm \
--enable-neon \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-hwaccel=h264_mediacodec "
buildFF
###########################################################
echo "编译不支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/$CPU
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=vfp -mfloat-abi=softfp "
ADD=
buildFF
复制代码
注:复制的情况下要把\后面空格去掉
开始编译
先把刚写完的脚本命名为build_android.sh,然后把它保存到ffmpeg3.4文件夹中,再ffmpeg文件夹空白处右键打开终端,通过 linux 命令给build_android.sh赋予最高权限
然后输入./build_android.sh开始编译,大概等几分钟就编译完成了
现在ffmpeg3.4文件夹下就新生成了一个android文件夹,里面有两个文件,一个是支持neon和硬解码,一个是不支持的
再进进去就有三个文件夹,第一个是头文件,第二个是so库,第三个是案例
1.3移植到androidstudio
打开android studio 新建工程,勾选c++
后面再选c++11,后面直接next就好了
工程建好后,把前面编译好的库复制到app/libs中
接着开始编译CmakeLists.txt(前提是要安装cmake,sdk manager里可以选择)
后面开始配置app中的build.gradle
最后点Build——make project ,完成,build里生成 libnative-lib.so
整个编译到移植到这里全部完成了。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 开发人员学Linux(8):CentOS7编译安装Subversion1.9.5及Apache2.4.25并集成
- Xcode 编译疾如风系列(二):并行编译
- 编写 MSBuild 内联编译任务(Task)用于获取当前编译环境下的所有编译目标(Target)
- 使用 Visual Studio 编译时,让错误一开始发生时就停止编译(以便及早排查编译错误节省时间)
- Go编译缓存导致C文件修改后未重新编译
- Android Apk反编译系列教程(一)如何反编译APK
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
React Native:用JavaScript开发移动应用
【美】Truong Hoang Dung(张皇容) / 奇舞团 / 电子工业出版社 / 2015-9 / 65.00
React Native是当前移动端开发中的优秀解决方案。《React Native:用JavaScript开发移动应用》围绕着如何将一个完整App提交到App Store,讲解了使用React Native开发iOS应用所涉及的方方面面。首先介绍了Flexbox布局,教大家从零开始搭建一个初始应用,以此阐明React Native的基础运行机理;然后介绍了Flux的设计思想,怎么理解和使用Pro......一起来看看 《React Native:用JavaScript开发移动应用》 这本书的介绍吧!