@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 Matroska @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 RTSP @tab @tab X
+@item RTSP @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
@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 Used in Interplay .MVE files.
@item Karl Morton's video codec @tab @tab X
@tab Codec used in Worms games.
+@item Kega Game Video (KGV1) @tab @tab X
+ @tab Kega emulator screen capture codec.
@item LCL (LossLess Codec Library) MSZH @tab @tab X
@item LCL (LossLess Codec Library) ZLIB @tab E @tab E
@item LOCO @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
@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 Westwood Studios IMA @tab @tab X
@tab Used in Westwood Studios games like Command and Conquer.
@item ADPCM Yamaha @tab X @tab X
-@item AMR-NB @tab E @tab E
- @tab supported through external library libopencore-amrnb
+@item AMR-NB @tab E @tab X
+ @tab encoding supported through external library libopencore-amrnb
@item AMR-WB @tab @tab E
@tab decoding supported through external library libopencore-amrwb
@item Apple lossless audio @tab X @tab X
@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
@tab Used in HD-DVD and Blu-Ray discs.
@item TwinVQ (VQF flavor) @tab @tab X
@item Vorbis @tab E @tab X
- @ A native but very primitive encoder exists.
+ @tab A native but very primitive encoder exists.
@item WavPack @tab @tab X
@item Westwood Audio (SND1) @tab @tab X
@item Windows Media Audio 1 @tab X @tab X
@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 BSD
+@section DOS
+
+Using a cross-compiler is preferred for various reasons.
+
+@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}).
+@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
+around the problem. This may have unexpected sideeffects, so use it at
+your own risk. If you care about FreeBSD, please make an attempt at
+getting the system headers fixed.
+
+@subsection (Open)Solaris
+
+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.
+
@section Windows
To get help and instructions for building FFmpeg under Windows, check out
@subsection Compilation under Cygwin
-The main issue with the 1.5.x Cygwin versions is that newlib, its C library,
-does not contain llrint(). You need to upgrade to the unstable 1.7.x versions,
-or leverage the implementation in MinGW (as explained below).
+Please use Cygwin 1.7.x as the obsolete 1.5.x Cygwin versions lack
+llrint() in its C library.
-Just install your Cygwin with all the "Base" packages, plus the
+Install your Cygwin with all the "Base" packages, plus the
following "Devel" ones:
@example
-binutils, gcc-core, make, subversion, mingw-runtime
+binutils, gcc4-core, make, subversion, mingw-runtime, texi2html
@end example
And the following "Utils" one:
diffutils
@end example
-The experimental gcc4 package is still buggy, hence please
-use the official gcc 3.4.4 or a 4.2.x compiled from source by yourself.
-
-Install the current binutils-20080624-2 as they work fine (the old
-binutils-20060709-1 proved buggy on shared builds).
-
-Then create a small library that just contains llrint():
-
-@example
-ar x /usr/lib/mingw/libmingwex.a llrint.o
-ar cq /usr/local/lib/libllrint.a llrint.o
-@end example
-
Then run
@example
-./configure --enable-static --disable-shared --extra-ldflags='-L /usr/local/lib' --extra-libs='-l llrint'
+./configure --enable-static --disable-shared
@end example
-to make a static build or
+to make a static build.
+
+The current @code{gcc4-core} package is buggy and needs this flag to build
+shared libraries:
@example
-./configure --enable-shared --disable-static --extra-ldflags='-L /usr/local/lib' --extra-libs='-l llrint'
+./configure --enable-shared --disable-static --extra-cflags=-fno-reorder-functions
@end example
-to build shared libraries.
-
If you want to build FFmpeg with additional libraries, download Cygwin
"Devel" packages for Ogg and Vorbis from any Cygwin packages repository:
@example
(@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
./configure --target-os=mingw32 --enable-memalign-hack --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
@end example
-@section BeOS
-
-BeOS support is broken in mysterious ways.
-
-@section OS/2
-
-For information about compiling FFmpeg on OS/2 see
-@url{http://www.edm2.com/index.php/FFmpeg}.
-
@bye