- 幫助選項Help options
- 標準選項Standard options
- 許可證選項Licensing options
- 配置選項Configuration options
- 程序選項Program options
- 文檔選項Documentation options
- 組件選項Component options
- 個別組件選項Individual component options
- 擴展庫支持External library support
- 工具鏈選項Toolchain options
- 高級選項Advanced options
- 優化選項Optimization options
- 開發者選項Developer options
幫助選項(Help options)
用於查看ffmpeg的能力
選項 | 說明 |
---|---|
–help | print this message |
–list-decoders | 顯示所有可用的解碼器(h264/mjpeg等) |
–list-encoders | 顯示所有可用的編碼器(h264/mjpeg等) |
–list-hwaccels | 顯示所有支持的硬編解碼器(h264_videotoolbox/h264_mediacodec等) |
–list-demuxers | 顯示所有支持解複用的容器(mp4/h264等) |
–list-muxers | 顯示所有支持複用的容器(mp4/h264等) |
–list-parsers | show all available parsers |
–list-protocols | 顯示所有支持的傳輸協議(rtmp/rtp等) |
–list-bsfs | 顯示所有可用的格式轉換(h264_mp4toannexb/aac_adtstoasc等) |
–list-indevs | 顯示所有支持的輸入設備(alsa/v4l2等) |
–list-outdevs | 顯示所有支持的輸出設備(alsa/opengl等) |
–list-filters | 顯示支持的所有過濾器(scale/volume/fps/allyuv等) |
標準選項(Standard options)
編譯配置
選項 | 說明 |
---|---|
–logfile=FILE | 配置過程中的log輸出文件,默認輸出到當前位置的ffbuild/config.log文件 |
–disable-logging | 配置過程中不輸出日誌 |
–fatal-warnings | 把配置過程中的任何警告當做致命的錯誤處理 |
–prefix=PREFIX | 設定安裝的跟目錄,如果不指定默認是/usr |
–bindir=DIR | 設置可執行程序的安裝位置,默認是[PREFIX/bin] |
–datadir=DIR | 設置測試程序以及數據的安裝位置,默認是[PREFIX/share/ffmpeg] |
–docdir=DIR | 設置文檔的安裝目錄,默認是[PREFIX/share/doc/ffmpeg] |
–libdir=DIR | 設置靜態庫的安裝位置,默認是[PREFIX/lib] |
–shlibdir=DIR | 設置動態庫的安裝位置,默認是[LIBDIR] |
–incdir=DIR | 設置頭文件的安裝位置,默認是[PREFIX/include];一般來說用於依賴此頭文件來開發就夠了 |
–mandir=DIR | 設置man文件的安裝目錄,默認是[PREFIX/share/man] |
–pkgconfigdir=DIR | 設置pkgconfig的安裝目錄,默認是[LIBDIR/pkgconfig],只有--enable-shared 使能的時候這個選項纔有效 |
–enable-rpath | use rpath to allow installing libraries in paths not part of the dynamic linker search path use rpath when linking programs [USE WITH CARE] |
–install-name-dir=DIR | Darwin directory name for installed targets |
許可證選項(Licensing options)
選擇許可證,FFMPEG默認許可證LGPL 2.1,如果需要加gpl的庫需要使用gpl的許可證,例如libx264就是gpl的,如果需要加入libx264則需要--enable-gpl
。
選項 | 說明 |
---|---|
–enable-gpl | allow use of GPL code, the resulting libs and binaries will be under GPL [no] |
–enable-version3 | upgrade (L)GPL to version 3 [no] |
–enable-nonfree | allow use of nonfree code, the resulting libs and binaries will be unredistributable [no] |
配置選項(Configuration options)
編譯選項的配置
選項 | 說明 |
---|---|
–disable-static | 不生產靜態庫,默認生成靜態庫 |
–enable-shared | 生成動態庫,默認不生成動態庫 |
–enable-small | optimize for size instead of speed,默認開啓 |
–disable-runtime-cpudetect | disable detecting cpu capabilities at runtime (smaller binary),默認開啓 |
–enable-gray | enable full grayscale support (slower color) |
–disable-swscale-alpha | disable alpha channel support in swscale |
–disable-all | 禁止編譯所有庫和可執行程序 |
–enable-raise-major | 增加主版本號 |
程序選項(Program options)
可執行程序開啓選項,默認編譯ffmpeg中的所有可執行程序,包括ffmpeg、ffplay、ffprobe、ffserver,不過Mac平臺默認情況下不生成ffplay,目前暫未知道啥原因。
選項 | 說明 |
---|---|
–disable-programs | do not build command line programs |
–disable-ffmpeg | disable ffmpeg build |
–disable-ffplay | disable ffplay build |
–disable-ffprobe | disable ffprobe build |
–disable-ffserver | disable ffserver build |
文檔選項(Documentation options)
離線文檔選擇
選項 | 說明 |
---|---|
–disable-doc | do not build documentation |
–disable-htmlpages | do not build HTML documentation pages |
–disable-manpages | do not build man documentation pages |
–disable-podpages | do not build POD documentation pages |
–disable-txtpages | do not build text documentation pages |
組件選項(Component options)
除了avresample模塊,默認編譯所有模塊。一般來說用於輕量化ffmpeg庫的大小,可以僅僅開啓指定某些組件的某些功能。
選項 | 說明 |
---|---|
–disable-avdevice | disable libavdevice build |
–disable-avcodec | disable libavcodec build |
–disable-avformat | disable libavformat build |
–disable-swresample | disable libswresample build |
–disable-swscale | disable libswscale build |
–disable-postproc | disable libpostproc build |
–disable-avfilter | disable libavfilter build |
–enable-avresample | enable libavresample build [no] |
–disable-pthreads | disable pthreads [autodetect] |
–disable-w32threads | disable Win32 threads [autodetect] |
–disable-os2threads | disable OS/2 threads [autodetect] |
–disable-network | disable network support [no] |
–disable-dct | disable DCT code |
–disable-dwt | disable DWT code |
–disable-error-resilience | disable error resilience code |
–disable-lsp | disable LSP code |
–disable-lzo | disable LZO decoder code |
–disable-mdct | disable MDCT code |
–disable-rdft | disable RDFT code |
–disable-fft | disable FFT code |
–disable-faan | disable floating point AAN (I)DCT code |
–disable-pixelutils | disable pixel utils in libavutil |
個別組件選項(Individual component options)
可以用於設定開啓指定功能,例如禁止所有encoders,在這裏可以開啓特定的encoders(x264、aac等)
選項 | 說明 |
---|---|
–disable-everything | disable all components listed below |
–disable-encoder=NAME | disable encoder NAME |
–enable-encoder=NAME | enable encoder NAME |
–disable-encoders | disable all encoders |
–disable-decoder=NAME | disable decoder NAME |
–enable-decoder=NAME | enable decoder NAME |
–disable-decoders | disable all decoders |
–disable-hwaccel=NAME | disable hwaccel NAME |
–enable-hwaccel=NAME | enable hwaccel NAME |
–disable-hwaccels | disable all hwaccels |
–disable-muxer=NAME | disable muxer NAME |
–enable-muxer=NAME | enable muxer NAME |
–disable-muxers | disable all muxers |
–disable-demuxer=NAME | disable demuxer NAME |
–enable-demuxer=NAME | enable demuxer NAME |
–disable-demuxers | disable all demuxers |
–enable-parser=NAME | enable parser NAME |
–disable-parser=NAME | disable parser NAME |
–disable-parsers | disable all parsers |
–enable-bsf=NAME | enable bitstream filter NAME |
–disable-bsf=NAME | disable bitstream filter NAME |
–disable-bsfs | disable all bitstream filters |
–enable-protocol=NAME | enable protocol NAME |
–disable-protocol=NAME | disable protocol NAME |
–disable-protocols | disable all protocols |
–enable-indev=NAME | enable input device NAME |
–disable-indev=NAME | disable input device NAME |
–disable-indevs | disable input devices |
–enable-outdev=NAME | enable output device NAME |
–disable-outdev=NAME | disable output device NAME |
–disable-outdevs | disable output devices |
–disable-devices | disable all devices |
–enable-filter=NAME | enable filter NAME |
–disable-filter=NAME | disable filter NAME |
–disable-filters | disable all filters |
擴展庫支持(External library support)
ffmpeg提供的一些功能是由其他擴展庫支持的,如果需要使用需要明確聲明,確定編譯的第三方庫的目標架構--arch
相同就好了,在編譯ffmpeg的時候需加入第三方庫的頭文和庫搜索路徑(通過extra-cflags
和extra-ldflags
指定即可),剩下的事ffmpeg都給你做好了。
- libx264例子
ffmpeg集成libx264官方文檔
$ git clone http://source.ffmpeg.org/git/ffmpeg.git
$ cd x264
$ ./configure --prefix=$FFMPEG_PREFIX --enable-static --enable-shared
$ make -j8 && make install
選項 | 說明 |
---|---|
–enable-avisynth | enable reading of AviSynth script files [no] |
–disable-bzlib | disable bzlib [autodetect] |
–enable-chromaprint | enable audio fingerprinting with chromaprint [no] |
–enable-frei0r | enable frei0r video filtering [no] |
–enable-gcrypt | enable gcrypt, needed for rtmp(t)e support if openssl, librtmp or gmp is not used [no] |
–enable-gmp | enable gmp, needed for rtmp(t)e support if openssl or librtmp is not used [no] |
–enable-gnutls | enable gnutls, needed for https support if openssl is not used [no] |
–disable-iconv | disable iconv [autodetect] |
–enable-jni | enable JNI support [no] |
–enable-ladspa | enable LADSPA audio filtering [no] |
–enable-libass | enable libass subtitles rendering, needed for subtitles and ass filter [no] |
–enable-libbluray | enable BluRay reading using libbluray [no] |
–enable-libbs2b | enable bs2b DSP library [no] |
–enable-libcaca | enable textual display using libcaca [no] |
–enable-libcelt | enable CELT decoding via libcelt [no] |
–enable-libcdio | enable audio CD grabbing with libcdio [no] |
–enable-libdc1394 | enable IIDC-1394 grabbing using libdc1394 and libraw1394 [no] |
–enable-libebur128 | enable libebur128 for EBU R128 measurement, needed for loudnorm filter [no] |
–enable-libfdk-aac | enable AAC de/encoding via libfdk-aac [no] |
–enable-libflite | enable flite (voice synthesis) support via libflite [no] |
–enable-libfontconfig | enable libfontconfig, useful for drawtext filter [no] |
–enable-libfreetype | enable libfreetype, needed for drawtext filter [no] |
–enable-libfribidi | enable libfribidi, improves drawtext filter [no] |
–enable-libgme | enable Game Music Emu via libgme [no] |
–enable-libgsm | enable GSM de/encoding via libgsm [no] |
–enable-libiec61883 | enable iec61883 via libiec61883 [no] |
–enable-libilbc | enable iLBC de/encoding via libilbc [no] |
–enable-libkvazaar | enable HEVC encoding via libkvazaar [no] |
–enable-libmodplug | enable ModPlug via libmodplug [no] |
–enable-libmp3lame | enable MP3 encoding via libmp3lame [no] |
–enable-libnut | enable NUT (de)muxing via libnut, native (de)muxer exists [no] |
–enable-libopencore-amrnb | enable AMR-NB de/encoding via libopencore-amrnb [no] |
–enable-libopencore-amrwb | enable AMR-WB decoding via libopencore-amrwb [no] |
–enable-libopencv | enable video filtering via libopencv [no] |
–enable-libopenh264 | enable H.264 encoding via OpenH264 [no] |
–enable-libopenjpeg | enable JPEG 2000 de/encoding via OpenJPEG [no] |
–enable-libopenmpt | enable decoding tracked files via libopenmpt [no] |
–enable-libopus | enable Opus de/encoding via libopus [no] |
–enable-libpulse | enable Pulseaudio input via libpulse [no] |
–enable-librubberband | enable rubberband needed for rubberband filter [no] |
–enable-librtmp | enable RTMP[E] support via librtmp [no] |
–enable-libschroedinger | enable Dirac de/encoding via libschroedinger [no] |
–enable-libshine | enable fixed-point MP3 encoding via libshine [no] |
–enable-libsmbclient | enable Samba protocol via libsmbclient [no] |
–enable-libsnappy | enable Snappy compression, needed for hap encoding [no] |
–enable-libsoxr | enable Include libsoxr resampling [no] |
–enable-libspeex | enable Speex de/encoding via libspeex [no] |
–enable-libssh | enable SFTP protocol via libssh [no] |
–enable-libtesseract | enable Tesseract, needed for ocr filter [no] |
–enable-libtheora | enable Theora encoding via libtheora [no] |
–enable-libtwolame | enable MP2 encoding via libtwolame [no] |
–enable-libv4l2 | enable libv4l2/v4l-utils [no] |
–enable-libvidstab | enable video stabilization using vid.stab [no] |
–enable-libvo-amrwbenc | enable AMR-WB encoding via libvo-amrwbenc [no] |
–enable-libvorbis | enable Vorbis en/decoding via libvorbis, native implementation exists [no] |
–enable-libvpx | enable VP8 and VP9 de/encoding via libvpx [no] |
–enable-libwavpack | enable wavpack encoding via libwavpack [no] |
–enable-libwebp | enable WebP encoding via libwebp [no] |
–enable-libx264 | enable H.264 encoding via x264 [no] |
–enable-libx265 | enable HEVC encoding via x265 [no] |
–enable-libxavs | enable AVS encoding via xavs [no] |
–enable-libxcb | enable X11 grabbing using XCB [autodetect] |
–enable-libxcb-shm | enable X11 grabbing shm communication [autodetect] |
–enable-libxcb-xfixes | enable X11 grabbing mouse rendering [autodetect] |
–enable-libxcb-shape | enable X11 grabbing shape rendering [autodetect] |
–enable-libxvid | enable Xvid encoding via xvidcore, native MPEG-4/Xvid encoder exists [no] |
–enable-libzimg | enable z.lib, needed for zscale filter [no] |
–enable-libzmq | enable message passing via libzmq [no] |
–enable-libzvbi | enable teletext support via libzvbi [no] |
–disable-lzma | disable lzma [autodetect] |
–enable-decklink | enable Blackmagic DeckLink I/O support [no] |
–enable-mediacodec | enable Android MediaCodec support [no] |
–enable-netcdf | enable NetCDF, needed for sofalizer filter [no] |
–enable-openal | enable OpenAL 1.1 capture support [no] |
–enable-opencl | enable OpenCL code |
–enable-opengl | enable OpenGL rendering [no] |
–enable-openssl | enable openssl, needed for https support if gnutls is not used [no] |
–disable-schannel | disable SChannel SSP, needed for TLS support on Windows if openssl and gnutls are not used [autodetect] |
–disable-sdl2 | disable sdl2 [autodetect] |
–disable-securetransport | disable Secure Transport, needed for TLS support on OSX if openssl and gnutls are not used [autodetect] |
–enable-x11grab | enable X11 grabbing (legacy) [no] |
–disable-xlib | disable xlib [autodetect] |
–disable-zlib | disable zlib [autodetect] |
硬件加速功能(hardware acceleration features)
ffmpeg默認實現了移動端(Android和IOS)的硬編解碼,可以選擇disable的都是默認開啓的,可以關閉,可以選擇enable的都是需要自己解決依賴的。
選項 | 說明 |
---|---|
–disable-audiotoolbox | disable Apple AudioToolbox code [autodetect] |
–enable-cuda | enable dynamically linked Nvidia CUDA code [no] |
–enable-cuvid | enable Nvidia CUVID support [autodetect] |
–disable-d3d11va | disable Microsoft Direct3D 11 video acceleration code [autodetect] |
–disable-dxva2 | disable Microsoft DirectX 9 video acceleration code [autodetect] |
–enable-libmfx | enable Intel MediaSDK (AKA Quick Sync Video) code via libmfx [no] |
–enable-libnpp | enable Nvidia Performance Primitives-based code [no] |
–enable-mmal | enable Broadcom Multi-Media Abstraction Layer (Raspberry Pi) via MMAL [no] |
–disable-nvenc | disable Nvidia video encoding code [autodetect] |
–enable-omx | enable OpenMAX IL code [no] |
–enable-omx-rpi | enable OpenMAX IL code for Raspberry Pi [no] |
–disable-vaapi | disable Video Acceleration API (mainly Unix/Intel) code [autodetect] |
–disable-vda | disable Apple Video Decode Acceleration code [autodetect] |
–disable-vdpau | disable Nvidia Video Decode and Presentation API for Unix code [autodetect] |
–disable-videotoolbox | disable VideoToolbox code [autodetect] |
工具鏈選項(Toolchain options)
ffmpeg代碼本身是支持跨平臺的,要編譯不同的平臺需要配置不同平臺的交叉編譯工具鏈。ffmpeg都是c代碼,所以不需要配置c++的sysroot。常用的就幾個arch
,cpu
,cross-prefix
,enable-cross-compile
,sysroot
,target-os
,extra-cflags
,extra-ldflags
,enable-pic
。現在Android和IOS幾乎沒有armv5的設備了,所以如果編譯這兩個平臺配置armv7和armv8就好了。
選項 | 說明 |
---|---|
–arch=ARCH | 選擇目標架構[armv7a/aarch64/x86/x86_64等] |
–cpu=CPU | 選擇目標cpu[armv7-a/armv8-a/x86/x86_64] |
–cross-prefix=PREFIX | 設定交叉編譯工具鏈的前綴,不算gcc/nm/as命令,例如android 32位的交叉編譯鏈$ndk_dir/toolchains/arm-linux-androideabi-$toolchain_version/prebuilt/linux-$host_arch/bin/arm-linux-androideabi- |
–progs-suffix=SUFFIX | program name suffix [] |
–enable-cross-compile | 如果目標平臺和編譯平臺不同則需要使能它 |
–sysroot=PATH | 交叉工具鏈的頭文件和庫位,例如Android 32位位置$ndk_dir/platforms/android-14/arch-arm |
–sysinclude=PATH | location of cross-build system headers |
–target-os=OS | 設置目標系統 |
–target-exec=CMD | command to run executables on target |
–target-path=DIR | path to view of build directory on target |
–target-samples=DIR | path to samples directory on target |
–tempprefix=PATH | force fixed dir/prefix instead of mktemp for checks |
–toolchain=NAME | set tool defaults according to NAME |
–nm=NM | use nm tool NM [nm -g] |
–ar=AR | use archive tool AR [ar] |
–as=AS | use assembler AS [] |
–ln_s=LN_S | use symbolic link tool LN_S [ln -s -f] |
–strip=STRIP | use strip tool STRIP [strip] |
–windres=WINDRES | use windows resource compiler WINDRES [windres] |
–yasmexe=EXE | use yasm-compatible assembler EXE [yasm] |
–cc=CC | use C compiler CC [gcc] |
–cxx=CXX | use C compiler CXX [g++] |
–objcc=OCC | use ObjC compiler OCC [gcc] |
–dep-cc=DEPCC | use dependency generator DEPCC [gcc] |
–ld=LD | use linker LD [] |
–pkg-config=PKGCONFIG | use pkg-config tool PKGCONFIG [pkg-config] |
–pkg-config-flags=FLAGS | pass additional flags to pkgconf [] |
–ranlib=RANLIB | use ranlib RANLIB [ranlib] |
–doxygen=DOXYGEN | use DOXYGEN to generate API doc [doxygen] |
–host-cc=HOSTCC | use host C compiler HOSTCC |
–host-cflags=HCFLAGS | use HCFLAGS when compiling for host |
–host-cppflags=HCPPFLAGS | use HCPPFLAGS when compiling for host |
–host-ld=HOSTLD | use host linker HOSTLD |
–host-ldflags=HLDFLAGS | use HLDFLAGS when linking for host |
–host-libs=HLIBS | use libs HLIBS when linking for host |
–host-os=OS | compiler host OS [] |
–extra-cflags=ECFLAGS | 設置cflags,如果是Android平臺可以根據ndk內的設定,arm-linux-androideabi-4.6/setup.mk,建議參考你當前的setup來配置 |
–extra-cxxflags=ECFLAGS | add ECFLAGS to CXXFLAGS [] |
–extra-objcflags=FLAGS | add FLAGS to OBJCFLAGS [] |
–extra-ldflags=ELDFLAGS | 參考cflags |
–extra-ldexeflags=ELDFLAGS | add ELDFLAGS to LDEXEFLAGS [] |
–extra-ldlibflags=ELDFLAGS | add ELDFLAGS to LDLIBFLAGS [] |
–extra-libs=ELIBS | add ELIBS [] |
–extra-version=STRING | version string suffix [] |
–optflags=OPTFLAGS | override optimization-related compiler flags |
–build-suffix=SUFFIX | library name suffix [] |
–enable-pic | build position-independent code |
–enable-thumb | compile for Thumb instruction set |
–enable-lto | use link-time optimization |
–env=”ENV=override” | override the environment variables |
高級選項(Advanced options)
選項 | 說明 |
---|---|
–malloc-prefix=PREFIX | prefix malloc and related names with PREFIX |
–custom-allocator=NAME | use a supported custom allocator |
–disable-symver | disable symbol versioning |
–enable-hardcoded-tables | use hardcoded tables instead of runtime generation |
–disable-safe-bitstream-reader | disable buffer boundary checking in bitreaders (faster, but may crash) |
–enable-memalign-hack | emulate memalign, interferes with memory debuggers |
–sws-max-filter-size=N | the max filter size swscale uses [256] |
優化選項(Optimization options)
默認開啓各個平臺的彙編優化,有些嵌入式平臺可能並不能完整的支持架構的所有彙編指令,所以需要關閉。(自己理解的,沒有實戰)
選項 | 說明 |
---|---|
–disable-asm | disable all assembly optimizations |
–disable-altivec | disable AltiVec optimizations |
–disable-vsx | disable VSX optimizations |
–disable-power8 | disable POWER8 optimizations |
–disable-amd3dnow | disable 3DNow! optimizations |
–disable-amd3dnowext | disable 3DNow! extended optimizations |
–disable-mmx | disable MMX optimizations |
–disable-mmxext | disable MMXEXT optimizations |
–disable-sse | disable SSE optimizations |
–disable-sse2 | disable SSE2 optimizations |
–disable-sse3 | disable SSE3 optimizations |
–disable-ssse3 | disable SSSE3 optimizations |
–disable-sse4 | disable SSE4 optimizations |
–disable-sse42 | disable SSE4.2 optimizations |
–disable-avx | disable AVX optimizations |
–disable-xop | disable XOP optimizations |
–disable-fma3 | disable FMA3 optimizations |
–disable-fma4 | disable FMA4 optimizations |
–disable-avx2 | disable AVX2 optimizations |
–disable-aesni | disable AESNI optimizations |
–disable-armv5te | disable armv5te optimizations |
–disable-armv6 | disable armv6 optimizations |
–disable-armv6t2 | disable armv6t2 optimizations |
–disable-vfp | disable VFP optimizations |
–disable-neon | disable NEON optimizations |
–disable-inline-asm | disable use of inline assembly |
–disable-yasm | disable use of nasm/yasm assembly |
–disable-mipsdsp | disable MIPS DSP ASE R1 optimizations |
–disable-mipsdspr2 | disable MIPS DSP ASE R2 optimizations |
–disable-msa | disable MSA optimizations |
–disable-mipsfpu | disable floating point MIPS optimizations |
–disable-mmi | disable Loongson SIMD optimizations |
–disable-fast-unaligned | consider unaligned accesses slow |
開發者選項(Developer options)
調試用的一些開關
選項 | 說明 |
---|---|
–disable-debug | disable debugging symbols |
–enable-debug=LEVEL | set the debug level [] |
–disable-optimizations | disable compiler optimizations |
–enable-extra-warnings | enable more compiler warnings |
–disable-stripping | disable stripping of executables and shared libraries |
–assert-level=level | 0(default), 1 or 2, amount of assertion testing, 2 causes a slowdown at runtime. |
–enable-memory-poisoning | fill heap uninitialized allocated space with arbitrary data |
–valgrind=VALGRIND | run “make fate” tests through valgrind to detect memory leaks and errors, using the specified valgrind binary. Cannot be combined with –target-exec |
–enable-ftrapv | Trap arithmetic overflows |
–samples=PATH | location of test samples for FATE, if not set use $FATE_SAMPLES at make invocation time. |
–enable-neon-clobber-test | check NEON registers for clobbering (should be used only for debugging purposes) |
–enable-xmm-clobber-test | check XMM registers for clobbering (Win64-only; should be used only for debugging purposes) |
–enable-random | randomly enable/disable components |
–disable-random | |
–enable-random=LIST | randomly enable/disable specific components or |
–disable-random=LIST | component groups. LIST is a comma-separated list of NAME[:PROB] entries where NAME is a component (group) and PROB the probability associated with |
–random-seed=VALUE | seed value for –enable/disable-random |
–disable-valgrind-backtrace | do not print a backtrace under Valgrind (only applies to –disable-optimizations builds) |