说来惭愧,历经两个多月的时间没有来更新自己的技术博客,一来时间紧凑,二来自己本身也是比较懒惰,但是近来可能功夫来了,必然来更新一下自己的技术博客,来保存近来下一步要学习的内容,如果感兴趣的同学可以跟我一块来了解一下这个领域的一下知识。
FFmpeg是视频处理的比较完善的框架,可惜目前本人只处于Java阶段的开发,底层代码不能研究,也希望大神能够提出宝贵的学习意见,与君共勉。
FFmpeg在mac系统下的集成网上找了不少帖子,可是自己也碰了不少壁,终于在今天走通了,所以记录下来进行以后的学习
首先第一步配置自己的NDK:
我本地存了两个版本的NDK:android-ndk-r10e和android-ndk-r11b
可以从网上下载:http://www.androiddevtools.cn
第二步:从FFmpeg官网上去下载最新版本的FFmpeg:
官网地址:http://ffmpeg.org/;
git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg
第三部:进入ffmpeg目录下找到configure,使用Xcode编译器打开然后更改下面信息
将
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根目录下创建自己的脚本文件: android_build.sh
#!/bin/bash
#此处是第1步下载的ndk位置
NDK=/Users/yuliyan/Development/android-ndk-r11b
#我是用android-L编译的,也可以采用别的SDK
SYSROOT=/Users/yuliyan/Development/android-ndk-r11b/platforms/android-24/arch-arm
#根据安装的ndk版本不同,这里也需要作适当修改
TOOLCHAIN=/Users/yuliyan/Development/android-ndk-r11b/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
然后命令行定位到ffmpeg根目录下,执行下面的命令:
修改 build_android.sh 档案属性
sudo chmod +x build_android.sh
执行:
./build_android.sh