FFmpeg编译并集成到android studio

栏目: Android · 发布时间: 5年前

内容简介:下载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赋予最高权限

FFmpeg编译并集成到android studio

然后输入./build_android.sh开始编译,大概等几分钟就编译完成了

FFmpeg编译并集成到android studio

现在ffmpeg3.4文件夹下就新生成了一个android文件夹,里面有两个文件,一个是支持neon和硬解码,一个是不支持的

FFmpeg编译并集成到android studio

再进进去就有三个文件夹,第一个是头文件,第二个是so库,第三个是案例

FFmpeg编译并集成到android studio

1.3移植到androidstudio

打开android studio 新建工程,勾选c++

FFmpeg编译并集成到android studio

后面再选c++11,后面直接next就好了

FFmpeg编译并集成到android studio

工程建好后,把前面编译好的库复制到app/libs中

FFmpeg编译并集成到android studio

接着开始编译CmakeLists.txt(前提是要安装cmake,sdk manager里可以选择)

FFmpeg编译并集成到android studio

后面开始配置app中的build.gradle

FFmpeg编译并集成到android studio

最后点Build——make project ,完成,build里生成 libnative-lib.so

FFmpeg编译并集成到android studio

整个编译到移植到这里全部完成了。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Modern PHP(中文版)

Modern PHP(中文版)

Josh Lockhart / 安道 / 中国电力出版社 / 2015-9 / 39

PHP正在重生,不过所有PHP在线教程都过时了,很难体现这一点。通过这本实用的指南,你会发现,借助面向对象、命名空间和不断增多的可重用的组件库,PHP已经成为一门功能完善的成熟语言。 本书作者Josh Lockhart是“PHP之道”的发起人,这是个受欢迎的新方案,鼓励开发者使用PHP最佳实践。Josh通过实践揭示了PHP语言的这些新特性。你会学到关于应用架构、规划、数据库、安全、测试、调试......一起来看看 《Modern PHP(中文版)》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换