ijkplayer ffmpeg x264 android 编译

实测好使, 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- FFACTARCHSALLdoif[dx264ARCH ]; 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= IJKMAKETOOLCHAINFLAGSFFMAKEFLAGS=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= IJKGCCVERFFGCC64VER=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= FFARCH"="armv7a"];thenecho"gdebugx264armv7a.............."FFBUILDNAME=x264armv7aFFSOURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=arm-linux-androideabi
    FF_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= FFARCH"="armv5"];thenFFBUILDNAME=x264armv5FFSOURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=arm-linux-androideabi
    FF_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= FFARCH"="x86"];thenFFBUILDNAME=x264x86FFSOURCE=FF_BUILD_ROOT/$FF_BUILD_NAME

FF_CROSS_PREFIX=i686-linux-android
    FF_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_NAME

FF_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_NAME

FF_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/ FFBUILDROOT/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= FFTOOLCHAINPATH/sysrootFFPREFIX=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= IJKMAKETOOLCHAINFLAGSFFMAKEFLAGS=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= FFMAKETOOLCHAINFLAGSinstalldir=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 " FFTOOLCHAINPATH/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: FFTOOLCHAINPATH/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=" FFPREFIX"FFCFGFLAGS="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=" FFPREFIX"FFCFGFLAGS="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/armlinuxandroideabi"FFCFGFLAGS="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=" FFCROSSPREFIX"FFCFGFLAGS="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= FFCFGFLAGSsysroot=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= FFCFGFLAGScrossprefix={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"FFARCH=FF_ARCH"
echo “FF_BUILD_OPT= F F B U I L D O P T " i f [ − z " FF_BUILD_OPT" if [ -z " FFBUILDOPT"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= IJKMAKETOOLCHAINFLAGSFFMAKEFLAGS=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= IJKGCCVERFFGCC64VER=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= FFARCH"="armv7a"];thenFFBUILDNAME=ffmpegarmv7aFFBUILDNAMEOPENSSL=opensslarmv7aFFBUILDNAMEX264=x264armv7aFFBUILDNAMELIBSOXR=libsoxrarmv7aFFSOURCE=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= FFARCH"="armv5"];thenFFBUILDNAME=ffmpegarmv5FFBUILDNAMEOPENSSL=opensslarmv5FFBUILDNAMEX264=x264armv5FFBUILDNAMELIBSOXR=libsoxrarmv5FFSOURCE=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= FFARCH"="x86"];thenFFBUILDNAME=ffmpegx86FFBUILDNAMEOPENSSL=opensslx86FFBUILDNAMEX264=x264x86FFBUILDNAMELIBSOXR=libsoxrx86FFSOURCE=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_NAME

FF_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_NAME

FF_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/ FFBUILDROOT/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= FFMAKETOOLCHAINFLAGSinstalldir=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= FFTOOLCHAINPATH/sysrootFFPREFIX=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= FFBUILDNAME/outputFFDEPOPENSSLINC=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= FFBUILDNAMEOPENSSL/output/includeFFDEPOPENSSLLIB=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= FFBUILDNAMEOPENSSL/output/libFFDEPX264INC=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= FFBUILDNAMEX264/output/includeFFDEPX264LIB=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= FFBUILDNAMEX264/output/libFFDEPLIBSOXRINC=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= FFBUILDNAMELIBSOXR/output/includeFFDEPLIBSOXRLIB=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"inCYGWINNT)FFSYSROOT="(cygpath -am F F S Y S R O O T ) " F F P R E F I X = " FF_SYSROOT)" FF_PREFIX=" FFSYSROOT)"FFPREFIX="(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 " FFTOOLCHAINPATH/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/: FFTOOLCHAINPATH/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=" FFCROSSPREFIXgcc"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= FFCROSSPREFIXldexportAR={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=" FFDEPX264LIB/libx264.a"];thenecho"libx264detected"FFCFGFLAGS="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=" FFCFGFLAGSenableencoder=libx264"FFCFLAGS="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=" FFDEPX264INC"FFDEPLIBS="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=" FFDEPX264LIBlx264"exportPKGCONFIGPATH="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=" FFDEPLIBSOXRLIB/libsoxr.a"];thenecho"libsoxrdetected"FFCFGFLAGS="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= FFCFGFLAGSprefix=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= FFCFGFLAGScrossprefix={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=" FFCFGFLAGSenablecrosscompile"FFCFGFLAGS="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=" FFCFGFLAGSenableasm"FFCFGFLAGS="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=" FFBUILDOPT"indebug)FFCFGFLAGS="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=" FFCFGFLAGSenabledebug"FFCFGFLAGS="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=" FFCFGFLAGSenableoptimizations"FFCFGFLAGS="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=" FFMODULEDIRSdoCOBJFILES="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
do
    ASM_OBJ_FILES="$MODULE_DIR/$ASM_SUB_DIR/*.o"
    if ls $ASM_OBJ_FILES 1> /dev/null 2>&1; then
        echo "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= CClmlzsharedsysroot=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= FFPREFIX/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- FFACTARCHSALLdoif[dffmpegARCH ]; 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=" FFDEPX264LIB/libx264.a"];thenecho"libx264detected"FFCFGFLAGS="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=" FFCFGFLAGSenableencoder=libx264"FFCFLAGS="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=" FFDEPX264INC"FFDEPLIBS="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=" FFDEPX264LIBlx264"exportPKGCONFIGPATH="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=" COMMONFFCFGFLAGSenableruntimecpudetect"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprograms"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableffplay"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisabledoc"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablemanpages"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableavdevice"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableavformat"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableswresample"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablepostproc"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisabled3d11va"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablevaapi"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablevdpau"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableencoders"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledecoders"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledecoder=aaclatm"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledecoder=h263"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledecoder=h263p"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledecoder=mp3"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledecoder=vp6a"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablemuxers"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablemuxer=mp4"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxers"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=concat"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=flv"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=latm"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=loas"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=mov"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=mpegps"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=mpegvideo"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenabledemuxer=sdp"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableparsers"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableparser=h263"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablebsfs"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablebsf=dcacore"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablebsf=hevcmp4toannexb"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablebsf=mjpeg2jpeg"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablebsf=mov2textsub"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablebsf=mpeg4unpackbframes"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisablebsf=removeextradata"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableprotocols"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=bluray"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=crypto"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableprotocol=ffrtmphttp"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=icecast"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=libssh"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=mmsh"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=rtmp"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenableprotocol=rtmpt"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=sctp"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableprotocol=subfile"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisabledevices"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablefilter=crop"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablefilter=vflip"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablefilter=scale"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablefilter=overlay"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablefilter=buffersink"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSenablefilter=unsharp"exportCOMMONFFCFGFLAGS="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=" COMMONFFCFGFLAGSdisableiconv"exportCOMMONFFCFGFLAGS="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= COMMONFFCFGFLAGScrossprefix={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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值