美文网首页
第一节 编译ffmpeg(3.3.8)

第一节 编译ffmpeg(3.3.8)

作者: 最美下雨天 | 来源:发表于2018-12-06 14:43 被阅读5次

这一系列的笔记来源于csdn大神的视频教程:
学习地址:https://edu.csdn.net/lecturer/1846
FFmpeg下载地址:http://www.ffmpeg.org/download.html#releases

本地NDK版本: image.png

我们使用MAC系统编译

参考地址:https://developer.android.com/ndk/guides/standalone_toolchain?hl=zh-cn

image.png
image.png

我们编译两个平台的就可以了,arm和x86的,x86主要是为了使用模拟器调试方便,如果正式项目,直接使用一个arm就可以了。

下载好ffmpeg后直接解压:


image.png

ffmpeg-3.3.8目录中有个可执行文件configure,我们修改下configure
因为android只能加载.so结尾的动态库,不能识别如.so.57结尾的

#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)'

接下来编写脚本文件build.sh放到ffmpeg-3.3.6目录下

#!/bin/bash
export NDK_HOME=/Users/huozhenpeng/Library/Android/sdk/ndk-bundle
export PLATFORM_VERSION=android-9
function build
{
    echo "start build ffmpeg for $ARCH"
    ./configure --target-os=linux \
    --prefix=$PREFIX --arch=$ARCH \
    --disable-doc \
    --enable-shared \
    --disable-static \
    --disable-yasm \
    --disable-asm \
    --disable-symver \
    --enable-gpl \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --cross-prefix=$CROSS_COMPILE \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --enable-small \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
    make clean
    make
    make install
    echo "build ffmpeg for $ARCH finished"
}

#arm
ARCH=arm
CPU=arm
PREFIX=$(pwd)/android/$ARCH
TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
ADDI_CFLAGS="-marm"
SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/
build

#x86
ARCH=x86
CPU=x86
PREFIX=$(pwd)/android/$ARCH
TOOLCHAIN=$NDK_HOME/toolchains/x86-4.9/prebuilt/darwin-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/i686-linux-android-
ADDI_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32"
SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/
build


注意我们脚本文件中TOOLCHAIN的路径

命令行执行:

./build.sh

编译完成后会生成一个android目录


image.png

相关文章

网友评论

      本文标题:第一节 编译ffmpeg(3.3.8)

      本文链接:https://www.haomeiwen.com/subject/cyajzftx.html