kaisawind's blog
  • 关于
  • 所有帖子

ffmpeg编译时configure选项(Options) - Tue, Nov 19, 2019

ffmpeg编译时configure选项(Options)

  • help
  • Help options:
  • Standard options:
  • Licensing options:
  • Configuration options:
  • Program options:
  • Documentation options:
  • Component options:
  • Individual component options:
  • External library support:
  • The following libraries provide various hardware acceleration features:
  • Advanced options (experts only):
  • Optimization options (experts only):
  • Developer options (useful when working on FFmpeg itself):

help

$ ./configure --help
Usage: configure [options]
Options: [defaults in brackets after descriptions]

Help options:

选项说明
--helpprint this message
--quietSuppress showing informative output
--list-decodersshow all available decoders
--list-encodersshow all available encoders
--list-hwaccelsshow all available hardware accelerators
--list-demuxersshow all available demuxers
--list-muxersshow all available muxers
--list-parsersshow all available parsers
--list-protocolsshow all available protocols
--list-bsfsshow all available bitstream filters
--list-indevsshow all available input devices
--list-outdevsshow all available output devices
--list-filtersshow all available filters

Standard options:

选项说明
--logfile=FILElog tests and output to FILE [ffbuild/config.log]
--disable-loggingdo not log configure debug information
--fatal-warningsfail if any configure warning is generated
--prefix=PREFIXinstall in PREFIX [/usr/local]
--bindir=DIRinstall binaries in DIR [PREFIX/bin]
--datadir=DIRinstall data files in DIR [PREFIX/share/ffmpeg]
--docdir=DIRinstall documentation in DIR [PREFIX/share/doc/ffmpeg]
--libdir=DIRinstall libs in DIR [PREFIX/lib]
--shlibdir=DIRinstall shared libs in DIR [LIBDIR]
--incdir=DIRinstall includes in DIR [PREFIX/include]
--mandir=DIRinstall man page in DIR [PREFIX/share/man]
--pkgconfigdir=DIRinstall pkg-config files in DIR [LIBDIR/pkgconfig]
--enable-rpathuse rpath to allow installing libraries in pathsnot part of the dynamic linker search pathuse rpath when linking programs (USE WITH CARE)
--install-name-dir=DIRDarwin directory name for installed targets

Licensing options:

选项说明
--enable-gplallow use of GPL code, the resulting libsand binaries will be under GPL [no]
--enable-version3upgrade (L)GPL to version 3 [no]
--enable-nonfreeallow use of nonfree code, the resulting libsand binaries will be unredistributable [no]

Configuration options:

选项说明
--disable-staticdo not build static libraries [no]
--enable-sharedbuild shared libraries [no]
--enable-smalloptimize for size instead of speed
--disable-runtime-cpudetectdisable detecting CPU capabilities at runtime (smaller binary)
--enable-grayenable full grayscale support (slower color)
--disable-swscale-alphadisable alpha channel support in swscale
--disable-alldisable building components, libraries and programs
--disable-autodetectdisable automatically detected external libraries [no]

Program options:

选项说明
--disable-programsdo not build command line programs
--disable-ffmpegdisable ffmpeg build
--disable-ffplaydisable ffplay build
--disable-ffprobedisable ffprobe build

Documentation options:

选项说明
--disable-docdo not build documentation
--disable-htmlpagesdo not build HTML documentation pages
--disable-manpagesdo not build man documentation pages
--disable-podpagesdo not build POD documentation pages
--disable-txtpagesdo not build text documentation pages

Component options:

选项说明
--disable-avdevicedisable libavdevice build
--disable-avcodecdisable libavcodec build
--disable-avformatdisable libavformat build
--disable-swresampledisable libswresample build
--disable-swscaledisable libswscale build
--disable-postprocdisable libpostproc build
--disable-avfilterdisable libavfilter build
--enable-avresampleenable libavresample build (deprecated) [no]
--disable-pthreadsdisable pthreads [autodetect]
--disable-w32threadsdisable Win32 threads [autodetect]
--disable-os2threadsdisable OS/2 threads [autodetect]
--disable-networkdisable network support [no]
--disable-dctdisable DCT code
--disable-dwtdisable DWT code
--disable-error-resiliencedisable error resilience code
--disable-lspdisable LSP code
--disable-lzodisable LZO decoder code
--disable-mdctdisable MDCT code
--disable-rdftdisable RDFT code
--disable-fftdisable FFT code
--disable-faandisable floating point AAN (I)DCT code
--disable-pixelutilsdisable pixel utils in libavutil

Individual component options:

选项说明
--disable-everythingdisable all components listed below
--disable-encoder=NAMEdisable encoder NAME
--enable-encoder=NAMEenable encoder NAME
--disable-encodersdisable all encoders
--disable-decoder=NAMEdisable decoder NAME
--enable-decoder=NAMEenable decoder NAME
--disable-decodersdisable all decoders
--disable-hwaccel=NAMEdisable hwaccel NAME
--enable-hwaccel=NAMEenable hwaccel NAME
--disable-hwaccelsdisable all hwaccels
--disable-muxer=NAMEdisable muxer NAME
--enable-muxer=NAMEenable muxer NAME
--disable-muxersdisable all muxers
--disable-demuxer=NAMEdisable demuxer NAME
--enable-demuxer=NAMEenable demuxer NAME
--disable-demuxersdisable all demuxers
--enable-parser=NAMEenable parser NAME
--disable-parser=NAMEdisable parser NAME
--disable-parsersdisable all parsers
--enable-bsf=NAMEenable bitstream filter NAME
--disable-bsf=NAMEdisable bitstream filter NAME
--disable-bsfsdisable all bitstream filters
--enable-protocol=NAMEenable protocol NAME
--disable-protocol=NAMEdisable protocol NAME
--disable-protocolsdisable all protocols
--enable-indev=NAMEenable input device NAME
--disable-indev=NAMEdisable input device NAME
--disable-indevsdisable input devices
--enable-outdev=NAMEenable output device NAME
--disable-outdev=NAMEdisable output device NAME
--disable-outdevsdisable output devices
--disable-devicesdisable all devices
--enable-filter=NAMEenable filter NAME
--disable-filter=NAMEdisable filter NAME
--disable-filtersdisable all filters

External library support:

Using any of the following switches will allow FFmpeg to link to the corresponding external library. All the components depending on that library will become enabled, if all their other dependencies are met and they are not explicitly disabled. E.g. –enable-libwavpack will enable linking to libwavpack and allow the libwavpack encoder to be built, unless it is specifically disabled with –disable-encoder=libwavpack.

Note that only the system libraries are auto-detected. All the other external libraries must be explicitly enabled.

Also note that the following help text describes the purpose of the libraries themselves, not all their features will necessarily be usable by FFmpeg.

选项说明
--disable-alsadisable ALSA support [autodetect]
--disable-appkitdisable Apple AppKit framework [autodetect]
--disable-avfoundationdisable Apple AVFoundation framework [autodetect]
--enable-avisynthenable reading of AviSynth script files [no]
--disable-bzlibdisable bzlib [autodetect]
--disable-coreimagedisable Apple CoreImage framework [autodetect]
--enable-chromaprintenable audio fingerprinting with chromaprint [no]
--enable-frei0renable frei0r video filtering [no]
--enable-gcryptenable gcrypt, needed for rtmp(t)e supportif openssl, librtmp or gmp is not used [no]
--enable-gmpenable gmp, needed for rtmp(t)e supportif openssl or librtmp is not used [no]
--enable-gnutlsenable gnutls, needed for https supportif openssl, libtls or mbedtls is not used [no]
--disable-iconvdisable iconv [autodetect]
--enable-jnienable JNI support [no]
--enable-ladspaenable LADSPA audio filtering [no]
--enable-libaomenable AV1 video encoding/decoding via libaom [no]
--enable-libaribb24enable ARIB text and caption decoding via libaribb24 [no]
--enable-libassenable libass subtitles rendering,needed for subtitles and ass filter [no]
--enable-libblurayenable BluRay reading using libbluray [no]
--enable-libbs2benable bs2b DSP library [no]
--enable-libcacaenable textual display using libcaca [no]
--enable-libceltenable CELT decoding via libcelt [no]
--enable-libcdioenable audio CD grabbing with libcdio [no]
--enable-libcodec2enable codec2 en/decoding using libcodec2 [no]
--enable-libdav1denable AV1 decoding via libdav1d [no]
--enable-libdavs2enable AVS2 decoding via libdavs2 [no]
--enable-libdc1394enable IIDC-1394 grabbing using libdc1394and libraw1394 [no]
--enable-libfdk-aacenable AAC de/encoding via libfdk-aac [no]
--enable-libfliteenable flite (voice synthesis) support via libflite [no]
--enable-libfontconfigenable libfontconfig, useful for drawtext filter [no]
--enable-libfreetypeenable libfreetype, needed for drawtext filter [no]
--enable-libfribidienable libfribidi, improves drawtext filter [no]
--enable-libgmeenable Game Music Emu via libgme [no]
--enable-libgsmenable GSM de/encoding via libgsm [no]
--enable-libiec61883enable iec61883 via libiec61883 [no]
--enable-libilbcenable iLBC de/encoding via libilbc [no]
--enable-libjackenable JACK audio sound server [no]
--enable-libklvancenable Kernel Labs VANC processing [no]
--enable-libkvazaarenable HEVC encoding via libkvazaar [no]
--enable-liblensfunenable lensfun lens correction [no]
--enable-libmodplugenable ModPlug via libmodplug [no]
--enable-libmp3lameenable MP3 encoding via libmp3lame [no]
--enable-libopencore-amrnbenable AMR-NB de/encoding via libopencore-amrnb [no]
--enable-libopencore-amrwbenable AMR-WB decoding via libopencore-amrwb [no]
--enable-libopencvenable video filtering via libopencv [no]
--enable-libopenh264enable H.264 encoding via OpenH264 [no]
--enable-libopenjpegenable JPEG 2000 de/encoding via OpenJPEG [no]
--enable-libopenmptenable decoding tracked files via libopenmpt [no]
--enable-libopusenable Opus de/encoding via libopus [no]
--enable-libpulseenable Pulseaudio input via libpulse [no]
--enable-librav1eenable AV1 encoding via rav1e [no]
--enable-librsvgenable SVG rasterization via librsvg [no]
--enable-librubberbandenable rubberband needed for rubberband filter [no]
--enable-librtmpenable RTMP[E] support via librtmp [no]
--enable-libshineenable fixed-point MP3 encoding via libshine [no]
--enable-libsmbclientenable Samba protocol via libsmbclient [no]
--enable-libsnappyenable Snappy compression, needed for hap encoding [no]
--enable-libsoxrenable Include libsoxr resampling [no]
--enable-libspeexenable Speex de/encoding via libspeex [no]
--enable-libsrtenable Haivision SRT protocol via libsrt [no]
--enable-libsshenable SFTP protocol via libssh [no]
--enable-libtensorflowenable TensorFlow as a DNN module backendfor DNN based filters like sr [no]
--enable-libtesseractenable Tesseract, needed for ocr filter [no]
--enable-libtheoraenable Theora encoding via libtheora [no]
--enable-libtlsenable LibreSSL (via libtls), needed for https supportif openssl, gnutls or mbedtls is not used [no]
--enable-libtwolameenable MP2 encoding via libtwolame [no]
--enable-libv4l2enable libv4l2/v4l-utils [no]
--enable-libvidstabenable video stabilization using vid.stab [no]
--enable-libvmafenable vmaf filter via libvmaf [no]
--enable-libvo-amrwbencenable AMR-WB encoding via libvo-amrwbenc [no]
--enable-libvorbisenable Vorbis en/decoding via libvorbis,native implementation exists [no]
--enable-libvpxenable VP8 and VP9 de/encoding via libvpx [no]
--enable-libwavpackenable wavpack encoding via libwavpack [no]
--enable-libwebpenable WebP encoding via libwebp [no]
--enable-libx264enable H.264 encoding via x264 [no]
--enable-libx265enable HEVC encoding via x265 [no]
--enable-libxavsenable AVS encoding via xavs [no]
--enable-libxavs2enable AVS2 encoding via xavs2 [no]
--enable-libxcbenable X11 grabbing using XCB [autodetect]
--enable-libxcb-shmenable X11 grabbing shm communication [autodetect]
--enable-libxcb-xfixesenable X11 grabbing mouse rendering [autodetect]
--enable-libxcb-shapeenable X11 grabbing shape rendering [autodetect]
--enable-libxvidenable Xvid encoding via xvidcore,native MPEG-4/Xvid encoder exists [no]
--enable-libxml2enable XML parsing using the C library libxml2, neededfor dash demuxing support [no]
--enable-libzimgenable z.lib, needed for zscale filter [no]
--enable-libzmqenable message passing via libzmq [no]
--enable-libzvbienable teletext support via libzvbi [no]
--enable-lv2enable LV2 audio filtering [no]
--disable-lzmadisable lzma [autodetect]
--enable-decklinkenable Blackmagic DeckLink I/O support [no]
--enable-mbedtlsenable mbedTLS, needed for https supportif openssl, gnutls or libtls is not used [no]
--enable-mediacodecenable Android MediaCodec support [no]
--enable-libmysofaenable libmysofa, needed for sofalizer filter [no]
--enable-openalenable OpenAL 1.1 capture support [no]
--enable-openclenable OpenCL processing [no]
--enable-openglenable OpenGL rendering [no]
--enable-opensslenable openssl, needed for https supportif gnutls, libtls or mbedtls is not used [no]
--enable-pocketsphinxenable PocketSphinx, needed for asr filter [no]
--disable-sndiodisable sndio support [autodetect]
--disable-schanneldisable SChannel SSP, needed for TLS support onWindows if openssl and gnutls are not used [autodetect]
--disable-sdl2disable sdl2 [autodetect]
--disable-securetransportdisable Secure Transport, needed for TLS supporton OSX if openssl and gnutls are not used [autodetect]
--enable-vapoursynthenable VapourSynth demuxer [no]
--disable-xlibdisable xlib [autodetect]
--disable-zlibdisable zlib [autodetect]

The following libraries provide various hardware acceleration features:

选项说明
--disable-amfdisable AMF video encoding code [autodetect]
--disable-audiotoolboxdisable Apple AudioToolbox code [autodetect]
--enable-cuda-nvccenable Nvidia CUDA compiler [no]
--disable-cuda-llvmdisable CUDA compilation using clang [autodetect]
--disable-cuviddisable Nvidia CUVID support [autodetect]
--disable-d3d11vadisable Microsoft Direct3D 11 video acceleration code [autodetect]
--disable-dxva2disable Microsoft DirectX 9 video acceleration code [autodetect]
--disable-ffnvcodecdisable dynamically linked Nvidia code [autodetect]
--enable-libdrmenable DRM code (Linux) [no]
--enable-libmfxenable Intel MediaSDK (AKA Quick Sync Video) code via libmfx [no]
--enable-libnppenable Nvidia Performance Primitives-based code [no]
--enable-mmalenable Broadcom Multi-Media Abstraction Layer (Raspberry Pi) via MMAL [no]
--disable-nvdecdisable Nvidia video decoding acceleration (via hwaccel) [autodetect]
--disable-nvencdisable Nvidia video encoding code [autodetect]
--enable-omxenable OpenMAX IL code [no]
--enable-omx-rpienable OpenMAX IL code for Raspberry Pi [no]
--enable-rkmppenable Rockchip Media Process Platform code [no]
--disable-v4l2-m2mdisable V4L2 mem2mem code [autodetect]
--disable-vaapidisable Video Acceleration API (mainly Unix/Intel) code [autodetect]
--disable-vdpaudisable Nvidia Video Decode and Presentation API for Unix code [autodetect]
--disable-videotoolboxdisable VideoToolbox code [autodetect]

Toolchain options:

选项说明
--arch=ARCHselect architecture []
--cpu=CPUselect the minimum required CPU (affectsinstruction selection, may crash on older CPUs)
--cross-prefix=PREFIXuse PREFIX for compilation tools []
--progs-suffix=SUFFIXprogram name suffix []
--enable-cross-compileassume a cross-compiler is used
--sysroot=PATHroot of cross-build tree
--sysinclude=PATHlocation of cross-build system headers
--target-os=OScompiler targets OS []
--target-exec=CMDcommand to run executables on target
--target-path=DIRpath to view of build directory on target
--target-samples=DIRpath to samples directory on target
--tempprefix=PATHforce fixed dir/prefix instead of mktemp for checks
--toolchain=NAMEset tool defaults according to NAME(gcc-asan, clang-asan, gcc-msan, clang-msan,gcc-tsan, clang-tsan, gcc-usan, clang-usan,valgrind-massif, valgrind-memcheck,msvc, icl, gcov, llvm-cov, hardened)
--nm=NMuse nm tool NM [nm -g]
--ar=ARuse archive tool AR [ar]
--as=ASuse assembler AS []
--ln_s=LN_Suse symbolic link tool LN_S [ln -s -f]
--strip=STRIPuse strip tool STRIP [strip]
--windres=WINDRESuse windows resource compiler WINDRES [windres]
--x86asmexe=EXEuse nasm-compatible assembler EXE [nasm]
--cc=CCuse C compiler CC [gcc]
--cxx=CXXuse C compiler CXX [g++]
--objcc=OCCuse ObjC compiler OCC [gcc]
--dep-cc=DEPCCuse dependency generator DEPCC [gcc]
--nvcc=NVCCuse Nvidia CUDA compiler NVCC or clang []
--ld=LDuse linker LD []
--pkg-config=PKGCONFIGuse pkg-config tool PKGCONFIG [pkg-config]
--pkg-config-flags=FLAGSpass additional flags to pkgconf []
--ranlib=RANLIBuse ranlib RANLIB [ranlib]
--doxygen=DOXYGENuse DOXYGEN to generate API doc [doxygen]
--host-cc=HOSTCCuse host C compiler HOSTCC
--host-cflags=HCFLAGSuse HCFLAGS when compiling for host
--host-cppflags=HCPPFLAGSuse HCPPFLAGS when compiling for host
--host-ld=HOSTLDuse host linker HOSTLD
--host-ldflags=HLDFLAGSuse HLDFLAGS when linking for host
--host-extralibs=HLIBSuse libs HLIBS when linking for host
--host-os=OScompiler host OS []
--extra-cflags=ECFLAGSadd ECFLAGS to CFLAGS []
--extra-cxxflags=ECFLAGSadd ECFLAGS to CXXFLAGS []
--extra-objcflags=FLAGSadd FLAGS to OBJCFLAGS []
--extra-ldflags=ELDFLAGSadd ELDFLAGS to LDFLAGS []
--extra-ldexeflags=ELDFLAGSadd ELDFLAGS to LDEXEFLAGS []
--extra-ldsoflags=ELDFLAGSadd ELDFLAGS to LDSOFLAGS []
--extra-libs=ELIBSadd ELIBS []
--extra-version=STRINGversion string suffix []
--optflags=OPTFLAGSoverride optimization-related compiler flags
--nvccflags=NVCCFLAGSoverride nvcc flags []
--build-suffix=SUFFIXlibrary name suffix []
--enable-picbuild position-independent code
--enable-thumbcompile for Thumb instruction set
--enable-ltouse link-time optimization
--env="ENV=override"override the environment variables

Advanced options (experts only):

选项说明
--malloc-prefix=PREFIXprefix malloc and related names with PREFIX
--custom-allocator=NAMEuse a supported custom allocator
--disable-symverdisable symbol versioning
--enable-hardcoded-tablesuse hardcoded tables instead of runtime generation
--disable-safe-bitstream-readerdisable buffer boundary checking in bitreaders(faster, but may crash)
--sws-max-filter-size=Nthe max filter size swscale uses [256]

Optimization options (experts only):

选项说明
--disable-asmdisable all assembly optimizations
--disable-altivecdisable AltiVec optimizations
--disable-vsxdisable VSX optimizations
--disable-power8disable POWER8 optimizations
--disable-amd3dnowdisable 3DNow! optimizations
--disable-amd3dnowextdisable 3DNow! extended optimizations
--disable-mmxdisable MMX optimizations
--disable-mmxextdisable MMXEXT optimizations
--disable-ssedisable SSE optimizations
--disable-sse2disable SSE2 optimizations
--disable-sse3disable SSE3 optimizations
--disable-ssse3disable SSSE3 optimizations
--disable-sse4disable SSE4 optimizations
--disable-sse42disable SSE4.2 optimizations
--disable-avxdisable AVX optimizations
--disable-xopdisable XOP optimizations
--disable-fma3disable FMA3 optimizations
--disable-fma4disable FMA4 optimizations
--disable-avx2disable AVX2 optimizations
--disable-avx512disable AVX-512 optimizations
--disable-aesnidisable AESNI optimizations
--disable-armv5tedisable armv5te optimizations
--disable-armv6disable armv6 optimizations
--disable-armv6t2disable armv6t2 optimizations
--disable-vfpdisable VFP optimizations
--disable-neondisable NEON optimizations
--disable-inline-asmdisable use of inline assembly
--disable-x86asmdisable use of standalone x86 assembly
--disable-mipsdspdisable MIPS DSP ASE R1 optimizations
--disable-mipsdspr2disable MIPS DSP ASE R2 optimizations
--disable-msadisable MSA optimizations
--disable-msa2disable MSA2 optimizations
--disable-mipsfpudisable floating point MIPS optimizations
--disable-mmidisable Loongson SIMD optimizations
--disable-fast-unalignedconsider unaligned accesses slow

Developer options (useful when working on FFmpeg itself):

选项说明
--disable-debugdisable debugging symbols
--enable-debug=LEVELset the debug level []
--disable-optimizationsdisable compiler optimizations
--enable-extra-warningsenable more compiler warnings
--disable-strippingdisable stripping of executables and shared libraries
--assert-level=level0(default), 1 or 2, amount of assertion testing,2 causes a slowdown at runtime.
--enable-memory-poisoningfill heap uninitialized allocated space with arbitrary data
--valgrind=VALGRINDrun “make fate” tests through valgrind to detect memoryleaks and errors, using the specified valgrind binary.Cannot be combined with –target-exec
--enable-ftrapvTrap arithmetic overflows
--samples=PATHlocation of test samples for FATE, if not set use$FATE_SAMPLES at make invocation time.
--enable-neon-clobber-testcheck NEON registers for clobbering (should beused only for debugging purposes)
--enable-xmm-clobber-testcheck XMM registers for clobbering (Win64-only;should be used only for debugging purposes)
--enable-randomrandomly enable/disable components
--disable-random
--enable-random=LISTrandomly enable/disable specific components or
--disable-random=LISTcomponent groups. LIST is a comma-separated listof NAME[:PROB] entries where NAME is a component(group) and PROB the probability associated withNAME (default 0.5).
--random-seed=VALUEseed value for –enable/disable-random
--disable-valgrind-backtracedo not print a backtrace under Valgrind(only applies to –disable-optimizations builds)
--enable-ossfuzzEnable building fuzzer tool
--libfuzzer=PATHpath to libfuzzer
--ignore-tests=TESTScomma-separated list (without “fate-” prefixin the name) of tests whose result is ignored
--enable-linux-perfenable Linux Performance Monitor API

NOTE: Object files are built at the place where configure is launched.


辽ICP备2021007608号 | © 2025 | kaisawind

Facebook Twitter GitHub