实测好使, ffmpeg x264 编码器包含,编译了好久, 一直编译不进去,现用
ff3.3–ijk0.8.0–20170518–001 版本的ffmpeg和x264-snapshot-20151028-2245 版本的x264编译成功
转载如下, 非常感谢该作者,帮助非常大,留以备用

在主目录下新建init-android-x264.sh

#! /usr/bin/env bash

Copyright © 2013-2015 Zhang Rui bbcallen@gmail.com

Licensed under the Apache License, Version 2.0 (the “License”);

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

IJK_x264_UPSTREAM=http://git.videolan.org/git/x264.git
IJK_x264_FORK=http://git.videolan.org/git/x264.git

IJK_x264_LOCAL_REPO=extra/x264

set -e
TOOLS=tools

echo “== pull x264 base ==”
sh $TOOLS/pull-repo-base.sh $IJK_x264_UPSTREAM $IJK_x264_LOCAL_REPO

function pull_fork()
{
echo “== pull x264 fork $1 ==”
sh $TOOLS/pull-repo-ref.sh $IJK_x264_FORK android/contrib/x264-$1 ${IJK_x264_LOCAL_REPO}
}

pull_fork “armv5”
pull_fork “armv7a”
pull_fork “arm64”
pull_fork “x86”
pull_fork “x86_64”

这步执行完后,会在extra下面有个x264, 下面有源码
并且在android/contrib下面会有x264-armv7a等五个文件夹,如下

x264.png

在android/contrib下新建compile-x264.sh 和 tools/do-compile-x264.sh

compile-x264.sh
#! /usr/bin/env bash

Copyright © 2013-2014 Zhang Rui bbcallen@gmail.com

Licensed under the Apache License, Version 2.0 (the “License”);

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

#----------
UNI_BUILD_ROOT=pwd
FF_TARGET=$1
set -e
set +x

FF_ACT_ARCHS_32=“armv5 armv7a x86”
FF_ACT_ARCHS_64=“armv5 armv7a arm64 x86 x86_64”
FF_ACT_ARCHS_ALL=$FF_ACT_ARCHS_64

echo_archs() {
echo “"
echo “[*] check archs”
echo "”
echo “FF_ALL_ARCHS = $FF_ACT_ARCHS_ALL”
echo “FF_ACT_ARCHS = $*”
echo “”
}

echo_usage() {
echo “Usage:”
echo " compile-x264.sh armv5|armv7a|arm64|x86|x86_64"
echo " compile-x264.sh all|all32"
echo " compile-x264.sh all64"
echo " compile-x264.sh clean"
echo " compile-x264.sh check"
exit 1
}

echo_nextstep_help() {
#----------
echo “”
echo “--------------------”
echo “[*] Finished”
echo “--------------------”
echo “# to continue to build ffmpeg, run script below,”
echo "sh compile-ffmpeg.sh "
echo “# to continue to build ijkplayer, run script below,”
echo "sh compile-ijk.sh "
}

#----------
case “$FF_TARGET” in
“”)
echo_archs armv7a
sh tools/do-compile-x264.sh armv7a
;;
armv5|armv7a|arm64|x86|x86_64)
echo_archs $FF_TARGET
sh tools/do-compile-x264.sh $FF_TARGET
echo_nextstep_help
;;
all32)
echo_archs $FF_ACT_ARCHS_32
for ARCH in $FF_ACT_ARCHS_32
do
sh tools/do-compile-x264.sh $ARCH
done
echo_nextstep_help
;;
all|all64)
echo_archs $FF_ACT_ARCHS_64
for ARCH in $FF_ACT_ARCHS_64
do
sh tools/do-compile-x264.sh $ARCH
done
echo_nextstep_help
;;
clean)
echo_archs FF_ACT_ARCHS_64
for ARCH in F F A C T A R C H S A L L d o i f [ − d x 264 − FF_ACT_ARCHS_ALL do if [ -d x264- FFA​CTA​RCHSA​LLdoif[−dx264−ARCH ]; then
cd x264-$ARCH && git clean -xdf && cd -
fi
done
rm -rf ./build/x264-*
;;
check)
echo_archs FF_ACT_ARCHS_ALL
;;
*)
echo_usage
exit 1
;;
esac

do-compile-x264.sh
#! /usr/bin/env bash

Copyright © 2014 Miguel Bot髇 waninkoko@gmail.com

Copyright © 2014 Zhang Rui bbcallen@gmail.com

Licensed under the Apache License, Version 2.0 (the “License”);

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

#--------------------
set -e

if [ -z “$ANDROID_NDK” ]; then
echo “You must define ANDROID_NDK before starting.”
echo “They must point to your NDK directories.\n”
exit 1
fi

#--------------------

common defines

FF_ARCH= 1 i f [ − z " 1 if [ -z " 1if[−z"FF_ARCH" ]; then
echo “You must specific an architecture ‘arm, armv7a, x86, …’.\n”
exit 1
fi

FF_BUILD_ROOT=pwd
FF_ANDROID_PLATFORM=android-9

FF_BUILD_NAME=
FF_SOURCE=
FF_CROSS_PREFIX=

FF_CFG_FLAGS=
FF_PLATFORM_CFG_FLAGS=

FF_EXTRA_CFLAGS=
FF_EXTRA_LDFLAGS=

#--------------------
echo “”
echo “--------------------”
echo “[*] make NDK standalone toolchain”
echo “--------------------”
. ./tools/do-detect-env.sh
FF_MAKE_TOOLCHAIN_FLAGS= I J K M A K E T O O L C H A I N F L A G S F F M A K E F L A G S = IJK_MAKE_TOOLCHAIN_FLAGS FF_MAKE_FLAGS= IJKM​AKET​OOLCHAINF​LAGSFFM​AKEF​LAGS=IJK_MAKE_FLAG
FF_GCC_VER= I J K G C C V E R F F G C C 6 4 V E R = IJK_GCC_VER FF_GCC_64_VER= IJKG​CCV​ERFFG​CC6​4V​ER=IJK_GCC_64_VER

#----- armv7a begin -----
if [ " F F A R C H " = " a r m v 7 a " ] ; t h e n e c h o " g d e b u g x 264 − a r m v 7 a . . . . . . . . . . . . . . " F F B U I L D N A M E = x 264 − a r m v 7 a F F S O U R C E = FF_ARCH" = "armv7a" ]; then echo "gdebug x264-armv7a.............." FF_BUILD_NAME=x264-armv7a FF_SOURCE= FFA​RCH"="armv7a"];thenecho"gdebugx264−armv7a.............."FFB​UILDN​AME=x264−armv7aFFS​OURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=arm-linux-androideabiFF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_VER}FF_PLATFORM_CFG_FLAGS="android-armv7"

elif [ " F F A R C H " = " a r m v 5 " ] ; t h e n F F B U I L D N A M E = x 264 − a r m v 5 F F S O U R C E = FF_ARCH" = "armv5" ]; then FF_BUILD_NAME=x264-armv5 FF_SOURCE= FFA​RCH"="armv5"];thenFFB​UILDN​AME=x264−armv5FFS​OURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=arm-linux-androideabiFF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_VER}FF_PLATFORM_CFG_FLAGS="android"

elif [ " F F A R C H " = " x 86 " ] ; t h e n F F B U I L D N A M E = x 264 − x 86 F F S O U R C E = FF_ARCH" = "x86" ]; then FF_BUILD_NAME=x264-x86 FF_SOURCE= FFA​RCH"="x86"];thenFFB​UILDN​AME=x264−x86FFS​OURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=i686-linux-androidFF_TOOLCHAIN_NAME=x86-${FF_GCC_VER}FF_PLATFORM_CFG_FLAGS="android-x86"

elif [ “$FF_ARCH” = “x86_64” ]; then
FF_ANDROID_PLATFORM=android-21

FF_BUILD_NAME=x264-x86_64
FF_SOURCE=$FF_BUILD_ROOT/$FF_BUILD_NAMEFF_CROSS_PREFIX=x86_64-linux-android
FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_64_VER}FF_PLATFORM_CFG_FLAGS="linux-x86_64"

elif [ “$FF_ARCH” = “arm64” ]; then
FF_ANDROID_PLATFORM=android-21

FF_BUILD_NAME=x264-arm64
FF_SOURCE=$FF_BUILD_ROOT/$FF_BUILD_NAMEFF_CROSS_PREFIX=aarch64-linux-android
FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_64_VER}FF_PLATFORM_CFG_FLAGS="linux-aarch64"

else
echo “unknown architecture $FF_ARCH”;
exit 1
fi

FF_TOOLCHAIN_PATH= F F B U I L D R O O T / b u i l d / FF_BUILD_ROOT/build/ FFB​UILDR​OOT/build/FF_BUILD_NAME/toolchain

FF_SYSROOT= F F T O O L C H A I N P A T H / s y s r o o t F F P R E F I X = FF_TOOLCHAIN_PATH/sysroot FF_PREFIX= FFT​OOLCHAINP​ATH/sysrootFFP​REFIX=FF_BUILD_ROOT/build/$FF_BUILD_NAME/output

mkdir -p $FF_PREFIX
mkdir -p $FF_SYSROOT

#--------------------
echo “”
echo “--------------------”
echo “[*] make NDK standalone toolchain”
echo “--------------------”
. ./tools/do-detect-env.sh
FF_MAKE_TOOLCHAIN_FLAGS= I J K M A K E T O O L C H A I N F L A G S F F M A K E F L A G S = IJK_MAKE_TOOLCHAIN_FLAGS FF_MAKE_FLAGS= IJKM​AKET​OOLCHAINF​LAGSFFM​AKEF​LAGS=IJK_MAKE_FLAG

FF_MAKE_TOOLCHAIN_FLAGS=“ F F M A K E T O O L C H A I N F L A G S − − i n s t a l l − d i r = FF_MAKE_TOOLCHAIN_FLAGS --install-dir= FFM​AKET​OOLCHAINF​LAGS−−install−dir=FF_TOOLCHAIN_PATH”
FF_TOOLCHAIN_TOUCH=“ F F T O O L C H A I N P A T H / t o u c h " i f [ ! − f " FF_TOOLCHAIN_PATH/touch" if [ ! -f " FFT​OOLCHAINP​ATH/touch"if[!−f"FF_TOOLCHAIN_TOUCH” ]; then
$ANDROID_NDK/build/tools/make-standalone-toolchain.sh
KaTeX parse error: Expected 'EOF', got '\ ' at position 25: …OOLCHAIN_FLAGS \̲ ̲ --platf…FF_ANDROID_PLATFORM
–toolchain=$FF_TOOLCHAIN_NAME
touch $FF_TOOLCHAIN_TOUCH;
fi

#--------------------
echo “”
echo “--------------------”
echo “[*] check x264 env”
echo “--------------------”
export PATH= F F T O O L C H A I N P A T H / b i n : FF_TOOLCHAIN_PATH/bin: FFT​OOLCHAINP​ATH/bin:PATH

export COMMON_FF_CFG_FLAGS=

FF_CFG_FLAGS="$FF_CFG_FLAGS $COMMON_FF_CFG_FLAGS"

#--------------------

Standard options:

echo “FF_PREFIX = F F P R E F I X " F F C F G F L A G S = " FF_PREFIX" FF_CFG_FLAGS=" FFP​REFIX"FFC​FGF​LAGS="FF_CFG_FLAGS --prefix= F F P R E F I X " F F C F G F L A G S = " FF_PREFIX" FF_CFG_FLAGS=" FFP​REFIX"FFC​FGF​LAGS="FF_CFG_FLAGS --enable-static --disable-shared”
FF_CFG_FLAGS=“KaTeX parse error: Expected 'EOF', got '#' at position 71: …--disable-cli" #̲FF_CFG_FLAGS="FF_CFG_FLAGS --cross-prefix= T O O L C H A I N / b i n / a r m − l i n u x − a n d r o i d e a b i − " F F C F G F L A G S = " TOOLCHAIN/bin/arm-linux-androideabi-" FF_CFG_FLAGS=" TOOLCHAIN/bin/arm−linux−androideabi−"FFC​FGF​LAGS="FF_CFG_FLAGS --cross-prefix= F F C R O S S P R E F I X − " F F C F G F L A G S = " {FF_CROSS_PREFIX}-" FF_CFG_FLAGS=" FFC​ROSSP​REFIX−"FFC​FGF​LAGS="FF_CFG_FLAGS --host=arm-linux”
FF_CFG_FLAGS=“ F F C F G F L A G S − − s y s r o o t = FF_CFG_FLAGS --sysroot= FFC​FGF​LAGS−−sysroot=FF_SYSROOT”

#FF_CFG_FLAGS=" F F C F G F L A G S − − c r o s s − p r e f i x = FF_CFG_FLAGS --cross-prefix= FFC​FGF​LAGS−−cross−prefix={FF_CROSS_PREFIX}-"
#FF_CFG_FLAGS="$FF_CFG_FLAGS $FF_PLATFORM_CFG_FLAGS"

#--------------------
echo “”
echo “--------------------”
echo “[*] configurate x264”
echo “--------------------”
cd $FF_SOURCE && chmod +w configure
#if [ -f “./Makefile” ]; then

echo ‘reuse configure’

#else
echo “./configure $FF_CFG_FLAGS”
./configure $FF_CFG_FLAGS

–extra-cflags="$FF_CFLAGS $FF_EXTRA_CFLAGS" \

–extra-ldflags="$FF_EXTRA_LDFLAGS"

#fi

#--------------------
echo “”
echo “--------------------”
echo “[*] compile x264”
echo “--------------------”
make depend
echo “make $FF_MAKE_FLAGS”
make $FF_MAKE_FLAGS
make install

#--------------------
echo “”
echo “--------------------”
echo “[*] link x264”
echo “--------------------”

输出如下:

x264-2.png

这部完成后,去build下的output看下x264.a和x264.so是否生成

修改do-compile-ffmpeg.sh

#! /usr/bin/env bash

Copyright © 2013-2014 Zhang Rui bbcallen@gmail.com

Licensed under the Apache License, Version 2.0 (the “License”);

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

This script is based on projects below

https://github.com/yixia/FFmpeg-Android

http://git.videolan.org/?p=vlc-ports/android.git;a=summary

#--------------------
echo “"
echo “[*] check env $1”
echo "”
set -e

#--------------------

common defines

FF_ARCH=$1
FF_BUILD_OPT= 2 e c h o " F F A R C H = 2 echo "FF_ARCH= 2echo"FFA​RCH=FF_ARCH"
echo “FF_BUILD_OPT= F F B U I L D O P T " i f [ − z " FF_BUILD_OPT" if [ -z " FFB​UILDO​PT"if[−z"FF_ARCH” ]; then
echo “You must specific an architecture ‘arm, armv7a, x86, …’.”
echo “”
exit 1
fi

FF_BUILD_ROOT=pwd
FF_ANDROID_PLATFORM=android-9

FF_BUILD_NAME=
FF_SOURCE=
FF_CROSS_PREFIX=
FF_DEP_OPENSSL_INC=
FF_DEP_OPENSSL_LIB=
FF_DEP_X264_INC=
FF_DEP_X264_LIB=
FF_DEP_LIBSOXR_INC=
FF_DEP_LIBSOXR_LIB=

FF_CFG_FLAGS=

FF_EXTRA_CFLAGS=
FF_EXTRA_LDFLAGS=
FF_DEP_LIBS=

FF_MODULE_DIRS=“compat libavcodec libavfilter libavformat libavutil libswresample libswscale”
FF_ASSEMBLER_SUB_DIRS=

#--------------------
echo “”
echo “--------------------”
echo “[*] make NDK standalone toolchain”
echo “--------------------”
. ./tools/do-detect-env.sh
FF_MAKE_TOOLCHAIN_FLAGS= I J K M A K E T O O L C H A I N F L A G S F F M A K E F L A G S = IJK_MAKE_TOOLCHAIN_FLAGS FF_MAKE_FLAGS= IJKM​AKET​OOLCHAINF​LAGSFFM​AKEF​LAGS=IJK_MAKE_FLAG
FF_GCC_VER= I J K G C C V E R F F G C C 6 4 V E R = IJK_GCC_VER FF_GCC_64_VER= IJKG​CCV​ERFFG​CC6​4V​ER=IJK_GCC_64_VER

#----- armv7a begin -----
if [ " F F A R C H " = " a r m v 7 a " ] ; t h e n F F B U I L D N A M E = f f m p e g − a r m v 7 a F F B U I L D N A M E O P E N S S L = o p e n s s l − a r m v 7 a F F B U I L D N A M E X 264 = x 264 − a r m v 7 a F F B U I L D N A M E L I B S O X R = l i b s o x r − a r m v 7 a F F S O U R C E = FF_ARCH" = "armv7a" ]; then FF_BUILD_NAME=ffmpeg-armv7a FF_BUILD_NAME_OPENSSL=openssl-armv7a FF_BUILD_NAME_X264=x264-armv7a FF_BUILD_NAME_LIBSOXR=libsoxr-armv7a FF_SOURCE= FFA​RCH"="armv7a"];thenFFB​UILDN​AME=ffmpeg−armv7aFFB​UILDN​AMEO​PENSSL=openssl−armv7aFFB​UILDN​AMEX​264=x264−armv7aFFB​UILDN​AMEL​IBSOXR=libsoxr−armv7aFFS​OURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=arm-linux-androideabi
FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_VER}FF_CFG_FLAGS="$FF_CFG_FLAGS --arch=arm --cpu=cortex-a8"
FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-neon"
FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-thumb"FF_EXTRA_CFLAGS="$FF_EXTRA_CFLAGS -march=armv7-a -mcpu=cortex-a8 -mfpu=vfpv3-d16 -mfloat-abi=softfp -mthumb"
FF_EXTRA_LDFLAGS="$FF_EXTRA_LDFLAGS -Wl,--fix-cortex-a8"FF_ASSEMBLER_SUB_DIRS="arm"

elif [ " F F A R C H " = " a r m v 5 " ] ; t h e n F F B U I L D N A M E = f f m p e g − a r m v 5 F F B U I L D N A M E O P E N S S L = o p e n s s l − a r m v 5 F F B U I L D N A M E X 264 = x 264 − a r m v 5 F F B U I L D N A M E L I B S O X R = l i b s o x r − a r m v 5 F F S O U R C E = FF_ARCH" = "armv5" ]; then FF_BUILD_NAME=ffmpeg-armv5 FF_BUILD_NAME_OPENSSL=openssl-armv5 FF_BUILD_NAME_X264=x264-armv5 FF_BUILD_NAME_LIBSOXR=libsoxr-armv5 FF_SOURCE= FFA​RCH"="armv5"];thenFFB​UILDN​AME=ffmpeg−armv5FFB​UILDN​AMEO​PENSSL=openssl−armv5FFB​UILDN​AMEX​264=x264−armv5FFB​UILDN​AMEL​IBSOXR=libsoxr−armv5FFS​OURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=arm-linux-androideabi
FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_VER}FF_CFG_FLAGS="$FF_CFG_FLAGS --arch=arm"FF_EXTRA_CFLAGS="$FF_EXTRA_CFLAGS -march=armv5te -mtune=arm9tdmi -msoft-float"
FF_EXTRA_LDFLAGS="$FF_EXTRA_LDFLAGS"FF_ASSEMBLER_SUB_DIRS="arm"

elif [ " F F A R C H " = " x 86 " ] ; t h e n F F B U I L D N A M E = f f m p e g − x 86 F F B U I L D N A M E O P E N S S L = o p e n s s l − x 86 F F B U I L D N A M E X 264 = x 264 − x 86 F F B U I L D N A M E L I B S O X R = l i b s o x r − x 86 F F S O U R C E = FF_ARCH" = "x86" ]; then FF_BUILD_NAME=ffmpeg-x86 FF_BUILD_NAME_OPENSSL=openssl-x86 FF_BUILD_NAME_X264=x264-x86 FF_BUILD_NAME_LIBSOXR=libsoxr-x86 FF_SOURCE= FFA​RCH"="x86"];thenFFB​UILDN​AME=ffmpeg−x86FFB​UILDN​AMEO​PENSSL=openssl−x86FFB​UILDN​AMEX​264=x264−x86FFB​UILDN​AMEL​IBSOXR=libsoxr−x86FFS​OURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=i686-linux-android
FF_TOOLCHAIN_NAME=x86-${FF_GCC_VER}FF_CFG_FLAGS="$FF_CFG_FLAGS --arch=x86 --cpu=i686 --enable-yasm"FF_EXTRA_CFLAGS="$FF_EXTRA_CFLAGS -march=atom -msse3 -ffast-math -mfpmath=sse"
FF_EXTRA_LDFLAGS="$FF_EXTRA_LDFLAGS"FF_ASSEMBLER_SUB_DIRS="x86"

elif [ “$FF_ARCH” = “x86_64” ]; then
FF_ANDROID_PLATFORM=android-21

FF_BUILD_NAME=ffmpeg-x86_64
FF_BUILD_NAME_OPENSSL=openssl-x86_64
FF_BUILD_NAME_X264=x264-x86_64
FF_BUILD_NAME_LIBSOXR=libsoxr-x86_64
FF_SOURCE=$FF_BUILD_ROOT/$FF_BUILD_NAMEFF_CROSS_PREFIX=x86_64-linux-android
FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_64_VER}FF_CFG_FLAGS="$FF_CFG_FLAGS --arch=x86_64 --enable-yasm"FF_EXTRA_CFLAGS="$FF_EXTRA_CFLAGS"
FF_EXTRA_LDFLAGS="$FF_EXTRA_LDFLAGS"FF_ASSEMBLER_SUB_DIRS="x86"

elif [ “$FF_ARCH” = “arm64” ]; then
FF_ANDROID_PLATFORM=android-21

FF_BUILD_NAME=ffmpeg-arm64
FF_BUILD_NAME_OPENSSL=openssl-arm64
FF_BUILD_NAME_X264=x264-arm64
FF_BUILD_NAME_LIBSOXR=libsoxr-arm64
FF_SOURCE=$FF_BUILD_ROOT/$FF_BUILD_NAMEFF_CROSS_PREFIX=aarch64-linux-android
FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_64_VER}FF_CFG_FLAGS="$FF_CFG_FLAGS --arch=aarch64 --enable-yasm"FF_EXTRA_CFLAGS="$FF_EXTRA_CFLAGS"
FF_EXTRA_LDFLAGS="$FF_EXTRA_LDFLAGS"FF_ASSEMBLER_SUB_DIRS="aarch64 neon"

else
echo “unknown architecture $FF_ARCH”;
exit 1
fi

if [ ! -d $FF_SOURCE ]; then
echo “”
echo “!! ERROR”
echo “!! Can not find FFmpeg directory for $FF_BUILD_NAME”
echo “!! Run ‘sh init-android.sh’ first”
echo “”
exit 1
fi

FF_TOOLCHAIN_PATH= F F B U I L D R O O T / b u i l d / FF_BUILD_ROOT/build/ FFB​UILDR​OOT/build/FF_BUILD_NAME/toolchain
FF_MAKE_TOOLCHAIN_FLAGS=“ F F M A K E T O O L C H A I N F L A G S − − i n s t a l l − d i r = FF_MAKE_TOOLCHAIN_FLAGS --install-dir= FFM​AKET​OOLCHAINF​LAGS−−install−dir=FF_TOOLCHAIN_PATH”

FF_SYSROOT= F F T O O L C H A I N P A T H / s y s r o o t F F P R E F I X = FF_TOOLCHAIN_PATH/sysroot FF_PREFIX= FFT​OOLCHAINP​ATH/sysrootFFP​REFIX=FF_BUILD_ROOT/build/ F F B U I L D N A M E / o u t p u t F F D E P O P E N S S L I N C = FF_BUILD_NAME/output FF_DEP_OPENSSL_INC= FFB​UILDN​AME/outputFFD​EPO​PENSSLI​NC=FF_BUILD_ROOT/build/ F F B U I L D N A M E O P E N S S L / o u t p u t / i n c l u d e F F D E P O P E N S S L L I B = FF_BUILD_NAME_OPENSSL/output/include FF_DEP_OPENSSL_LIB= FFB​UILDN​AMEO​PENSSL/output/includeFFD​EPO​PENSSLL​IB=FF_BUILD_ROOT/build/ F F B U I L D N A M E O P E N S S L / o u t p u t / l i b F F D E P X 26 4 I N C = FF_BUILD_NAME_OPENSSL/output/lib FF_DEP_X264_INC= FFB​UILDN​AMEO​PENSSL/output/libFFD​EPX​264I​NC=FF_BUILD_ROOT/build/ F F B U I L D N A M E X 264 / o u t p u t / i n c l u d e F F D E P X 26 4 L I B = FF_BUILD_NAME_X264/output/include FF_DEP_X264_LIB= FFB​UILDN​AMEX​264/output/includeFFD​EPX​264L​IB=FF_BUILD_ROOT/build/ F F B U I L D N A M E X 264 / o u t p u t / l i b F F D E P L I B S O X R I N C = FF_BUILD_NAME_X264/output/lib FF_DEP_LIBSOXR_INC= FFB​UILDN​AMEX​264/output/libFFD​EPL​IBSOXRI​NC=FF_BUILD_ROOT/build/ F F B U I L D N A M E L I B S O X R / o u t p u t / i n c l u d e F F D E P L I B S O X R L I B = FF_BUILD_NAME_LIBSOXR/output/include FF_DEP_LIBSOXR_LIB= FFB​UILDN​AMEL​IBSOXR/output/includeFFD​EPL​IBSOXRL​IB=FF_BUILD_ROOT/build/$FF_BUILD_NAME_LIBSOXR/output/lib

case “ U N A M E S " i n C Y G W I N N T − ∗ ) F F S Y S R O O T = " UNAME_S" in CYGWIN_NT-*) FF_SYSROOT=" UNAMES​"inCYGWINN​T−∗)FFS​YSROOT="(cygpath -am F F S Y S R O O T ) " F F P R E F I X = " FF_SYSROOT)" FF_PREFIX=" FFS​YSROOT)"FFP​REFIX="(cygpath -am $FF_PREFIX)”
;;
esac

mkdir -p $FF_PREFIX

mkdir -p $FF_SYSROOT

FF_TOOLCHAIN_TOUCH=“ F F T O O L C H A I N P A T H / t o u c h " i f [ ! − f " FF_TOOLCHAIN_PATH/touch" if [ ! -f " FFT​OOLCHAINP​ATH/touch"if[!−f"FF_TOOLCHAIN_TOUCH” ]; then
$ANDROID_NDK/build/tools/make-standalone-toolchain.sh
KaTeX parse error: Expected 'EOF', got '\ ' at position 25: …OOLCHAIN_FLAGS \̲ ̲ --platf…FF_ANDROID_PLATFORM
–toolchain=$FF_TOOLCHAIN_NAME
touch $FF_TOOLCHAIN_TOUCH;
fi

#--------------------
echo “”
echo “--------------------”
echo “[*] check ffmpeg env”
echo “--------------------”
export PATH= F F T O O L C H A I N P A T H / b i n / : FF_TOOLCHAIN_PATH/bin/: FFT​OOLCHAINP​ATH/bin/:PATH
#export CC=“ccache F F C R O S S P R E F I X − g c c " e x p o r t C C = " {FF_CROSS_PREFIX}-gcc" export CC=" FFC​ROSSP​REFIX−gcc"exportCC="{FF_CROSS_PREFIX}-gcc”
export LD= F F C R O S S P R E F I X − l d e x p o r t A R = {FF_CROSS_PREFIX}-ld export AR= FFC​ROSSP​REFIX−ldexportAR={FF_CROSS_PREFIX}-ar
export STRIP=${FF_CROSS_PREFIX}-strip

FF_CFLAGS="-O3 -Wall -pipe
-std=c99
-ffast-math
-fstrict-aliasing -Werror=strict-aliasing
-Wno-psabi -Wa,–noexecstack
-DANDROID -DNDEBUG"

cause av_strlcpy crash with gcc4.7, gcc4.8

-fmodulo-sched -fmodulo-sched-allow-regmoves

–enable-thumb is OK

#FF_CFLAGS="$FF_CFLAGS -mthumb"

not necessary

#FF_CFLAGS="$FF_CFLAGS -finline-limit=300"

export COMMON_FF_CFG_FLAGS=
. $FF_BUILD_ROOT/…/…/config/module.sh

#--------------------

with openssl

if [ -f “${FF_DEP_OPENSSL_LIB}/libssl.a” ]; then
echo “OpenSSL detected”

FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-nonfree"

FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-openssl"
FF_CFLAGS="$FF_CFLAGS -I${FF_DEP_OPENSSL_INC}"
FF_DEP_LIBS="$FF_DEP_LIBS -L${FF_DEP_OPENSSL_LIB} -lssl -lcrypto"

fi

with libx264

if [ -f “ F F D E P X 26 4 L I B / l i b x 264. a " ] ; t h e n e c h o " l i b x 264 d e t e c t e d " F F C F G F L A G S = " {FF_DEP_X264_LIB}/libx264.a" ]; then echo "libx264 detected" FF_CFG_FLAGS=" FFD​EPX​264L​IB/libx264.a"];thenecho"libx264detected"FFC​FGF​LAGS="FF_CFG_FLAGS --enable-libx264”
FF_CFG_FLAGS=“ F F C F G F L A G S − − e n a b l e − e n c o d e r = l i b x 264 " F F C F L A G S = " FF_CFG_FLAGS --enable-encoder=libx264" FF_CFLAGS=" FFC​FGF​LAGS−−enable−encoder=libx264"FFC​FLAGS="FF_CFLAGS -I F F D E P X 26 4 I N C " F F D E P L I B S = " {FF_DEP_X264_INC}" FF_DEP_LIBS=" FFD​EPX​264I​NC"FFD​EPL​IBS="FF_DEP_LIBS -L F F D E P X 26 4 L I B − l x 264 " e x p o r t P K G C O N F I G P A T H = " {FF_DEP_X264_LIB} -lx264" export PKG_CONFIG_PATH=" FFD​EPX​264L​IB−lx264"exportPKGC​ONFIGP​ATH="FF_DEP_X264_LIB/pkgconfig”:$FF_PREFIX/lib/pkgconfig
echo $PKG_CONFIG_PATH
fi

if [ -f “ F F D E P L I B S O X R L I B / l i b s o x r . a " ] ; t h e n e c h o " l i b s o x r d e t e c t e d " F F C F G F L A G S = " {FF_DEP_LIBSOXR_LIB}/libsoxr.a" ]; then echo "libsoxr detected" FF_CFG_FLAGS=" FFD​EPL​IBSOXRL​IB/libsoxr.a"];thenecho"libsoxrdetected"FFC​FGF​LAGS="FF_CFG_FLAGS --enable-libsoxr”

FF_CFLAGS="$FF_CFLAGS -I${FF_DEP_LIBSOXR_INC}"
FF_DEP_LIBS="$FF_DEP_LIBS -L${FF_DEP_LIBSOXR_LIB} -lsoxr"

fi

FF_CFG_FLAGS="$FF_CFG_FLAGS $COMMON_FF_CFG_FLAGS"

#--------------------

Standard options:

FF_CFG_FLAGS=“ F F C F G F L A G S − − p r e f i x = FF_CFG_FLAGS --prefix= FFC​FGF​LAGS−−prefix=FF_PREFIX”

Advanced options (experts only):

FF_CFG_FLAGS=" F F C F G F L A G S − − c r o s s − p r e f i x = FF_CFG_FLAGS --cross-prefix= FFC​FGF​LAGS−−cross−prefix={FF_CROSS_PREFIX}-"
FF_CFG_FLAGS=“ F F C F G F L A G S − − e n a b l e − c r o s s − c o m p i l e " F F C F G F L A G S = " FF_CFG_FLAGS --enable-cross-compile" FF_CFG_FLAGS=" FFC​FGF​LAGS−−enable−cross−compile"FFC​FGF​LAGS="FF_CFG_FLAGS --target-os=linux”
FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-pic"

FF_CFG_FLAGS="$FF_CFG_FLAGS --disable-symver"

Optimization options (experts only):

FF_CFG_FLAGS=“ F F C F G F L A G S − − e n a b l e − a s m " F F C F G F L A G S = " FF_CFG_FLAGS --enable-asm" FF_CFG_FLAGS=" FFC​FGF​LAGS−−enable−asm"FFC​FGF​LAGS="FF_CFG_FLAGS --enable-inline-asm”

case “ F F B U I L D O P T " i n d e b u g ) F F C F G F L A G S = " FF_BUILD_OPT" in debug) FF_CFG_FLAGS=" FFB​UILDO​PT"indebug)FFC​FGF​LAGS="FF_CFG_FLAGS --disable-optimizations”
FF_CFG_FLAGS=“ F F C F G F L A G S − − e n a b l e − d e b u g " F F C F G F L A G S = " FF_CFG_FLAGS --enable-debug" FF_CFG_FLAGS=" FFC​FGF​LAGS−−enable−debug"FFC​FGF​LAGS="FF_CFG_FLAGS --disable-small”
;;
*)
FF_CFG_FLAGS=“ F F C F G F L A G S − − e n a b l e − o p t i m i z a t i o n s " F F C F G F L A G S = " FF_CFG_FLAGS --enable-optimizations" FF_CFG_FLAGS=" FFC​FGF​LAGS−−enable−optimizations"FFC​FGF​LAGS="FF_CFG_FLAGS --enable-debug”
FF_CFG_FLAGS="$FF_CFG_FLAGS --enable-small"
;;
esac

#--------------------
echo “”
echo “--------------------”
echo “[*] configurate ffmpeg”
echo “--------------------”
cd $FF_SOURCE
if [ -f “./config.h” ]; then
echo ‘reuse configure’
else
which $CC
./configure KaTeX parse error: Expected 'EOF', got '\ ' at position 14: FF_CFG_FLAGS \̲ ̲ --extra…FF_CFLAGS KaTeX parse error: Expected 'EOF', got '\ ' at position 18: …_EXTRA_CFLAGS" \̲ ̲ --extra…FF_DEP_LIBS $FF_EXTRA_LDFLAGS"
make clean
fi

#--------------------
echo “”
echo “--------------------”
echo "[] compile ffmpeg"
echo “--------------------”
cp config.
$FF_PREFIX
make $FF_MAKE_FLAGS > /dev/null
make install
mkdir -p $FF_PREFIX/include/libffmpeg
cp -f config.h $FF_PREFIX/include/libffmpeg/config.h

#--------------------
echo “”
echo “--------------------”
echo “[*] link ffmpeg”
echo “--------------------”
echo $FF_EXTRA_LDFLAGS

FF_C_OBJ_FILES=
FF_ASM_OBJ_FILES=
for MODULE_DIR in F F M O D U L E D I R S d o C O B J F I L E S = " FF_MODULE_DIRS do C_OBJ_FILES=" FFM​ODULED​IRSdoCO​BJF​ILES="MODULE_DIR/*.o"
if ls $C_OBJ_FILES 1> /dev/null 2>&1; then
echo “link KaTeX parse error: Double subscript at position 29: …o" FF_C_̲OBJ_FILES="FF_C_OBJ_FILES $C_OBJ_FILES”
fi

for ASM_SUB_DIR in $FF_ASSEMBLER_SUB_DIRS
doASM_OBJ_FILES="$MODULE_DIR/$ASM_SUB_DIR/*.o"if ls $ASM_OBJ_FILES 1> /dev/null 2>&1; thenecho "link $MODULE_DIR/$ASM_SUB_DIR/*.o"FF_ASM_OBJ_FILES="$FF_ASM_OBJ_FILES $ASM_OBJ_FILES"fi
done

done

C C − l m − l z − s h a r e d − − s y s r o o t = CC -lm -lz -shared --sysroot= CC−lm−lz−shared−−sysroot=FF_SYSROOT -Wl,–no-undefined -Wl,-z,noexecstack $FF_EXTRA_LDFLAGS
-Wl,-soname,libijkffmpeg.so
$FF_C_OBJ_FILES
$FF_ASM_OBJ_FILES
$FF_DEP_LIBS
-o $FF_PREFIX/libijkffmpeg.so

mysedi() {
f=$1
exp=$2
n=basename $f
cp f / t m p / f /tmp/ f/tmp/n
sed e x p / t m p / exp /tmp/ exp/tmp/n > f r m / t m p / f rm /tmp/ frm/tmp/n
}

echo “”
echo “--------------------”
echo “[] create files for shared ffmpeg"
echo “--------------------”
rm -rf $FF_PREFIX/shared
mkdir -p $FF_PREFIX/shared/lib/pkgconfig
ln -s $FF_PREFIX/include $FF_PREFIX/shared/include
ln -s $FF_PREFIX/libijkffmpeg.so $FF_PREFIX/shared/lib/libijkffmpeg.so
echo "gongjia: $FF_PREFIX/lib/pkgconfig/
.pc”
cp $FF_PREFIX/lib/pkgconfig/.pc $FF_PREFIX/shared/lib/pkgconfig
for f in $FF_PREFIX/lib/pkgconfig/
.pc; do
# in case empty dir
if [ ! -f $f ]; then
continue
fi
cp $f F F P R E F I X / s h a r e d / l i b / p k g c o n f i g f = FF_PREFIX/shared/lib/pkgconfig f= FFP​REFIX/shared/lib/pkgconfigf=FF_PREFIX/shared/lib/pkgconfig/basename $f
echo “f=$f”
# OSX sed doesn’t have in-place(-i)
mysedi $f ‘s//output//output/shared/g’
mysedi $f ‘s/-lavcodec/-lijkffmpeg/g’
mysedi $f ‘s/-lavfilter/-lijkffmpeg/g’
mysedi $f ‘s/-lavformat/-lijkffmpeg/g’
mysedi $f ‘s/-lavutil/-lijkffmpeg/g’
mysedi $f ‘s/-lswresample/-lijkffmpeg/g’
mysedi $f ‘s/-lswscale/-lijkffmpeg/g’
done

最后,是compile-ffmpeg.sh,这个文件没有修改~~~
#! /usr/bin/env bash

Copyright © 2013-2014 Zhang Rui bbcallen@gmail.com

Licensed under the Apache License, Version 2.0 (the “License”);

you may not use this file except in compliance with the License.

You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software

distributed under the License is distributed on an “AS IS” BASIS,

WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

See the License for the specific language governing permissions and

limitations under the License.

This script is based on projects below

https://github.com/yixia/FFmpeg-Android

http://git.videolan.org/?p=vlc-ports/android.git;a=summary

#----------
UNI_BUILD_ROOT=pwd
FF_TARGET=$1
FF_TARGET_EXTRA=$2
set -e
set +x

FF_ACT_ARCHS_32=“armv5 armv7a x86”
FF_ACT_ARCHS_64=“armv5 armv7a arm64 x86 x86_64”
FF_ACT_ARCHS_ALL=$FF_ACT_ARCHS_64

echo_archs() {
echo “"
echo “[*] check archs”
echo "”
echo “FF_ALL_ARCHS = $FF_ACT_ARCHS_ALL”
echo “FF_ACT_ARCHS = $*”
echo “”
}

echo_usage() {
echo “Usage:”
echo " compile-ffmpeg.sh armv5|armv7a|arm64|x86|x86_64"
echo " compile-ffmpeg.sh all|all32"
echo " compile-ffmpeg.sh all64"
echo " compile-ffmpeg.sh clean"
echo " compile-ffmpeg.sh check"
exit 1
}

echo_nextstep_help() {
echo “”
echo “--------------------”
echo “[*] Finished”
echo “--------------------”
echo “# to continue to build ijkplayer, run script below,”
echo "sh compile-ijk.sh "
}

#----------
case “$FF_TARGET” in
“”)
echo_archs armv7a
sh tools/do-compile-ffmpeg.sh armv7a
;;
armv5|armv7a|arm64|x86|x86_64)
echo_archs $FF_TARGET $FF_TARGET_EXTRA
sh tools/do-compile-ffmpeg.sh $FF_TARGET $FF_TARGET_EXTRA
echo_nextstep_help
;;
all32)
echo_archs $FF_ACT_ARCHS_32
for ARCH in $FF_ACT_ARCHS_32
do
sh tools/do-compile-ffmpeg.sh $ARCH $FF_TARGET_EXTRA
done
echo_nextstep_help
;;
all|all64)
echo_archs $FF_ACT_ARCHS_64
for ARCH in $FF_ACT_ARCHS_64
do
sh tools/do-compile-ffmpeg.sh $ARCH $FF_TARGET_EXTRA
done
echo_nextstep_help
;;
clean)
echo_archs FF_ACT_ARCHS_64
for ARCH in F F A C T A R C H S A L L d o i f [ − d f f m p e g − FF_ACT_ARCHS_ALL do if [ -d ffmpeg- FFA​CTA​RCHSA​LLdoif[−dffmpeg−ARCH ]; then
cd ffmpeg-$ARCH && git clean -xdf && cd -
fi
done
rm -rf ./build/ffmpeg-*
;;
check)
echo_archs FF_ACT_ARCHS_ALL
;;
*)
echo_usage
exit 1
;;
esac

这里面要注意的是:
虽然在do-compile-ffmpeg.sh

with libx264

if [ -f “ F F D E P X 26 4 L I B / l i b x 264. a " ] ; t h e n e c h o " l i b x 264 d e t e c t e d " F F C F G F L A G S = " {FF_DEP_X264_LIB}/libx264.a" ]; then echo "libx264 detected" FF_CFG_FLAGS=" FFD​EPX​264L​IB/libx264.a"];thenecho"libx264detected"FFC​FGF​LAGS="FF_CFG_FLAGS --enable-libx264”
FF_CFG_FLAGS=“ F F C F G F L A G S − − e n a b l e − e n c o d e r = l i b x 264 " F F C F L A G S = " FF_CFG_FLAGS --enable-encoder=libx264" FF_CFLAGS=" FFC​FGF​LAGS−−enable−encoder=libx264"FFC​FLAGS="FF_CFLAGS -I F F D E P X 26 4 I N C " F F D E P L I B S = " {FF_DEP_X264_INC}" FF_DEP_LIBS=" FFD​EPX​264I​NC"FFD​EPL​IBS="FF_DEP_LIBS -L F F D E P X 26 4 L I B − l x 264 " e x p o r t P K G C O N F I G P A T H = " {FF_DEP_X264_LIB} -lx264" export PKG_CONFIG_PATH=" FFD​EPX​264L​IB−lx264"exportPKGC​ONFIGP​ATH="FF_DEP_X264_LIB/pkgconfig”:$FF_PREFIX/lib/pkgconfig
echo $PKG_CONFIG_PATH
fi

这里我把-enable-encoder=libx264开启了,但是module.sh却还是把encoder全部disable了,只开启了aac,所以还要修改一下module.sh
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-encoders"

module.sh文件
#! /usr/bin/env bash

#--------------------

Standard options:

export COMMON_FF_CFG_FLAGS=

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --prefix=PREFIX"

Licensing options:

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-gpl"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-version3"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-nonfree"

Configuration options:

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-static"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-shared"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-small"

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − r u n t i m e − c p u d e t e c t " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-runtime-cpudetect" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−runtime−cpudetect"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-gray”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-swscale-alpha"

Program options:

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o g r a m s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-programs" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−programs"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-ffmpeg”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − f f p l a y " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-ffplay" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−ffplay"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-ffprobe”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver"

Documentation options:

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − d o c " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-doc" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−doc"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-htmlpages”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − m a n p a g e s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-manpages" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−manpages"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-podpages”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-txtpages"

Component options:

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − a v d e v i c e " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-avdevice" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−avdevice"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-avcodec”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − a v f o r m a t " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-avformat" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−avformat"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-avutil”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − s w r e s a m p l e " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-swresample" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−swresample"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-swscale”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p o s t p r o c " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-postproc" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−postproc"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-avfilter”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avresample"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-pthreads"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-w32threads"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-os2threads"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-network"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dct"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dwt"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lsp"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lzo"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mdct"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-rdft"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fft"

Hardware accelerators:

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − d 3 d 11 v a " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-d3d11va" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−d3d11va"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-dxva2”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − v a a p i " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-vaapi" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−vaapi"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-vda”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − v d p a u " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-vdpau" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−vdpau"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-videotoolbox”

Individual component options:

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-everything"

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − e n c o d e r s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-encoders" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−encoders"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-encoder=aac”

./configure --list-decoders

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e c o d e r s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-decoders" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−decoders"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-decoder=aac”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e c o d e r = a a c l a t m " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-decoder=aac_latm" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−decoder=aacl​atm"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-decoder=flv”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e c o d e r = h 263 " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-decoder=h263" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−decoder=h263"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-decoder=h263i”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e c o d e r = h 263 p " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-decoder=h263p" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−decoder=h263p"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-decoder=h264”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e c o d e r = m p 3 ∗ " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-decoder=mp3*" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−decoder=mp3∗"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-decoder=vp6”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e c o d e r = v p 6 a " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-decoder=vp6a" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−decoder=vp6a"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-decoder=vp6f”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=hevc"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-hwaccels"

./configure --list-muxers

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − m u x e r s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-muxers" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−muxers"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-muxer=mpegts”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − m u x e r = m p 4 " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-muxer=mp4" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−muxer=mp4"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-muxer=flv”

./configure --list-demuxers

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxers" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxers"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=aac”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = c o n c a t " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=concat" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=concat"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=data”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = f l v " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=flv" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=flv"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=hls”
#export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = l a t m " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=latm" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=latm"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=live_flv”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = l o a s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=loas" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=loas"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=m4v”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = m o v " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=mov" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=mov"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=mp3”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = m p e g p s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=mpegps" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=mpegps"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=mpegts”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = m p e g v i d e o " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=mpegvideo" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=mpegvideo"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − d e m u x e r = s d p " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-demuxer=sdp" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−demuxer=sdp"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-demuxer=rtp”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=hevc"

./configure --list-parsers

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − p a r s e r s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-parsers" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−parsers"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-parser=aac”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=aac_latm"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=ac3"

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − p a r s e r = h 263 " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-parser=h263" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−parser=h263"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-parser=h264”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=hevc"

./configure --list-bsf

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − b s f s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-bsfs" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−bsfs"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-bsf=chomp”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − b s f = d c a c o r e " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-bsf=dca_core" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−bsf=dcac​ore"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-bsf=dump_extradata”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − b s f = h e v c m p 4 t o a n n e x b " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-bsf=hevc_mp4toannexb" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−bsf=hevcm​p4toannexb"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-bsf=imx_dump_header”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − b s f = m j p e g 2 j p e g " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-bsf=mjpeg2jpeg" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−bsf=mjpeg2jpeg"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-bsf=mjpega_dump_header”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − b s f = m o v 2 t e x t s u b " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-bsf=mov2textsub" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−bsf=mov2textsub"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-bsf=mp3_header_decompress”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − b s f = m p e g 4 u n p a c k b f r a m e s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-bsf=mpeg4_unpack_bframes" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−bsf=mpeg4u​npackb​frames"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-bsf=noise”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − b s f = r e m o v e e x t r a d a t a " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-bsf=remove_extradata" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−bsf=removee​xtradata"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-bsf=text2movsub”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=vp9_superframe"

./configure --list-protocols

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − p r o t o c o l s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-protocols" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−protocols"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-protocol=async”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = b l u r a y " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=bluray" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=bluray"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-protocol=concat”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = c r y p t o " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=crypto" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=crypto"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-protocol=ffrtmpcrypt”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − p r o t o c o l = f f r t m p h t t p " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-protocol=ffrtmphttp" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−protocol=ffrtmphttp"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-protocol=gopher”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = i c e c a s t " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=icecast" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=icecast"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-protocol=librtmp*”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = l i b s s h " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=libssh" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=libssh"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-protocol=md5”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = m m s h " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=mmsh" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=mmsh"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-protocol=mmst”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = r t m p ∗ " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=rtmp*" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=rtmp∗"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-protocol=rtmp”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − p r o t o c o l = r t m p t " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-protocol=rtmpt" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−protocol=rtmpt"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-protocol=rtp”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = s c t p " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=sctp" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=sctp"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-protocol=srtp”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − p r o t o c o l = s u b f i l e " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-protocol=subfile" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−protocol=subfile"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-protocol=unix”

#export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − d e v i c e s " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-devices" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−devices"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-filters”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − f i l t e r = c r o p " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-filter=crop" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−filter=crop"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-filter=transpose”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − f i l t e r = v f l i p " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-filter=vflip" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−filter=vflip"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-filter=hflip”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − f i l t e r = s c a l e " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-filter=scale" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−filter=scale"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-filter=format”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − f i l t e r = o v e r l a y " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-filter=overlay" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−filter=overlay"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-filter=buffer”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − f i l t e r = b u f f e r s i n k " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-filter=buffersink" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−filter=buffersink"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-filter=lut”
export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − e n a b l e − f i l t e r = u n s h a r p " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --enable-filter=unsharp" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−enable−filter=unsharp"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --enable-filter=lutyuv”

gongjia add

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"

External library support:

export COMMON_FF_CFG_FLAGS=“ C O M M O N F F C F G F L A G S − − d i s a b l e − i c o n v " e x p o r t C O M M O N F F C F G F L A G S = " COMMON_FF_CFG_FLAGS --disable-iconv" export COMMON_FF_CFG_FLAGS=" COMMONF​FC​FGF​LAGS−−disable−iconv"exportCOMMONF​FC​FGF​LAGS="COMMON_FF_CFG_FLAGS --disable-audiotoolbox”
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-videotoolbox"

Advanced options (experts only):

export COMMON_FF_CFG_FLAGS=" C O M M O N F F C F G F L A G S − − c r o s s − p r e f i x = COMMON_FF_CFG_FLAGS --cross-prefix= COMMONF​FC​FGF​LAGS−−cross−prefix={FF_CROSS_PREFIX}-"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-cross-compile"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysroot=PATH"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysinclude=PATH"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-os=TAGET_OS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-exec=CMD"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-path=DIR"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --toolchain=NAME"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --nm=NM"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ar=AR"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --as=AS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --yasmexe=EXE"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cc=CC"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cxx=CXX"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --dep-cc=DEPCC"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ld=LD"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cc=HOSTCC"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cflags=HCFLAGS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cppflags=HCPPFLAGS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ld=HOSTLD"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ldflags=HLDFLAGS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-libs=HLIBS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-os=OS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cflags=ECFLAGS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cxxflags=ECFLAGS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-ldflags=ELDFLAGS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-libs=ELIBS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-version=STRING"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --optflags=OPTFLAGS"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --build-suffix=SUFFIX"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --malloc-prefix=PREFIX"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --progs-suffix=SUFFIX"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --arch=ARCH"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cpu=CPU"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-pic"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-sram"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-thumb"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-symver"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-hardcoded-tables"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-safe-bitstream-reader"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memalign-hack"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-lto"

Optimization options (experts only):

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-asm"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-altivec"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnow"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnowext"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmx"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmxext"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse2"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse3"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ssse3"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse4"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse42"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avx"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fma4"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv5te"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6t2"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vfp"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-neon"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vis"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-inline-asm"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-yasm"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mips32r2"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr1"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr2"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsfpu"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fast-unaligned"

Developer options (useful when working on FFmpeg itself):

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-coverage"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-debug"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-debug=LEVEL"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-optimizations"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-extra-warnings"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-stripping"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --assert-level=level"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memory-poisoning"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --valgrind=VALGRIND"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-ftrapv"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --samples=PATH"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-xmm-clobber-test"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random=LIST"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random=LIST"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --random-seed=VALUE"

原文地址
https://www.jianshu.com/p/ccc795ae8a1b

ijkplayer ffmpeg x264 android 编译相关推荐

  1. FFmpeg学习—android 编译 FDK-AAC 库

    1.编译要求 Ubuntu 14.04 lts 64位 fdk-aac-0.1.4 android-ndk-r12b 2.编译步凑 1.下载fdk-aac 源码: https://nchc.dl.so ...

  2. 如何将ffmpeg x264的动态库编译入Android7.1系统源码(详细步骤)

    0 前言 对于刚接触Android中ffmpeg的来说,ffmpeg的编译有很多坑,这些坑我都踩过一遍,而且网上文章鱼龙混杂写的太乱,不想太多人浪费时间在编译上,所以把成功的代码及编译步骤分享出来. ...

  3. linux 编译x264,linux 编译ffmpeg 支持x264, x265

    1. 前言 本教程涉及的ffmpeg, x264, x265 2. 环境依赖 2.1 删除系统中安装的ffmpeg等库 sudo apt-get --purge remove ffmpeg mplay ...

  4. 安卓和Linux动态库一样吗,在Linux环境下编译Android下的最新版ffmpeg+x264单个动态库(.so)...

    最近在mac下用ndk交叉编译最ffmpeg出问题,总是显示用系统的gcc而不是ndk的toolchain的交叉编译gcc来编译的.之前明明没问题的,可能是由于最近升级macOS导致的.由于对这方面实 ...

  5. Android 编译FFmpeg x264

    1. Android FFmpeg开发基本流程 (1)X264/FFmpeg + NDK编译  (2)ffmpeg.so + 编解码C代码  (3)Android.mk 编译  (4)JNI  (5) ...

  6. 最新版FFmpeg移植Android:编译so库(基于NDK r20和FFmpeg-4.1.0)

    FFmpeg是非常强大的编解码库,支持相当多的格式.如果你仔细看一下手机中各种播放器的许可条款,一定不会缺少FFmpeg的身影. 但是网络上FFmpeg移植的资料都非常少,很多还是使用很老的库,比如使 ...

  7. Android交叉编译OpenCV+FFmpeg+x264的艰难历程

    前言 如果你没有兴趣看完本文,只想获得可编译的代码或编译后的产物,可以直接点击下面的链接,跟随步骤编译代码或直接下载我编译好的产物 注:编译顺序要按照 x264 -> FFmpeg -> ...

  8. linux编译fdk aac,Ubuntu下利用NDK编译ffmpeg+x264+fdk-aac

    由于FFmpeg.x264.Fdk-aac的版本问题,所以编译的时候有很多坑 编译顺序: 首先利用脚本分别编译x264和fdk-aac库,生成头文件(.h)与静态库文件(.a/.la). 将FFmpe ...

  9. ffmpeg for android windows,windows10下编译ffmpeg for android

    最近实现了一款基于FFMpeg的支持多路视频的实时流媒体播放器:https://github.com/huweijian5/RtspPlayer 有兴趣能够关注下.html 本文记录在windows1 ...

最新文章

  1. [JSOI2008]星球大战 并查集
  2. VB.NET 数组的定义 动态使用 多维数组
  3. JAVA-OPTS引发的思考
  4. cellpadding,cellspacing都是废弃的属性了,早已不推荐使用,最新的html5里已经彻底去掉了这些表现型的属性。
  5. Intel Realsense D435运行报错 RuntimeError: Camera not connected! dev.hardware_reset()函数需加睡眠sleep()
  6. read configuration - shared object - read_comp_configuration_raw
  7. mysql连接指定时区_MySQL创建JDBC连接时区问题
  8. 程序员对辉瑞新冠疫苗的计算解读,这些常识可能你也不知道
  9. dataframe scala 修改值_python – 使用Scala的API替换DataFrame的值
  10. python决策树id3算法_Python3 决策树ID3算法实现
  11. jquery zTree异步搜索的例子--搜全部节点
  12. 英文文本处理 c github_真香警告!有了这个搜索大法,GitHub可以玩到飞起来!
  13. Keli Linux与网络安全(2)——初探Keli
  14. 【Maven使用】IDEA使用Maven进行文件打包+命令含义+错误分析
  15. 中学-综合素质【2】
  16. ArangoDB自学笔记(万字!!全!!)
  17. iphone版 天行skyline_‎App Store 上的“Skyline University”
  18. 【COMSOL】在结构力学中使用自定义外部材料模型 · Mazars 损伤模型
  19. C语言实现QQ聊天室小项目 [完整源码]
  20. Erlang/OTP 构建 Application

热门文章

  1. 什么是架构、框架、模式和平台,
  2. docker里mysql精简版_精简Docker镜像的几个方法
  3. namomo 每日一题 207 拆方块
  4. ideavim快捷键整理
  5. 邮政编码 及长途区号
  6. hibernate-jpa中criteriaBuilder[in] 用法大全
  7. CF-IOT云端通讯协议
  8. express vuex mysql_基于Vue2.0+Vuex+Axios+NodeJs+Express+MySQL实现京东移动web商城
  9. Linux NVMe Driver学习笔记之5:Admin SQ/CQ的创建
  10. python问题随手记录20210313