@item American Laser Games MM @tab @tab X
@tab Multimedia format used in games like Mad Dog McCree.
@item 3GPP AMR @tab X @tab X
+@item Apple HTTP Live Streaming @tab @tab X
@item ASF @tab X @tab X
@item AVI @tab X @tab X
@item AVISynth @tab @tab X
@tab Format used in various Interplay computer games.
@item IV8 @tab @tab X
@tab A format generated by IndigoVision 8000 video server.
+@item IVF (On2) @tab @tab X
+ @tab A format used by libvpx
@item LMLM4 @tab @tab X
@tab Used by Linux Media Labs MPEG-4 PCI boards
+@item LXF @tab @tab X
+ @tab VR native stream format, used by Leitch/Harris' video servers.
@item Matroska @tab X @tab X
@item Matroska audio @tab X @tab
@item MAXIS XA @tab @tab X
@item QCP @tab @tab X
@item raw ADTS (AAC) @tab X @tab X
@item raw AC-3 @tab X @tab X
-@item raw Chinese AVS video @tab @tab X
+@item raw Chinese AVS video @tab X @tab X
@item raw CRI ADX @tab X @tab X
@item raw Dirac @tab X @tab X
@item raw DNxHD @tab X @tab X
@item RL2 @tab @tab X
@tab Audio and video format used in some games by Entertainment Software Partners.
@item RPL/ARMovie @tab @tab X
+@item Lego Mindstorms RSO @tab X @tab X
@item RTMP @tab X @tab X
@tab Output is performed by publishing stream to RTMP server
-@item RTP @tab @tab X
+@item RTP @tab X @tab X
@item RTSP @tab X @tab X
+@item SAP @tab X @tab X
@item SDP @tab @tab X
@item Sega FILM/CPK @tab @tab X
@tab Used in many Sega Saturn console games.
@item Sony Wave64 (W64) @tab @tab X
@item SoX native format @tab X @tab X
@item SUN AU format @tab X @tab X
+@item Text files @tab @tab X
@item THP @tab @tab X
@tab Used on the Nintendo GameCube.
@item Tiertex Limited SEQ @tab @tab X
@item VC-1 test bitstream @tab X @tab X
@item WAV @tab X @tab X
@item WavPack @tab @tab X
+@item WebM @tab X @tab X
@item Wing Commander III movie @tab @tab X
@tab Multimedia format used in Origin's Wing Commander III computer game.
@item Westwood Studios audio @tab @tab X
@item Westwood Studios VQA @tab @tab X
@tab Multimedia format used in Westwood Studios games.
@item YUV4MPEG pipe @tab X @tab X
+@item Psygnosis YOP @tab @tab X
@end multitable
@code{X} means that encoding (resp. decoding) is supported.
@tab Portable GrayMap image
@item PGMYUV @tab X @tab X
@tab PGM with U and V components in YUV 4:2:0
+@item PIC @tab @tab X
+ @tab Pictor/PC Paint
@item PNG @tab X @tab X
@tab 2/4 bpp not supported yet
@item PPM @tab X @tab X
@item 8088flex TMV @tab @tab X
@item 8SVX exponential @tab @tab X
@item 8SVX fibonacci @tab @tab X
+@item A64 multicolor @tab X @tab
+ @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
@item American Laser Games MM @tab @tab X
@tab Used in games like Mad Dog McCree.
@item AMV Video @tab @tab X
@tab Used in Chinese MP3 players.
+@item ANSI/ASCII art @tab @tab X
@item Apple MJPEG-B @tab @tab X
@item Apple QuickDraw @tab @tab X
@tab fourcc: qdrw
@tab fourcc: CSCD
@item CD+G @tab @tab X
@tab Video codec for CD+G karaoke disks
-@item Chinese AVS video @tab @tab X
- @tab AVS1-P2, JiZhun profile
+@item Chinese AVS video @tab E @tab X
+ @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
@item Delphine Software International CIN video @tab @tab X
@tab Codec used in Delphine Software International games.
@item Cinepak @tab @tab X
@item MPEG-2 video @tab X @tab X
@item MPEG-4 part 2 @tab X @tab X
@ libxvidcore can be used alternatively for encoding.
-@item MPEG-4 part 2 Microsoft variant version 1 @tab X @tab X
+@item MPEG-4 part 2 Microsoft variant version 1 @tab @tab X
@item MPEG-4 part 2 Microsoft variant version 2 @tab X @tab X
@item MPEG-4 part 2 Microsoft variant version 3 @tab X @tab X
@item Nintendo Gamecube THP video @tab @tab X
@tab fourcc: VP50
@item On2 VP6 @tab @tab X
@tab fourcc: VP60,VP61,VP62
+@item VP8 @tab E @tab X
+ @tab fourcc: VP80, encoding supported through external library libvpx
@item planar RGB @tab @tab X
@tab fourcc: 8BPS
@item Q-team QPEG @tab @tab X
@tab fourcc: 'smc '
@item QuickTime video (RPZA) @tab @tab X
@tab fourcc: rpza
+@item R10K AJA Kona 10-bit RGB Codec @tab @tab X
@item R210 Quicktime Uncompressed RGB 10-bit @tab @tab X
@item Raw Video @tab X @tab X
@item RealVideo 1.0 @tab X @tab X
@item Winnov WNV1 @tab @tab X
@item WMV7 @tab X @tab X
@item YAMAHA SMAF @tab X @tab X
+@item Psygnosis YOP Video @tab @tab X
@item ZLIB @tab X @tab X
@tab part of LCL, encoder experimental
@item Zip Motion Blocks Video @tab X @tab X
@item ADPCM Electronic Arts R2 @tab @tab X
@item ADPCM Electronic Arts R3 @tab @tab X
@item ADPCM Electronic Arts XAS @tab @tab X
+@item ADPCM G.722 @tab X @tab X
@item ADPCM G.726 @tab X @tab X
@item ADPCM IMA AMV @tab @tab X
@tab Used in AMV files
@item Enhanced AC-3 @tab @tab X
@item FLAC (Free Lossless Audio Codec) @tab X @tab IX
@item G.729 @tab @tab X
-@item GSM @tab E @tab E
- @tab supported through external library libgsm
-@item GSM Microsoft variant @tab E @tab E
- @tab supported through external library libgsm
+@item GSM @tab E @tab X
+ @tab encoding supported through external library libgsm
+@item GSM Microsoft variant @tab E @tab X
+ @tab encoding supported through external library libgsm
@item IMC (Intel Music Coder) @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 3:1 @tab @tab X
@item MACE (Macintosh Audio Compression/Expansion) 6:1 @tab @tab X
@item QCELP / PureVoice @tab @tab X
@item QDesign Music Codec 2 @tab @tab X
@tab There are still some distortions.
-@item RealAudio 1.0 (14.4K) @tab @tab X
+@item RealAudio 1.0 (14.4K) @tab X @tab X
@tab Real 14400 bit/s codec
@item RealAudio 2.0 (28.8K) @tab @tab X
@tab Real 28800 bit/s codec
@item DVB @tab X @tab X @tab X @tab X
@item DVD @tab X @tab X @tab X @tab X
@item PGS @tab @tab @tab @tab X
+@item SubRip (SRT) @tab X @tab X
@item XSUB @tab @tab @tab X @tab X
@end multitable
@item file @tab X
@item Gopher @tab X
@item HTTP @tab X
+@item MMS @tab X
@item pipe @tab X
@item RTP @tab X
@item TCP @tab X
@multitable @columnfractions .4 .1 .1
@item Name @tab Input @tab Output
@item ALSA @tab X @tab X
-@item BEOS audio @tab X @tab X
@item BKTR @tab X @tab
@item DV1394 @tab X @tab
@item JACK @tab X @tab
@chapter Platform Specific information
-@section BeOS
+@section DOS
-BeOS support is broken in mysterious ways.
+Using a cross-compiler is preferred for various reasons.
-@section BSD
+@subsection DJGPP
+
+FFmpeg cannot be compiled because of broken system headers, add
+@code{--extra-cflags=-U__STRICT_ANSI__} to the configure options as a
+workaround.
+
+@section OS/2
+
+For information about compiling FFmpeg on OS/2 see
+@url{http://www.edm2.com/index.php/FFmpeg}.
+
+@section Unix-like
+
+Some parts of FFmpeg cannot be built with version 2.15 of the GNU
+assembler which is still provided by a few AMD64 distributions. To
+make sure your compiler really uses the required version of gas
+after a binutils upgrade, run:
+
+@example
+$(gcc -print-prog-name=as) --version
+@end example
+
+If not, then you should install a different compiler that has no
+hard-coded path to gas. In the worst case pass @code{--disable-asm}
+to configure.
+
+@subsection BSD
BSD make will not build FFmpeg, you need to install and use GNU Make
(@file{gmake}).
-@subsection FreeBSD
+@subsubsection FreeBSD
FreeBSD will not compile out-of-the-box due to broken system headers.
Passing @code{--extra-cflags=-D__BSD_VISIBLE} to configure will work
your own risk. If you care about FreeBSD, please make an attempt at
getting the system headers fixed.
-@section OS/2
+@subsection (Open)Solaris
-For information about compiling FFmpeg on OS/2 see
-@url{http://www.edm2.com/index.php/FFmpeg}.
+GNU Make is required to build FFmpeg, so you have to invoke (@file{gmake}),
+standard Solaris Make will not work. When building with a non-c99 front-end
+(gcc, generic suncc) add either @code{--extra-libs=/usr/lib/values-xpg6.o}
+or @code{--extra-libs=/usr/lib/64/values-xpg6.o} to the configure options
+since the libc is not c99-compliant by default. The probes performed by
+configure may raise an exception leading to the death of configure itself
+due to a bug in the system shell. Simply invoke a different shell such as
+bash directly to work around this:
+
+@example
+bash ./configure
+@end example
+
+@subsection Darwin (MacOS X, iPhone)
+
+MacOS X on PowerPC or ARM (iPhone) requires a preprocessor from
+@url{http://github.com/yuvi/gas-preprocessor} to build the optimized
+assembler functions. Just download the Perl script and put it somewhere
+in your PATH, FFmpeg's configure will pick it up automatically.
@section Windows
the static libraries, as described above. But in Step 4,
you should only need to add the directory where the LIB files are installed
(i.e. @file{c:\msys\usr\local\bin}). This is not a typo, the LIB files are
-installed in the @file{bin} directory. And instead of adding @file{libxx.a}
-files, you should add @file{avcodec.lib}, @file{avformat.lib}, and
-@file{avutil.lib}. There should be no need for @file{libmingwex.a},
+installed in the @file{bin} directory. And instead of adding the static
+libraries (@file{libxxx.a} files) you should add the MSVC import libraries
+(@file{avcodec.lib}, @file{avformat.lib}, @file{avcore.lib}, and
+@file{avutil.lib}). Note that you should not use the GCC import
+libraries (@file{libxxx.dll.a} files), as these will give you undefined
+reference errors. There should be no need for @file{libmingwex.a},
@file{libgcc.a}, and @file{wsock32.lib}, nor any other external library
statically linked into the DLLs. The @file{bin} directory contains a bunch
of DLL files, but the ones that are actually used to run your application
are the ones with a major version number in their filenames
(i.e. @file{avcodec-51.dll}).
+FFmpeg headers do not declare global data for Windows DLLs through the usual
+dllexport/dllimport interface. Such data will be exported properly while
+building, but to use them in your MSVC++ code you will have to edit the
+appropriate headers and mark the data as dllimport. For example, in
+libavutil/pixdesc.h you should have:
+@example
+extern __declspec(dllimport) const AVPixFmtDescriptor av_pix_fmt_descriptors[];
+@end example
+
@subsection Cross compilation for Windows with Linux
You must use the MinGW cross compilation tools available at
(@url{http://sourceware.org/cygwinports/}) :
@example
-yasm, libSDL-devel, libdirac-devel, libfaac-devel, libfaad-devel, libgsm-devel,
+yasm, libSDL-devel, libdirac-devel, libfaac-devel, libgsm-devel,
libmp3lame-devel, libschroedinger1.0-devel, speex-devel, libtheora-devel,
libxvidcore-devel
@end example