Skip to content

ffmpeg_options.txt

Ricardo Constantino edited this page Nov 28, 2015 · 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-gnutls (needed for https support)
  • alternatively there's --enable-openssl but needs --enable-nonfree since it has a license incompatible with GPL
  • --enable-libdcadec (needed for DTS-HD MA support and other DTS extensions)
  • --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
  • --enable-libwavpack (alternative WavPack encoder/decoder)
  • FFmpeg has a native decoder and encoder
  • --enable-nvenc (needed for Nvidia hardware encoding)
  • needs --enable-nonfree

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 (Good quality AAC encoder)
  • Also compiles faac standalone encoder
  • needs --enable-nonfree
  • --enable-libfdk-aac (Highest quality AAC encoder that supports LC and HE profiles)
  • Also compiles fdk-aac standalone encoder
  • needs --enable-nonfree
  • FFmpeg's native encoder is high quality too and soon will no longer need -strict experimental to be used
  • --enable-libgsm (GSM encoder)
  • --enable-libkvazaar (HEVC encoder)
  • Also compiles kvazaar standalone encoder
  • --enable-libmp3lame (MP3 encoder)
  • Also compiles lame standalone encoder
  • --enable-libopencore-amrnb (AMR Narrowband encoder)
  • --enable-libopus (Opus encoder)
  • Also compiles opus standalone tools
  • --enable-libschroedinger (Dirac encoder)
  • --enable-libsnappy (Snappy compressor needed for Hap encoding)
  • --enable-libtheora (Theora encoder)
  • --enable-libtwolame (MP2 encoder)
  • --enable-libvo-aacenc (Very low quality AAC encoder that supports LC and HE profiles)
  • --enable-libvo-amrwbenc (AMR Wideband encoder)
  • --enable-libvorbis (Vorbis encoder)
  • Also compiles Vorbis standalone tools
  • 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
  • --enable-libx264 (H.264/AVC encoder)
  • --enable-libx265 (HEVC encoder)
  • --enable-libxavs (XAVS encoder)
  • --enable-libxvid (MPEG-4/XviD encoder)
  • FFmpeg's native 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-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
  • --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 (rtmp(t)e needs --enable-gmp or --enable-gcrypt)
  • --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