Skip to content

ffmpeg_options.txt

RiCON edited this page May 18, 2016 · 19 revisions

FFMpeg configure options and what do they add

Most external libraries manually turned on configuration time are only actually needed for encoding or certain filters.

External libraries needed for basic support of formats (decoding)

Can be removed if format support is not needed

  • --enable-schannel (enabled by default) (needed for https support)
  • alternative is --enable-gnutls or --enable-openssl but the latter needs --enable-nonfree since it has a license incompatible with GPL
  • --enable-libilbc (needed for iLBC decoding support)
  • --enable-libmfx (needed for Intel QuickSync encoding/decoding)
  • --enable-libopencore-amrnb and --enable-libopencore-amrwb (AMR codecs support)
  • FFmpeg has a native decoder for both variants
  • --enable-libopenjpeg (JPEG 2000/J2K video support)
  • FFmpeg has a native decoder and encoder
  • --enable-libspeex (needed for speex support)
  • --enable-libutvideo (UtVideo support)
  • FFmpeg has a compliant and faster native decoder and encoder but lacks assembly optimizations and 10-bit support
  • --enable-libwavpack (alternative WavPack encoder/decoder)
  • FFmpeg has a native decoder and encoder but is probably slower
  • --enable-nvenc (needed for Nvidia hardware encoding)

External libraries needed for encoding

Can be removed if encoding for these formats is not needed since FFmpeg has a native decoder for them

  • --enable-libfaac (Mediocre quality AAC encoder)
  • Also compiles faac standalone encoder if standalone=y
  • needs --enable-nonfree
  • --enable-libfdk-aac (High quality AAC encoder that supports LC and HE profiles)
  • Also compiles fdk-aac standalone encoder if standalone=y
  • needs --enable-nonfree
  • FFmpeg's native encoder is considered better or as good from 96kbps onward, but it still has no support for HE profiles
  • --enable-libgsm (GSM encoder)
  • --enable-libkvazaar (HEVC encoder)
  • Also compiles kvazaar standalone encoder if standalone=y
  • --enable-libmp3lame (MP3 encoder)
  • Also compiles lame standalone encoder if standalone=y
  • --enable-libopencore-amrnb (AMR Narrowband encoder)
  • --enable-libopus (Opus encoder)
  • Also compiles opus standalone tools if standalone=y
  • --enable-libschroedinger (Dirac encoder)
  • --enable-libsnappy (Snappy compressor needed for Hap encoding)
  • --enable-libtheora (Theora encoder)
  • --enable-libtwolame (MP2 encoder)
  • --enable-libvo-amrwbenc (AMR Wideband encoder)
  • --enable-libvorbis (Vorbis encoder)
  • Also compiles Vorbis standalone tools if standalone=y
  • consider using --disable-encoder=vorbis if using this since FFmpeg's native encoder is quite primitive
  • --enable-libvpx (Google VP8/VP9 encoder)
  • --enable-libwebp (WebP encoder)
  • Also compiles WebP standalone tools if standalone=y
  • --enable-libx264 (H.264/AVC encoder)
  • --enable-libx265 (HEVC encoder)
  • --enable-libxavs (XAVS encoder)
  • --enable-libxvid (MPEG-4/XviD encoder)
  • FFmpeg's native mpeg4 encoder is high quality too so this isn't needed

Libraries needed for filters/devices/protocols

All can be removed from ffmpeg_options.txt if not needed

  • --enable-frei0r (frei0r filter)
  • --enable-libass (ass and subtitles filters and subtitle support in mplayer/mpv)
  • Note: libass is always enabled when compiling mplayer and mpv since it's essential in most cases
  • --enable-libbs2b (bs2b filter)
  • --enable-libebur128 (loudnorm filter)
  • --enable-libfreetype (drawtext filter)
  • --enable-fontconfig to enable font fallback and font option
  • --enable-libfribidi to enable text_shaping option (needed for bidirectional text)
  • --enable-librubberband (rubberband filter)
  • --enable-libtesseract (ocr filter)
  • Also compiles standalone tesseract.exe and downloads trained data for English if standalone=y
  • --enable-libvidstab (vidstabdetect and vidstabtransform filters)
  • --enable-libzimg (zscale filter)
  • --enable-libbluray (bluray protocol)
  • --enable-librtmp (rtmp protocol)
  • FFmpeg has native support for the same protocols as librtmp
    • native rtmp(t)e needs --enable-gmp or --enable-gcrypt if using GnuTLS or SChannel
  • --enable-libssh (sftp protocol)
  • --enable-decklink (decklink IO device)
  • --enable-libcaca (caca output device)
  • --enable-libcdio (libcdio input device and Audio CD support in mplayer and mpv)
  • --enable-opencl (enables opencl optimizations in deshake and unsharp)
  • --enable-opengl (OpenGL output device)
  • --enable-sdl (SDL output device and ffplay.exe)
  • Enabled by default, needs --disable-sdl to be disabled
  • --enable-libsoxr (alternative resampler engine for swresample)

Libraries needed for special formats

All can be removed from ffmpeg_options.txt if not needed

  • --enable-libgme (needed for Game Music Emu demuxer)
  • --enable-libmodplug (needed for libmodplug demuxer)
  • --enable-libzvbi (needed for decoding DVB teletext)
Clone this wiki locally