Mac下编译FFmpeg

作者: 小村医 | 来源:发表于2019-09-19 13:24 被阅读0次

一、下载FFMPEG

git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

二、修改configure配置文件

解压好ffmpeg后,修改ffmpeg的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)'

进入ffmpeg目录下终端输入命令:

./configure

注意如果不执行这一步,后面编译时会报错

Unknown option "--disable-ffserver"...

三、编写编译脚本

创建 build_android.sh文件,并将以下内容复制到此文件:

#!/bin/bash
cd ffmpeg
make clean
export TMPDIR=/Users/huangyoubin/development/fflib/
export NDK=/Users/huangyoubin/Library/Android/sdk/ndk/
export SYSROOT=$NDK/platforms/android-21/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/
export CPU=arm
export PREFIX=/Users/huangyoubin/development/fflib/
export ADDI_CFLAGS="-marm"
function build_one {
    ./configure \
    --target-os=linux \
    --prefix=$PREFIX \
    --arch=arm \
    --enable-shared \
    --enable-gpl \
    --enable-cross-compile \
    --disable-static \
    --disable-yasm \
    --disable-symver \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
    make clean
    make -j8
    make install
}

build_one

上述脚本需要根据自身实际安装的目录进行一些修改

保存后执行:

./build_android.sh

等待一段时间后 需要的so文件就生成在对应目录

相关文章

网友评论

    本文标题:Mac下编译FFmpeg

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