FFmpeg第一篇之Android平台上的so编译

   说来惭愧,历经两个多月的时间没有来更新自己的技术博客,一来时间紧凑,二来自己本身也是比较懒惰,但是近来可能功夫来了,必然来更新一下自己的技术博客,来保存近来下一步要学习的内容,如果感兴趣的同学可以跟我一块来了解一下这个领域的一下知识。

   FFmpeg是视频处理的比较完善的框架,可惜目前本人只处于Java阶段的开发,底层代码不能研究,也希望大神能够提出宝贵的学习意见,与君共勉。


   FFmpeg在mac系统下的集成网上找了不少帖子,可是自己也碰了不少壁,终于在今天走通了,所以记录下来进行以后的学习

  首先第一步配置自己的NDK:

    我本地存了两个版本的NDK:android-ndk-r10e和android-ndk-r11b

        可以从网上下载:http://www.androiddevtools.cn

第二步:从FFmpeg官网上去下载最新版本的FFmpeg:

      官网地址:http://ffmpeg.org/;

          git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

第三部:进入ffmpeg目录下找到configure,使用Xcode编译器打开然后更改下面信息

SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
改为

SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
SLIB_INSTALL_LINKS='$(SLIBNAME)'
然后接下来在ffmpeg根目录下创建自己的脚本文件: android_build.sh


#!/bin/bash

#此处是第1步下载的ndk位置

NDK=/Users/yuliyan/Development/android-ndk-r11b

#我是用android-L编译的,也可以采用别的SDK

SYSROOT=/Users/yuliyan/Development/android-ndk-r11b/platforms/android-24/arch-arm

#根据安装的ndk版本不同,这里也需要作适当修改

TOOLCHAIN=/Users/yuliyan/Development/android-ndk-r11b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64

function build_one

{

./configure \

--prefix=$PREFIX \

--enable-shared \

--disable-static \

--disable-doc \

--disable-ffmpeg \

--disable-ffplay \

--disable-ffprobe \

--disable-ffserver \

--disable-avdevice \

--disable-doc \

--disable-symver \

--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \

--target-os=linux \

--arch=arm \

--enable-cross-compile \

--sysroot=$SYSROOT \

--extra-cflags="-Os -fpic $ADDI_CFLAGS" \

--extra-ldflags="$ADDI_LDFLAGS" \

$ADDITIONAL_CONFIGURE_FLAG

make clean

make

make install

}

CPU=arm

PREFIX=$(pwd)/android/$CPU

ADDI_CFLAGS="-marm"

build_one




然后命令行定位到ffmpeg根目录下,执行下面的命令:

修改 build_android.sh 档案属性

sudo chmod +x build_android.sh

执行:

./build_android.sh

接下来在FFmpeg中会出现android/arm这里就能找到你想要的so文件










你可能感兴趣的:(FFmpeg,学习)