ffmpeg3.3.7源码编译

10 篇文章 0 订阅
2 篇文章 0 订阅

本文介绍在mac os环境下编译ffmpeg3.3.7源码: 建议下载ffmpeg3.3.7和ndk-r14b进行源码编译,否则其它版本可能需要修改编译脚本才能成功。当然,如果你比较熟悉shell脚本或者特定ffmpeg版本的话请自便。

1.下载ffmpeg3.3.7源码

http://ffmpeg.org/download.html#releases
这里写图片描述

2.下载ndk-r14b.

https://developer.android.google.cn/ndk/downloads/revision_history
这里写图片描述

3.将下载ndk和ffmpeg源码解压,放到同一目录下

4.切换到ffmpeg目录下修改congfigure文件,目的是去掉默认生成的.so库文件后的版本号。

将这四行:

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

5.configure 文件为编译ffmpeg的配置文件。终端configure –help可以查看配置参数说明。为了方便设置配置参数,我们创建一个脚本文件ffmpegconfig.sh用来配置所有参数。如下是配置参数及解释。

#!/bin/bash
NDK=/Users/hongenit/ffmpeg_test/android-ndk-r14b
NDK_VERSION=android-21
ARCH=arm
CPU=arm
PREFIX=$(pwd)/android/$CPU
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
SYSROOT=$NDK/platforms/$NDK_VERSION/arch-$ARCH

function build_one {
./configure \
--target-os=linux \
--arch=$ARCH \
--prefix=$PREFIX \
--disable-shared \
--enable-ffplay \
--disable-ffprobe \
# 产生调试信息的选项,打开的话会使所有模块的库体积大很多(4倍左右)。
--disable-debug \
# 打开所有解码器,对应libavcodec
--disable-decoders \
--enable-decoder=h264 \
--enable-decoder=aac \
--enable-encoders \
--enable-encoder=rawvideo \
# 打开所有格式封装器
--enable-muxers \
--enable-muxer=mp4 \
--enable-muxer=rawvideo \
# 打开滤镜功能,libavfilter
--enable-filters \
--enable-static \
--disable-doc \
--disable-ffserver \
--enable-cross-compile \
--cross-prefix=$CROSS_COMPILE \
--sysroot=$SYSROOT \
--extra-cflags="-fpic"
}
build_one

make -j8
make install

$TOOLCHAIN/bin/arm-linux-androideabi-ld -rpath-link=$SYSROOT/usr/lib -L$SYSROOT/usr/lib -L$PREFIX/lib -soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavfilter/libavfilter.a libswresample/libswresample.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a libavdevice/libavdevice.a -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker $TOOLCHAIN/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值