内容简介:下载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
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Modern PHP(中文版)
Josh Lockhart / 安道 / 中国电力出版社 / 2015-9 / 39
PHP正在重生,不过所有PHP在线教程都过时了,很难体现这一点。通过这本实用的指南,你会发现,借助面向对象、命名空间和不断增多的可重用的组件库,PHP已经成为一门功能完善的成熟语言。 本书作者Josh Lockhart是“PHP之道”的发起人,这是个受欢迎的新方案,鼓励开发者使用PHP最佳实践。Josh通过实践揭示了PHP语言的这些新特性。你会学到关于应用架构、规划、数据库、安全、测试、调试......一起来看看 《Modern PHP(中文版)》 这本书的介绍吧!