├── .gitignore ├── .gitmodules ├── README.md ├── compile-ffmpeg-for-ios ├── compile-ffmpeg.sh ├── config │ ├── module-default.sh │ ├── module-lite-hevc.sh │ ├── module-lite.sh │ └── module.sh └── tools │ ├── avconfig.h │ ├── config.h │ ├── do-compile-ffmpeg.sh │ └── ffversion.h └── init-ffmpeg.sh /.gitignore: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | *.d 3 | 4 | # Object files 5 | *.o 6 | *.ko 7 | *.obj 8 | *.elf 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Libraries 15 | *.lib 16 | *.a 17 | *.la 18 | *.lo 19 | 20 | # Shared objects (inc. Windows DLLs) 21 | *.dll 22 | *.so 23 | *.so.* 24 | *.dylib 25 | 26 | # Executables 27 | *.exe 28 | *.out 29 | *.app 30 | *.i*86 31 | *.x86_64 32 | *.hex 33 | 34 | # Debug files 35 | *.dSYM/ 36 | *.su 37 | 38 | *.pc 39 | 40 | # Test video files. 41 | *.flv 42 | *.ts 43 | *.mp4 44 | 45 | # Mid product. 46 | ffmpeg 47 | compile-ffmpeg-for-ios/build 48 | compile-ffmpeg-for-ios/ffmpeg-* 49 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "gas-preprocessor"] 2 | path = compile-ffmpeg-for-ios/extra/gas-preprocessor 3 | url = https://github.com/samirchen/gas-preprocessor.git 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FFmpegCompileTool 2 | 3 | 参考自 [IJKPlayer](https://github.com/Bilibili/ijkplayer) 项目中对 FFmpeg 的编译脚本。 4 | 5 | ## 使用 6 | 7 | 1、Clone Tool: 8 | 9 | ``` 10 | git clone --recursive https://github.com/samirchen/FFmpegCompileTool.git 11 | cd FFmpegCompileTool 12 | // Or 13 | // git clone https://github.com/samirchen/FFmpegCompileTool.git 14 | // cd FFmpegCompileTool 15 | // git submodule update --init --recursive 16 | ``` 17 | 18 | 2、下载 FFmpeg 源码: 19 | 20 | ``` 21 | sh init-ffmpeg.sh 22 | ``` 23 | 24 | 3、将 FFmpeg 源码编译为适配 iOS 平台的静态库: 25 | 26 | ``` 27 | cd compile-ffmpeg-for-ios 28 | sh compile-ffmpeg.sh all 29 | ``` 30 | 31 | ## 配置 32 | 33 | - 你可以修改 `compile-ffmpeg-for-ios/config/module.sh` 脚本的内容来对 FFmpeg 支持的音视频格式进行增加或裁剪。 34 | - 你可以修改 `compile-ffmpeg-for-ios/compile-ffmpeg.sh` 脚本的内容来对编译出来的静态库支持的 CPU 架构进行调整。(默认编译出来的静态库是支持 armv7、arm64、i386、x86_64 四种架构) 35 | 36 | 37 | -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/compile-ffmpeg.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2013-2014 Zhang Rui 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | 19 | if [ ! -d "ffmpeg-arm64" ]; then 20 | cp -R ../ffmpeg ./ffmpeg-arm64 21 | fi 22 | 23 | if [ ! -d "ffmpeg-armv7" ]; then 24 | cp -R ../ffmpeg ./ffmpeg-armv7 25 | fi 26 | 27 | if [ ! -d "ffmpeg-i386" ]; then 28 | cp -R ../ffmpeg ./ffmpeg-i386 29 | fi 30 | 31 | if [ ! -d "ffmpeg-x86_64" ]; then 32 | cp -R ../ffmpeg ./ffmpeg-x86_64 33 | fi 34 | 35 | FF_ALL_ARCHS_IOS6_SDK="armv7 armv7s i386" 36 | FF_ALL_ARCHS_IOS7_SDK="armv7 armv7s arm64 i386 x86_64" 37 | FF_ALL_ARCHS_IOS8_SDK="armv7 arm64 i386 x86_64" 38 | 39 | FF_ALL_ARCHS=$FF_ALL_ARCHS_IOS8_SDK 40 | 41 | #---------- 42 | UNI_BUILD_ROOT=`pwd` 43 | UNI_TMP="$UNI_BUILD_ROOT/tmp" 44 | UNI_TMP_LLVM_VER_FILE="$UNI_TMP/llvm.ver.txt" 45 | FF_TARGET=$1 46 | set -e 47 | 48 | #---------- 49 | echo_archs() { 50 | echo "====================" 51 | echo "[*] check xcode version" 52 | echo "====================" 53 | echo "FF_ALL_ARCHS = $FF_ALL_ARCHS" 54 | } 55 | 56 | # FF_LIBS="libavcodec libavfilter libavformat libavutil libswscale libswresample" 57 | FF_LIBS="libavcodec libavformat libavutil libswscale libswresample" 58 | do_lipo_ffmpeg () { 59 | LIB_FILE=$1 60 | LIPO_FLAGS= 61 | for ARCH in $FF_ALL_ARCHS 62 | do 63 | ARCH_LIB_FILE="$UNI_BUILD_ROOT/build/ffmpeg-$ARCH/output/lib/$LIB_FILE" 64 | if [ -f "$ARCH_LIB_FILE" ]; then 65 | LIPO_FLAGS="$LIPO_FLAGS $ARCH_LIB_FILE" 66 | else 67 | echo "skip $LIB_FILE of $ARCH"; 68 | fi 69 | done 70 | 71 | xcrun lipo -create $LIPO_FLAGS -output $UNI_BUILD_ROOT/build/universal/lib/$LIB_FILE 72 | xcrun lipo -info $UNI_BUILD_ROOT/build/universal/lib/$LIB_FILE 73 | } 74 | 75 | SSL_LIBS="libcrypto libssl" 76 | do_lipo_ssl () { 77 | LIB_FILE=$1 78 | LIPO_FLAGS= 79 | for ARCH in $FF_ALL_ARCHS 80 | do 81 | ARCH_LIB_FILE="$UNI_BUILD_ROOT/build/openssl-$ARCH/output/lib/$LIB_FILE" 82 | if [ -f "$ARCH_LIB_FILE" ]; then 83 | LIPO_FLAGS="$LIPO_FLAGS $ARCH_LIB_FILE" 84 | else 85 | echo "skip $LIB_FILE of $ARCH"; 86 | fi 87 | done 88 | 89 | if [ "$LIPO_FLAGS" != "" ]; then 90 | xcrun lipo -create $LIPO_FLAGS -output $UNI_BUILD_ROOT/build/universal/lib/$LIB_FILE 91 | xcrun lipo -info $UNI_BUILD_ROOT/build/universal/lib/$LIB_FILE 92 | fi 93 | } 94 | 95 | do_lipo_all () { 96 | mkdir -p $UNI_BUILD_ROOT/build/universal/lib 97 | echo "lipo archs: $FF_ALL_ARCHS" 98 | for FF_LIB in $FF_LIBS 99 | do 100 | do_lipo_ffmpeg "$FF_LIB.a"; 101 | done 102 | 103 | ANY_ARCH= 104 | for ARCH in $FF_ALL_ARCHS 105 | do 106 | ARCH_INC_DIR="$UNI_BUILD_ROOT/build/ffmpeg-$ARCH/output/include" 107 | if [ -d "$ARCH_INC_DIR" ]; then 108 | if [ -z "$ANY_ARCH" ]; then 109 | ANY_ARCH=$ARCH 110 | cp -R "$ARCH_INC_DIR" "$UNI_BUILD_ROOT/build/universal/" 111 | fi 112 | 113 | UNI_INC_DIR="$UNI_BUILD_ROOT/build/universal/include" 114 | 115 | mkdir -p "$UNI_INC_DIR/libavutil/$ARCH" 116 | cp -f "$ARCH_INC_DIR/libavutil/avconfig.h" "$UNI_INC_DIR/libavutil/$ARCH/avconfig.h" 117 | cp -f tools/avconfig.h "$UNI_INC_DIR/libavutil/avconfig.h" 118 | cp -f "$ARCH_INC_DIR/libavutil/ffversion.h" "$UNI_INC_DIR/libavutil/$ARCH/ffversion.h" 119 | cp -f tools/ffversion.h "$UNI_INC_DIR/libavutil/ffversion.h" 120 | mkdir -p "$UNI_INC_DIR/libffmpeg/$ARCH" 121 | cp -f "$ARCH_INC_DIR/libffmpeg/config.h" "$UNI_INC_DIR/libffmpeg/$ARCH/config.h" 122 | cp -f tools/config.h "$UNI_INC_DIR/libffmpeg/config.h" 123 | fi 124 | done 125 | 126 | for SSL_LIB in $SSL_LIBS 127 | do 128 | do_lipo_ssl "$SSL_LIB.a"; 129 | done 130 | } 131 | 132 | #---------- 133 | if [ "$FF_TARGET" = "armv7" -o "$FF_TARGET" = "armv7s" -o "$FF_TARGET" = "arm64" ]; then 134 | echo_archs 135 | sh tools/do-compile-ffmpeg.sh $FF_TARGET 136 | do_lipo_all 137 | elif [ "$FF_TARGET" = "i386" -o "$FF_TARGET" = "x86_64" ]; then 138 | echo_archs 139 | sh tools/do-compile-ffmpeg.sh $FF_TARGET 140 | do_lipo_all 141 | elif [ "$FF_TARGET" = "lipo" ]; then 142 | echo_archs 143 | do_lipo_all 144 | elif [ "$FF_TARGET" = "all" ]; then 145 | echo_archs 146 | for ARCH in $FF_ALL_ARCHS 147 | do 148 | sh tools/do-compile-ffmpeg.sh $ARCH 149 | done 150 | 151 | do_lipo_all 152 | elif [ "$FF_TARGET" = "check" ]; then 153 | echo_archs 154 | elif [ "$FF_TARGET" = "clean" ]; then 155 | echo_archs 156 | for ARCH in $FF_ALL_ARCHS 157 | do 158 | #cd ffmpeg-$ARCH && git clean -xdf && cd - 159 | rm -rf ffmpeg-$ARCH 160 | done 161 | rm -rf build/ffmpeg-* 162 | rm -rf build/openssl-* 163 | rm -rf build/universal/include 164 | rm -rf build/universal/lib 165 | else 166 | echo "Usage:" 167 | echo " compile-ffmpeg.sh armv7|arm64|i386|x86_64" 168 | echo " compile-ffmpeg.sh armv7s (obselete)" 169 | echo " compile-ffmpeg.sh lipo" 170 | echo " compile-ffmpeg.sh all" 171 | echo " compile-ffmpeg.sh clean" 172 | echo " compile-ffmpeg.sh check" 173 | exit 1 174 | fi 175 | -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/config/module-default.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | #-------------------- 4 | # Standard options: 5 | export COMMON_FF_CFG_FLAGS= 6 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --prefix=PREFIX" 7 | 8 | # Licensing options: 9 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-gpl" 10 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-version3" 11 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-nonfree" 12 | 13 | # Configuration options: 14 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-static" 15 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-shared" 16 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-small" 17 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-runtime-cpudetect" 18 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-gray" 19 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-swscale-alpha" 20 | 21 | # Program options: 22 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-programs" 23 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffmpeg" 24 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffplay" 25 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffprobe" 26 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver" 27 | 28 | # Documentation options: 29 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-doc" 30 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-htmlpages" 31 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-manpages" 32 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-podpages" 33 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-txtpages" 34 | 35 | # Component options: 36 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avdevice" 37 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avcodec" 38 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avformat" 39 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avutil" 40 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-swresample" 41 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-swscale" 42 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-postproc" 43 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avfilter" 44 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avresample" 45 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-pthreads" 46 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-w32threads" 47 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-os2threads" 48 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-network" 49 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dct" 50 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dwt" 51 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lsp" 52 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lzo" 53 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mdct" 54 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-rdft" 55 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fft" 56 | 57 | # Hardware accelerators: 58 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dxva2" 59 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vaapi" 60 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vda" 61 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vdpau" 62 | 63 | # Individual component options: 64 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-everything" 65 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-encoders" 66 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-decoders" 67 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-hwaccels" 68 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-muxers" 69 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-demuxers" 70 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-parsers" 71 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsfs" 72 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocols" 73 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-devices" 74 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-filters" 75 | 76 | # External library support: 77 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-iconv" 78 | # ... 79 | 80 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=async" 81 | 82 | # Advanced options (experts only): 83 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cross-prefix=${FF_CROSS_PREFIX}-" 84 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-cross-compile" 85 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysroot=PATH" 86 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysinclude=PATH" 87 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-os=TAGET_OS" 88 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-exec=CMD" 89 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-path=DIR" 90 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --toolchain=NAME" 91 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --nm=NM" 92 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ar=AR" 93 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --as=AS" 94 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --yasmexe=EXE" 95 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cc=CC" 96 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cxx=CXX" 97 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --dep-cc=DEPCC" 98 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ld=LD" 99 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cc=HOSTCC" 100 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cflags=HCFLAGS" 101 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cppflags=HCPPFLAGS" 102 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ld=HOSTLD" 103 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ldflags=HLDFLAGS" 104 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-libs=HLIBS" 105 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-os=OS" 106 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cflags=ECFLAGS" 107 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cxxflags=ECFLAGS" 108 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-ldflags=ELDFLAGS" 109 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-libs=ELIBS" 110 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-version=STRING" 111 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --optflags=OPTFLAGS" 112 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --build-suffix=SUFFIX" 113 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --malloc-prefix=PREFIX" 114 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --progs-suffix=SUFFIX" 115 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --arch=ARCH" 116 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cpu=CPU" 117 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-pic" 118 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-sram" 119 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-thumb" 120 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-symver" 121 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-hardcoded-tables" 122 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-safe-bitstream-reader" 123 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memalign-hack" 124 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-lto" 125 | 126 | # Optimization options (experts only): 127 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-asm" 128 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-altivec" 129 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnow" 130 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnowext" 131 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmx" 132 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmxext" 133 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse" 134 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse2" 135 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse3" 136 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ssse3" 137 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse4" 138 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse42" 139 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avx" 140 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fma4" 141 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv5te" 142 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6" 143 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6t2" 144 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vfp" 145 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-neon" 146 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vis" 147 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-inline-asm" 148 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-yasm" 149 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mips32r2" 150 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr1" 151 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr2" 152 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsfpu" 153 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fast-unaligned" 154 | 155 | # Developer options (useful when working on FFmpeg itself): 156 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-coverage" 157 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-debug" 158 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-debug=LEVEL" 159 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-optimizations" 160 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-extra-warnings" 161 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-stripping" 162 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --assert-level=level" 163 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memory-poisoning" 164 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --valgrind=VALGRIND" 165 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-ftrapv" 166 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --samples=PATH" 167 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-xmm-clobber-test" 168 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random" 169 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random" 170 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random=LIST" 171 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random=LIST" 172 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --random-seed=VALUE" -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/config/module-lite-hevc.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | #-------------------- 4 | # Standard options: 5 | export COMMON_FF_CFG_FLAGS= 6 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --prefix=PREFIX" 7 | 8 | # Licensing options: 9 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-gpl" 10 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-version3" 11 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-nonfree" 12 | 13 | # Configuration options: 14 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-static" 15 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-shared" 16 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-small" 17 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-runtime-cpudetect" 18 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-gray" 19 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-swscale-alpha" 20 | 21 | # Program options: 22 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-programs" 23 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffmpeg" 24 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffplay" 25 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffprobe" 26 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver" 27 | 28 | # Documentation options: 29 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-doc" 30 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-htmlpages" 31 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-manpages" 32 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-podpages" 33 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-txtpages" 34 | 35 | # Component options: 36 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avdevice" 37 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avcodec" 38 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avformat" 39 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avutil" 40 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-swresample" 41 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-swscale" 42 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-postproc" 43 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avfilter" 44 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avresample" 45 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-pthreads" 46 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-w32threads" 47 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-os2threads" 48 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-network" 49 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dct" 50 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dwt" 51 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lsp" 52 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lzo" 53 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mdct" 54 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-rdft" 55 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fft" 56 | 57 | # Hardware accelerators: 58 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dxva2" 59 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vaapi" 60 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vda" 61 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vdpau" 62 | 63 | # Individual component options: 64 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-everything" 65 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-encoders" 66 | 67 | # ./configure --list-decoders 68 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-decoders" 69 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=aac" 70 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=aac_latm" 71 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=flv" 72 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h263" 73 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h263i" 74 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h263p" 75 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h264" 76 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=mp3*" 77 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=vp6" 78 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=vp6a" 79 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=vp6f" 80 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=hevc" 81 | 82 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-hwaccels" 83 | 84 | # ./configure --list-muxers 85 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-muxers" 86 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=mpegts" 87 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=mp4" 88 | 89 | # ./configure --list-demuxers 90 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-demuxers" 91 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=aac" 92 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=concat" 93 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=data" 94 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=flv" 95 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=hls" 96 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=latm" 97 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=live_flv" 98 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=loas" 99 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=m4v" 100 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mov" 101 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mp3" 102 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mpegps" 103 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mpegts" 104 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mpegvideo" 105 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=hevc" 106 | 107 | # ./configure --list-parsers 108 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-parsers" 109 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=aac" 110 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=aac_latm" 111 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=ac3" 112 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=h263" 113 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=h264" 114 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=hevc" 115 | 116 | # ./configure --list-bsf 117 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-bsfs" 118 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mjpeg2jpeg" 119 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mjpeg2jpeg" 120 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mjpega_dump_header" 121 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mov2textsub" 122 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=text2movsub" 123 | 124 | # ./configure --list-protocols 125 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocols" 126 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=async" 127 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=bluray" 128 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=ffrtmpcrypt" 129 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=ffrtmphttp" 130 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=gopher" 131 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=librtmp*" 132 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=libssh" 133 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=mmsh" 134 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=mmst" 135 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtmp*" 136 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtmp" 137 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtmpt" 138 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtp" 139 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=sctp" 140 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=srtp" 141 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=unix" 142 | 143 | # 144 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-devices" 145 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-filters" 146 | 147 | # External library support: 148 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-iconv" 149 | # ... 150 | 151 | # Advanced options (experts only): 152 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cross-prefix=${FF_CROSS_PREFIX}-" 153 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-cross-compile" 154 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysroot=PATH" 155 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysinclude=PATH" 156 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-os=TAGET_OS" 157 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-exec=CMD" 158 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-path=DIR" 159 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --toolchain=NAME" 160 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --nm=NM" 161 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ar=AR" 162 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --as=AS" 163 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --yasmexe=EXE" 164 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cc=CC" 165 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cxx=CXX" 166 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --dep-cc=DEPCC" 167 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ld=LD" 168 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cc=HOSTCC" 169 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cflags=HCFLAGS" 170 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cppflags=HCPPFLAGS" 171 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ld=HOSTLD" 172 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ldflags=HLDFLAGS" 173 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-libs=HLIBS" 174 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-os=OS" 175 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cflags=ECFLAGS" 176 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cxxflags=ECFLAGS" 177 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-ldflags=ELDFLAGS" 178 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-libs=ELIBS" 179 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-version=STRING" 180 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --optflags=OPTFLAGS" 181 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --build-suffix=SUFFIX" 182 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --malloc-prefix=PREFIX" 183 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --progs-suffix=SUFFIX" 184 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --arch=ARCH" 185 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cpu=CPU" 186 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-pic" 187 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-sram" 188 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-thumb" 189 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-symver" 190 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-hardcoded-tables" 191 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-safe-bitstream-reader" 192 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memalign-hack" 193 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-lto" 194 | 195 | # Optimization options (experts only): 196 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-asm" 197 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-altivec" 198 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnow" 199 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnowext" 200 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmx" 201 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmxext" 202 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse" 203 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse2" 204 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse3" 205 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ssse3" 206 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse4" 207 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse42" 208 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avx" 209 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fma4" 210 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv5te" 211 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6" 212 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6t2" 213 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vfp" 214 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-neon" 215 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vis" 216 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-inline-asm" 217 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-yasm" 218 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mips32r2" 219 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr1" 220 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr2" 221 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsfpu" 222 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fast-unaligned" 223 | 224 | # Developer options (useful when working on FFmpeg itself): 225 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-coverage" 226 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-debug" 227 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-debug=LEVEL" 228 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-optimizations" 229 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-extra-warnings" 230 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-stripping" 231 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --assert-level=level" 232 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memory-poisoning" 233 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --valgrind=VALGRIND" 234 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-ftrapv" 235 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --samples=PATH" 236 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-xmm-clobber-test" 237 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random" 238 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random" 239 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random=LIST" 240 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random=LIST" 241 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --random-seed=VALUE" 242 | -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/config/module-lite.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | #-------------------- 4 | # Standard options: 5 | export COMMON_FF_CFG_FLAGS= 6 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --prefix=PREFIX" 7 | 8 | # Licensing options: 9 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-gpl" 10 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-version3" 11 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-nonfree" 12 | 13 | # Configuration options: 14 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-static" 15 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-shared" 16 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-small" 17 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-runtime-cpudetect" 18 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-gray" 19 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-swscale-alpha" 20 | 21 | # Program options: 22 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-programs" 23 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffmpeg" 24 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffplay" 25 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffprobe" 26 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver" 27 | 28 | # Documentation options: 29 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-doc" 30 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-htmlpages" 31 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-manpages" 32 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-podpages" 33 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-txtpages" 34 | 35 | # Component options: 36 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avdevice" 37 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avcodec" 38 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avformat" 39 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avutil" 40 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-swresample" 41 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-swscale" 42 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-postproc" 43 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-avfilter" 44 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avresample" 45 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-pthreads" 46 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-w32threads" 47 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-os2threads" 48 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-network" 49 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dct" 50 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dwt" 51 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lsp" 52 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-lzo" 53 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mdct" 54 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-rdft" 55 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fft" 56 | 57 | # Hardware accelerators: 58 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-dxva2" 59 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vaapi" 60 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vda" 61 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vdpau" 62 | 63 | # Individual component options: 64 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-everything" 65 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-encoders" 66 | 67 | # ./configure --list-decoders 68 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-decoders" 69 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=aac" 70 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=aac_latm" 71 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=flv" 72 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h263" 73 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h263i" 74 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h263p" 75 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=h264" 76 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=mp3*" 77 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=vp6" 78 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=vp6a" 79 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=vp6f" 80 | 81 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-hwaccels" 82 | 83 | # ./configure --list-muxers 84 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-muxers" 85 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=mpegts" 86 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=mp4" 87 | 88 | # ./configure --list-demuxers 89 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-demuxers" 90 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=aac" 91 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=concat" 92 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=data" 93 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=flv" 94 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=hls" 95 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=latm" 96 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=live_flv" 97 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=loas" 98 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=m4v" 99 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mov" 100 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mp3" 101 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mpegps" 102 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mpegts" 103 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=mpegvideo" 104 | 105 | # ./configure --list-parsers 106 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-parsers" 107 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=aac" 108 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=aac_latm" 109 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=ac3" 110 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=h263" 111 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=h264" 112 | 113 | # ./configure --list-bsf 114 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-bsfs" 115 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mjpeg2jpeg" 116 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mjpeg2jpeg" 117 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mjpega_dump_header" 118 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=mov2textsub" 119 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=text2movsub" 120 | 121 | # ./configure --list-protocols 122 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocols" 123 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=async" 124 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=bluray" 125 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=ffrtmpcrypt" 126 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=ffrtmphttp" 127 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=gopher" 128 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=librtmp*" 129 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=libssh" 130 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=mmsh" 131 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=mmst" 132 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtmp*" 133 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtmp" 134 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtmpt" 135 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=rtp" 136 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=sctp" 137 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=srtp" 138 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-protocol=unix" 139 | 140 | # 141 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-devices" 142 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-filters" 143 | 144 | # External library support: 145 | export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-iconv" 146 | # ... 147 | 148 | # Advanced options (experts only): 149 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cross-prefix=${FF_CROSS_PREFIX}-" 150 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-cross-compile" 151 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysroot=PATH" 152 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --sysinclude=PATH" 153 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-os=TAGET_OS" 154 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-exec=CMD" 155 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --target-path=DIR" 156 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --toolchain=NAME" 157 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --nm=NM" 158 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ar=AR" 159 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --as=AS" 160 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --yasmexe=EXE" 161 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cc=CC" 162 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cxx=CXX" 163 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --dep-cc=DEPCC" 164 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --ld=LD" 165 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cc=HOSTCC" 166 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cflags=HCFLAGS" 167 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-cppflags=HCPPFLAGS" 168 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ld=HOSTLD" 169 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-ldflags=HLDFLAGS" 170 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-libs=HLIBS" 171 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --host-os=OS" 172 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cflags=ECFLAGS" 173 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-cxxflags=ECFLAGS" 174 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-ldflags=ELDFLAGS" 175 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-libs=ELIBS" 176 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --extra-version=STRING" 177 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --optflags=OPTFLAGS" 178 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --build-suffix=SUFFIX" 179 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --malloc-prefix=PREFIX" 180 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --progs-suffix=SUFFIX" 181 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --arch=ARCH" 182 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --cpu=CPU" 183 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-pic" 184 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-sram" 185 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-thumb" 186 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-symver" 187 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-hardcoded-tables" 188 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-safe-bitstream-reader" 189 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memalign-hack" 190 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-lto" 191 | 192 | # Optimization options (experts only): 193 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-asm" 194 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-altivec" 195 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnow" 196 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-amd3dnowext" 197 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmx" 198 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mmxext" 199 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse" 200 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse2" 201 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse3" 202 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ssse3" 203 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse4" 204 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-sse42" 205 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-avx" 206 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fma4" 207 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv5te" 208 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6" 209 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-armv6t2" 210 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vfp" 211 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-neon" 212 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vis" 213 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-inline-asm" 214 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-yasm" 215 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mips32r2" 216 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr1" 217 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsdspr2" 218 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-mipsfpu" 219 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-fast-unaligned" 220 | 221 | # Developer options (useful when working on FFmpeg itself): 222 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-coverage" 223 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-debug" 224 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-debug=LEVEL" 225 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-optimizations" 226 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-extra-warnings" 227 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-stripping" 228 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --assert-level=level" 229 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-memory-poisoning" 230 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --valgrind=VALGRIND" 231 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-ftrapv" 232 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --samples=PATH" 233 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-xmm-clobber-test" 234 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random" 235 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random" 236 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-random=LIST" 237 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-random=LIST" 238 | # export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --random-seed=VALUE" 239 | -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/config/module.sh: -------------------------------------------------------------------------------- 1 | module-lite.sh -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/tools/avconfig.h: -------------------------------------------------------------------------------- 1 | /* 2 | * avconfig.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 5 | * 6 | * This file is part of ijkPlayer. 7 | * 8 | * ijkPlayer is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * ijkPlayer is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with ijkPlayer; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #if defined(__aarch64__) 24 | # include "arm64/avconfig.h" 25 | #elif defined(__x86_64__) 26 | # include "x86_64/avconfig.h" 27 | #elif defined(__arm__) 28 | 29 | # if defined(__ARM_ARCH_7S__) 30 | # include "armv7s/avconfig.h" 31 | # elif defined(__ARM_ARCH) 32 | # if __ARM_ARCH == 7 33 | # include "armv7/avconfig.h" 34 | # else 35 | # error Unsupport ARM architecture 36 | # endif 37 | # else 38 | # error Unsupport ARM architecture 39 | # endif 40 | 41 | #elif defined(__i386__) 42 | # include "i386/avconfig.h" 43 | #else 44 | # error Unsupport architecture 45 | #endif 46 | -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/tools/config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * config.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 5 | * 6 | * This file is part of ijkPlayer. 7 | * 8 | * ijkPlayer is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * ijkPlayer is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with ijkPlayer; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #if defined(__aarch64__) 24 | # include "arm64/config.h" 25 | #elif defined(__x86_64__) 26 | # include "x86_64/config.h" 27 | #elif defined(__arm__) 28 | 29 | # if defined(__ARM_ARCH_7S__) 30 | # include "armv7s/config.h" 31 | # elif defined(__ARM_ARCH) 32 | # if __ARM_ARCH == 7 33 | # include "armv7/config.h" 34 | # else 35 | # error Unsupport ARM architecture 36 | # endif 37 | # else 38 | # error Unsupport ARM architecture 39 | # endif 40 | 41 | #elif defined(__i386__) 42 | # include "i386/config.h" 43 | #else 44 | # error Unsupport architecture 45 | #endif 46 | -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/tools/do-compile-ffmpeg.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | # 3 | # Copyright (C) 2013-2014 Zhang Rui 4 | # 5 | # Licensed under the Apache License, Version 2.0 (the "License"); 6 | # you may not use this file except in compliance with the License. 7 | # You may obtain a copy of the License at 8 | # 9 | # http://www.apache.org/licenses/LICENSE-2.0 10 | # 11 | # Unless required by applicable law or agreed to in writing, software 12 | # distributed under the License is distributed on an "AS IS" BASIS, 13 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 | # See the License for the specific language governing permissions and 15 | # limitations under the License. 16 | # 17 | 18 | # This script is based on projects below 19 | # https://github.com/kolyvan/kxmovie 20 | # https://github.com/yixia/FFmpeg-Android 21 | # http://git.videolan.org/?p=vlc-ports/android.git;a=summary 22 | # https://github.com/kewlbear/FFmpeg-iOS-build-script/ 23 | 24 | #-------------------- 25 | echo "====================" 26 | echo "[*] check host" 27 | echo "====================" 28 | set -e 29 | 30 | #-------------------- 31 | # include 32 | 33 | 34 | #-------------------- 35 | # common defines 36 | FF_ARCH=$1 37 | if [ -z "$FF_ARCH" ]; then 38 | echo "You must specific an architecture 'armv7, armv7s, arm64, i386, x86_64, ...'.\n" 39 | exit 1 40 | fi 41 | 42 | 43 | FF_BUILD_ROOT=`pwd` 44 | FF_TAGET_OS="darwin" 45 | 46 | 47 | # ffmpeg build params 48 | #export COMMON_FF_CFG_FLAGS= 49 | #source $FF_BUILD_ROOT/../config/module.sh 50 | export COMMON_FF_CFG_FLAGS= 51 | source $FF_BUILD_ROOT/config/module-lite-hevc.sh 52 | 53 | FFMPEG_CFG_FLAGS= 54 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $COMMON_FF_CFG_FLAGS" 55 | 56 | # Optimization options (experts only): 57 | # FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-armv5te" 58 | # FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-armv6" 59 | # FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-armv6t2" 60 | 61 | # Advanced options (experts only): 62 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-cross-compile" 63 | # --disable-symver may indicate a bug 64 | # FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-symver" 65 | 66 | # Developer options (useful when working on FFmpeg itself): 67 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-stripping" 68 | 69 | ## 70 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --arch=$FF_ARCH" 71 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --target-os=$FF_TAGET_OS" 72 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-static" 73 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-shared" 74 | FFMPEG_EXTRA_CFLAGS= 75 | 76 | # i386, x86_64 77 | FFMPEG_CFG_FLAGS_SIMULATOR= 78 | FFMPEG_CFG_FLAGS_SIMULATOR="$FFMPEG_CFG_FLAGS_SIMULATOR --disable-asm" 79 | FFMPEG_CFG_FLAGS_SIMULATOR="$FFMPEG_CFG_FLAGS_SIMULATOR --disable-mmx" 80 | FFMPEG_CFG_FLAGS_SIMULATOR="$FFMPEG_CFG_FLAGS_SIMULATOR --assert-level=2" 81 | 82 | # armv7, armv7s, arm64 83 | FFMPEG_CFG_FLAGS_ARM= 84 | FFMPEG_CFG_FLAGS_ARM="$FFMPEG_CFG_FLAGS_ARM --enable-pic" 85 | FFMPEG_CFG_FLAGS_ARM="$FFMPEG_CFG_FLAGS_ARM --enable-neon" 86 | FFMPEG_CFG_FLAGS_ARM="$FFMPEG_CFG_FLAGS_ARM --enable-optimizations" 87 | FFMPEG_CFG_FLAGS_ARM="$FFMPEG_CFG_FLAGS_ARM --enable-debug" 88 | FFMPEG_CFG_FLAGS_ARM="$FFMPEG_CFG_FLAGS_ARM --enable-small" 89 | 90 | echo "build_root: $FF_BUILD_ROOT" 91 | 92 | #-------------------- 93 | echo "====================" 94 | echo "[*] check gas-preprocessor" 95 | echo "====================" 96 | FF_TOOLS_ROOT="$FF_BUILD_ROOT/extra" 97 | export PATH="$FF_TOOLS_ROOT/gas-preprocessor:$PATH" 98 | 99 | echo "gasp: $FF_TOOLS_ROOT/gas-preprocessor/gas-preprocessor.pl" 100 | 101 | #-------------------- 102 | echo "====================" 103 | echo "[*] config arch $FF_ARCH" 104 | echo "====================" 105 | 106 | FF_BUILD_NAME="unknown" 107 | FF_XCRUN_PLATFORM="iPhoneOS" 108 | FF_XCRUN_OSVERSION= 109 | FF_GASPP_EXPORT= 110 | FF_DEP_OPENSSL_INC= 111 | FF_DEP_OPENSSL_LIB= 112 | FF_XCODE_BITCODE= 113 | 114 | if [ "$FF_ARCH" = "i386" ]; then 115 | FF_BUILD_NAME="ffmpeg-i386" 116 | FF_BUILD_NAME_OPENSSL=openssl-i386 117 | FF_XCRUN_PLATFORM="iPhoneSimulator" 118 | FF_XCRUN_OSVERSION="-mios-simulator-version-min=6.0" 119 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_SIMULATOR" 120 | elif [ "$FF_ARCH" = "x86_64" ]; then 121 | FF_BUILD_NAME="ffmpeg-x86_64" 122 | FF_BUILD_NAME_OPENSSL=openssl-x86_64 123 | FF_XCRUN_PLATFORM="iPhoneSimulator" 124 | FF_XCRUN_OSVERSION="-mios-simulator-version-min=7.0" 125 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_SIMULATOR" 126 | elif [ "$FF_ARCH" = "armv7" ]; then 127 | FF_BUILD_NAME="ffmpeg-armv7" 128 | FF_BUILD_NAME_OPENSSL=openssl-armv7 129 | FF_XCRUN_OSVERSION="-miphoneos-version-min=6.0" 130 | FF_XCODE_BITCODE="-fembed-bitcode" 131 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_ARM" 132 | # FFMPEG_CFG_CPU="--cpu=cortex-a8" 133 | elif [ "$FF_ARCH" = "armv7s" ]; then 134 | FF_BUILD_NAME="ffmpeg-armv7s" 135 | FF_BUILD_NAME_OPENSSL=openssl-armv7s 136 | FFMPEG_CFG_CPU="--cpu=swift" 137 | FF_XCRUN_OSVERSION="-miphoneos-version-min=6.0" 138 | FF_XCODE_BITCODE="-fembed-bitcode" 139 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_ARM" 140 | elif [ "$FF_ARCH" = "arm64" ]; then 141 | FF_BUILD_NAME="ffmpeg-arm64" 142 | FF_BUILD_NAME_OPENSSL=openssl-arm64 143 | FF_XCRUN_OSVERSION="-miphoneos-version-min=7.0" 144 | FF_XCODE_BITCODE="-fembed-bitcode" 145 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_FLAGS_ARM" 146 | FF_GASPP_EXPORT="GASPP_FIX_XCODE5=1" 147 | else 148 | echo "unknown architecture $FF_ARCH"; 149 | exit 1 150 | fi 151 | 152 | echo "build_name: $FF_BUILD_NAME" 153 | echo "platform: $FF_XCRUN_PLATFORM" 154 | echo "osversion: $FF_XCRUN_OSVERSION" 155 | 156 | #-------------------- 157 | echo "====================" 158 | echo "[*] make ios toolchain $FF_BUILD_NAME" 159 | echo "====================" 160 | 161 | FF_BUILD_SOURCE="$FF_BUILD_ROOT/$FF_BUILD_NAME" 162 | FF_BUILD_PREFIX="$FF_BUILD_ROOT/build/$FF_BUILD_NAME/output" 163 | 164 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --prefix=$FF_BUILD_PREFIX" 165 | 166 | mkdir -p $FF_BUILD_PREFIX 167 | 168 | echo "build_source: $FF_BUILD_SOURCE" 169 | echo "build_prefix: $FF_BUILD_PREFIX" 170 | 171 | #-------------------- 172 | echo "\n--------------------" 173 | echo "[*] configurate ffmpeg" 174 | echo "--------------------" 175 | FF_XCRUN_SDK=`echo $FF_XCRUN_PLATFORM | tr '[:upper:]' '[:lower:]'` 176 | FF_XCRUN_CC="xcrun -sdk $FF_XCRUN_SDK clang" 177 | 178 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS $FFMPEG_CFG_CPU" 179 | 180 | FFMPEG_CFLAGS= 181 | FFMPEG_CFLAGS="$FFMPEG_CFLAGS -arch $FF_ARCH" 182 | FFMPEG_CFLAGS="$FFMPEG_CFLAGS $FF_XCRUN_OSVERSION" 183 | FFMPEG_CFLAGS="$FFMPEG_CFLAGS $FFMPEG_EXTRA_CFLAGS" 184 | FFMPEG_CFLAGS="$FFMPEG_CFLAGS $FF_XCODE_BITCODE" 185 | FFMPEG_LDFLAGS="$FFMPEG_CFLAGS" 186 | FFMPEG_DEP_LIBS= 187 | 188 | #-------------------- 189 | echo "\n--------------------" 190 | echo "[*] check OpenSSL" 191 | echo "----------------------" 192 | FFMPEG_DEP_OPENSSL_INC=$FF_BUILD_ROOT/build/$FF_BUILD_NAME_OPENSSL/output/include 193 | FFMPEG_DEP_OPENSSL_LIB=$FF_BUILD_ROOT/build/$FF_BUILD_NAME_OPENSSL/output/lib 194 | #-------------------- 195 | # with openssl 196 | if [ -f "${FFMPEG_DEP_OPENSSL_LIB}/libssl.a" ]; then 197 | FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-openssl" 198 | 199 | FFMPEG_CFLAGS="$FFMPEG_CFLAGS -I${FFMPEG_DEP_OPENSSL_INC}" 200 | FFMPEG_DEP_LIBS="$FFMPEG_CFLAGS -L${FFMPEG_DEP_OPENSSL_LIB} -lssl -lcrypto" 201 | fi 202 | 203 | #-------------------- 204 | echo "\n--------------------" 205 | echo "[*] configure" 206 | echo "----------------------" 207 | # xcode configuration 208 | export DEBUG_INFORMATION_FORMAT=dwarf-with-dsym 209 | 210 | cd $FF_BUILD_SOURCE 211 | if [ -f "./config.h" ]; then 212 | echo 'reuse configure' 213 | else 214 | echo "config: $FFMPEG_CFG_FLAGS $FF_XCRUN_CC" 215 | if [ "$FF_ARCH" = "i386" ]; then 216 | CPPFLAGS="-DNEON_OPT=0" ./configure \ 217 | $FFMPEG_CFG_FLAGS \ 218 | --cc="$FF_XCRUN_CC" \ 219 | $FFMPEG_CFG_CPU \ 220 | --extra-cflags="$FFMPEG_CFLAGS" \ 221 | --extra-cxxflags="$FFMPEG_CFLAGS" \ 222 | --extra-ldflags="$FFMPEG_LDFLAGS $FFMPEG_DEP_LIBS" 223 | elif [ "$FF_ARCH" = "x86_64" ]; then 224 | CPPFLAGS="-DNEON_OPT=0" ./configure \ 225 | $FFMPEG_CFG_FLAGS \ 226 | --cc="$FF_XCRUN_CC" \ 227 | $FFMPEG_CFG_CPU \ 228 | --extra-cflags="$FFMPEG_CFLAGS" \ 229 | --extra-cxxflags="$FFMPEG_CFLAGS" \ 230 | --extra-ldflags="$FFMPEG_LDFLAGS $FFMPEG_DEP_LIBS" 231 | else 232 | CPPFLAGS="-DNEON_OPT=1" ./configure \ 233 | $FFMPEG_CFG_FLAGS \ 234 | --cc="$FF_XCRUN_CC" \ 235 | $FFMPEG_CFG_CPU \ 236 | --extra-cflags="$FFMPEG_CFLAGS" \ 237 | --extra-cxxflags="$FFMPEG_CFLAGS" \ 238 | --extra-ldflags="$FFMPEG_LDFLAGS $FFMPEG_DEP_LIBS" 239 | fi 240 | make clean 241 | fi 242 | 243 | #-------------------- 244 | echo "\n--------------------" 245 | echo "[*] compile ffmpeg" 246 | echo "--------------------" 247 | cp config.* $FF_BUILD_PREFIX 248 | make -j3 $FF_GASPP_EXPORT 249 | make install 250 | mkdir -p $FF_BUILD_PREFIX/include/libffmpeg 251 | cp -f config.h $FF_BUILD_PREFIX/include/libffmpeg/config.h 252 | -------------------------------------------------------------------------------- /compile-ffmpeg-for-ios/tools/ffversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * ffversion.h 3 | * 4 | * Copyright (c) 2013 Zhang Rui 5 | * 6 | * This file is part of ijkPlayer. 7 | * 8 | * ijkPlayer is free software; you can redistribute it and/or 9 | * modify it under the terms of the GNU Lesser General Public 10 | * License as published by the Free Software Foundation; either 11 | * version 2.1 of the License, or (at your option) any later version. 12 | * 13 | * ijkPlayer is distributed in the hope that it will be useful, 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 | * Lesser General Public License for more details. 17 | * 18 | * You should have received a copy of the GNU Lesser General Public 19 | * License along with ijkPlayer; if not, write to the Free Software 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 | */ 22 | 23 | #if defined(__aarch64__) 24 | # include "arm64/ffversion.h" 25 | #elif defined(__x86_64__) 26 | # include "x86_64/ffversion.h" 27 | #elif defined(__arm__) 28 | 29 | # if defined(__ARM_ARCH_7S__) 30 | # include "armv7s/ffversion.h" 31 | # elif defined(__ARM_ARCH_7__) 32 | # include "armv7/ffversion.h" 33 | # else 34 | # error Unsupport ARM architecture 35 | # endif 36 | 37 | #elif defined(__i386__) 38 | # include "i386/ffversion.h" 39 | #else 40 | # error Unsupport architecture 41 | #endif 42 | -------------------------------------------------------------------------------- /init-ffmpeg.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env bash 2 | 3 | IJK_FFMPEG_ORIGIN=https://github.com/samirchen/FFmpeg.git 4 | IJK_FFMPEG_BRANCH=ijk-r0.4.5-ff3.0-dev 5 | LOCAL_WORKSPACE=ffmpeg 6 | 7 | 8 | if [ ! -d $LOCAL_WORKSPACE ]; then 9 | git clone -b $IJK_FFMPEG_BRANCH $IJK_FFMPEG_ORIGIN $LOCAL_WORKSPACE 10 | else 11 | cd $LOCAL_WORKSPACE 12 | git fetch --all --tags 13 | cd - 14 | fi --------------------------------------------------------------------------------