内容简介:下载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
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Java 语言导学
Mary Campione Kalrath Alison Huml / 机械工业 / 2003-1 / 39.00元
《Java 语言导学(原书第3版)》既适合初学者,也适合有经验的程序员:新程序员通过从头到尾阅读《Java 语言导学(原书第3版)》可以得到最大的收获,包括按照第1章“起步”中的步骤说明编译和运行自己的第一个程序。有过程式语言(比如C)经验的程序员可能希望从Java编程语言的面向对象概念和特性开始学习。 有面向对象编程经验的程序员可能希望先学习更高级的内容。一起来看看 《Java 语言导学》 这本书的介绍吧!
CSS 压缩/解压工具
在线压缩/解压 CSS 代码
html转js在线工具
html转js在线工具