Skip to content

ffmpeg_options.txt

Ricardo Constantino edited this page Jan 24, 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-gnutls (needed for https support)
  • alternatively there's --enable-openssl but needs --enable-nonfree since it has a license incompatible with GPL
  • if neither are used, SChannel (Microsoft's implementation of TLS) will be used instead.
  • --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 (Mediocre quality AAC encoder)
  • Also compiles faac standalone encoder
  • needs --enable-nonfree
  • --enable-libfdk-aac (High quality AAC encoder that supports LC and HE profiles)
  • Also compiles fdk-aac standalone encoder
  • 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
  • --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-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 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

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