简单易上手编译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文件下使用命令就可以进行编译

原文 简单易上手编译FFmpeg - 掘金

★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。

见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

猜你喜欢

转载自blog.csdn.net/yinshipin007/article/details/131261030