简单易上手编译FFmpeg

FFmpeg 编译简单上手

转载请注明文章出处sudeqiangxx 前言:

关于音视频开发我们需要准备的知识就是要先学习ffmpeg框架的学习,对于Android开发者而言,我们需要把FFmpeg源码编译成.so文件,导入到我们的工程中,才能引用到框架中的方法对音视频进行处理。在这方面的专家雷大佬中国传媒大学博士,大家可以访问他的博客,只可惜,天怒英才,才26岁的大佬就离开了我们。在这里致敬我们心中的大神,愿天堂没有代码。

准备资料

1.准备环境(linux,mac)建议不要在windows上编译,很麻烦,还需要去搭建环境,可以安装虚拟机编译。以下选择用mac系统进行编译。 2.下载ffmpeg源码,我编译的是4.1.3版本的ffmpeg

3.下载ndk,建议不需要下载最新版的ndk 本文使用的r17c版本


修改ffmpeg配置文件

1.修改configure文件,找到下面代码 如图:

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)'
复制代码

保存好就ok

ndk 环境配置
打开终端使用命令:open ~/.bash_profile  即可打开环境变量配置,到这一步应该没问题。
复制代码
编写脚本文件

脚本的作用就是把ffmpeg源码打包成我们需要的.so文件,供我们的Android项目调用。

新建一个在ffmpeg文件夹下新建android_build.sh文件。

#!/bin/bash

ADDI_CFLAGS="-marm"
API=19
PLATFORM=arm-linux-androideabi
CPU=armv7-a
#自己本地的ndk路径。
NDK=/Users/deqiangsu/develop/ndk/android-ndk-r17c
SYSROOT=$NDK/platforms/android-$API/arch-arm/
ISYSROOT=$NDK/sysroot
ASM=$ISYSROOT/usr/include/$PLATFORM
TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
#自己指定一个输出目录,用来放生成的文件的。
OUTPUT=/Users/deqiangsu/develop/ffmpeg/ffmpeg-3.3.9
function build
{
./configure \
--prefix=$OUTPUT \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
--extra-ldflags="-marm" \
$ADDITIONAL_CONFIGURE_FLAG
  make clean
  make 
  make install
}
build
复制代码

复制上面的脚本代码到我们新建的文件中,打开终端,到ffmpeg文件下使用命令就可以进行编译

命令: ./android_build.sh 
复制代码

转载于:https://juejin.im/post/5cd289d7f265da0379419068

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值