一、android 平台下编译ffmpeg
1、以ffmpeg-3.02 为例
ffmpeg官网:
https://ffmpeg.org/
x264官网:
http://www.videolan.org/developers/x264.html
sdl官网:
https://www.libsdl.org/
2、编写编译脚本
vim built_android.sh
########################################################
#%/bin/sh
NDK=/opt/android-ndk-r9d
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-static \
--disable-doc \
--disable-ffserver \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
}
CPU=android
PWD=`pwd`
PREFIX=$PWD/platform/$CPU
ADDI_CFLAGS="-marm"
build_one
########################################################
3、修改脚本权限
chmod +x build_android.sh
4、修改编译之后生成库的后缀(主要是android 对库的调用只能以.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)'
修改如下: (主要将生成的连接库版本号放在前面 ,.so放在后面)
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、执行脚本配置
./build_android.sh
6、编译和安装
make -j4&& make install
7、生成库就可以在android jni调用
生成库路径 platform/android
二、x86平台下编译ffmpeg
1、编译脚本
vim build_x86.sh
######################################################################
#!/bin/bash
LIB=/home/yue/video/x264/platform/x86/
function build_one
{
./configure \
--prefix=$PREFIX\
--enable-shared\
--enable-gpl\
--enable-protocols\
--enable-parsers\
--enable-bsfs\
--enable-encoder=libx264\
--disable-demuxer=libx264\
--disable-network\
--enable-hwaccels\
--disable-demuxer=sbg\
--disable-demuxer=dts\
--disable-parser=dca\
--disable-yasm\
--disable-fft\
--extra-cflags="-Os -fpic" \
--extra-ldflags="-L$LIB/lib/" \
$ADDITIONAL_CONFIGURE_FLAG
}
CPU=x86
PREFIX=$(pwd)/platform/$CPU
build_one
make clean
make -j4
make install
######################################################################
2、配置、编译、安装
3、设置环境变量