fixing yuv422 -> yuv420p (i need that for the vceq videos ...)
[ffmpeg.git] / doc / ffmpeg-doc.texi
index beb5a9a5ccb743e3ed83a655d8179a679f574327..902a194045636ae8057354f1a38630832f1b76a1 100644 (file)
@@ -35,7 +35,7 @@ video on the fly with a high quality polyphase filter.
   Gerd Knorr which I find very good. You must also set correctly the
   audio recording levels with a standard mixer.
 
-@section Video and Audio file format convertion
+@section Video and Audio file format conversion
 
 * ffmpeg can use any supported file format and protocol as input: 
 
@@ -83,7 +83,7 @@ Examples:
   Convert the audio file a.wav and the raw yuv video file a.yuv
   to mpeg file a.mpg
 
-* You can also do audio and video convertions at the same time:
+* You can also do audio and video conversions at the same time:
 
 @example
   ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
@@ -108,13 +108,13 @@ Examples:
   ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 snatch.avi
 @end example
 
-  This is a typicall DVD ripper example, input from a VOB file, output
+  This is a typical DVD ripper example, input from a VOB file, output
   to an AVI file with MPEG-4 video and MP3 audio, note that in this
   command we use B frames so the MPEG-4 stream is DivX5 compatible, GOP
   size is 300 that means an INTRA frame every 10 seconds for 29.97 fps
   input video.  Also the audio stream is MP3 encoded so you need LAME
   support which is enabled using @code{--enable-mp3lame} when
-  configuring.  The mapping is particullary usefull for DVD transcoding
+  configuring.  The mapping is particularly useful for DVD transcoding
   to get the desired audio language.
 
   NOTE: to see the supported input formats, use @code{ffmpeg -formats}.
@@ -136,7 +136,7 @@ Examples:
   files.
 
   By default, ffmpeg tries to convert as losslessly as possible: it
-  uses the same audio and video parameter fors the outputs as the one
+  uses the same audio and video parameter for the outputs as the one
   specified for the inputs.
 
 @section Main options
@@ -266,8 +266,8 @@ dump video coding statistics to file
 
 @section Protocols
 
-The output file can be "-" to output to a pipe. This is only possible
-with mpeg1 and h263 formats. 
+The filename can be @file{-} to read from the standard input or to write
+to the standard output.
 
 ffmpeg handles also many protocols specified with the URL syntax.
 
@@ -299,7 +299,7 @@ ffmpeg handles also many protocols specified with the URL syntax.
 @item If your computer is not fast enough, you can speed up the
   compression at the expense of the compression ratio. You can use
   '-me zero' to speed up motion estimation, and '-intra' to disable
-  completly motion estimation (you have only I frames, which means it
+  completely motion estimation (you have only I frames, which means it
   is about as good as JPEG compression).
 
 @item To have very low bitrates in audio, reduce the sampling frequency
@@ -321,8 +321,8 @@ You can use the @code{-formats} option to have an exhaustive list.
 
 @section File Formats
 
-FFmpeg supports the following file formats thru the @code{libavformat}
-library.
+FFmpeg supports the following file formats through the @code{libavformat}
+library:
 
 @multitable @columnfractions .4 .1 .1
 @item Supported File Format @tab Encoding @tab Decoding @tab Comments
@@ -339,9 +339,6 @@ library.
 @item Macromedia Flash@tab X @tab X
 @tab Only embedded audio is decoded
 @item Real Audio and Video @tab X @tab X 
-@item PGM, YUV, PPM, JPEG images @tab X @tab X 
-@item Animated GIF @tab X @tab
-@tab Only uncompressed GIFs are generated
 @item Raw AC3 @tab X  @tab  X 
 @item Raw MJPEG @tab X  @tab  X 
 @item Raw MPEG video @tab X  @tab  X 
@@ -350,19 +347,34 @@ library.
 @item Quicktime        @tab   @tab  X 
 @item MPEG4            @tab  @tab  X 
 @tab MPEG4 is a variant of Quicktime
-@item Raw MPEG4 video  @tab  @tab  X 
-@tab Only small files are supported.
+@item Raw MPEG4 video  @tab  X @tab  X 
 @item DV               @tab  @tab X
 @tab Only the video track is decoded.
 @end multitable
 
 @code{X} means that the encoding (resp. decoding) is supported.
 
+@section Image Formats
+
+FFmpeg can read and write images for each frame of a video sequence. The
+following image formats are supported:
+
+@multitable @columnfractions .4 .1 .1
+@item Supported Image Format @tab Encoding @tab Decoding @tab Comments
+@item PGM, PPM     @tab X @tab X 
+@item PGMYUV       @tab X @tab X @tab PGM with U and V components in 420
+@item JPEG         @tab X @tab X @tab Progressive JPEG is not supported
+@item .Y.U.V       @tab X @tab X @tab One raw file per component
+@item Animated GIF @tab X @tab   @tab Only uncompressed GIFs are generated
+@end multitable
+
+@code{X} means that the encoding (resp. decoding) is supported.
+
 @section Video Codecs
 
 @multitable @columnfractions .4 .1 .1 .7
 @item Supported Codec @tab Encoding @tab Decoding @tab Comments
-@item MPEG1 video            @tab  X  @tab  X 
+@item MPEG1 video            @tab  X  @tab  X
 @item MPEG2 video            @tab     @tab  X 
 @item MPEG4                  @tab  X  @tab  X @tab Also known as DIVX4/5
 @item MSMPEG4 V1             @tab  X  @tab  X
@@ -372,6 +384,7 @@ library.
 @item H263(+)                @tab  X  @tab  X @tab Also known as Real Video 1.0
 @item MJPEG                  @tab  X  @tab  X 
 @item DV                     @tab     @tab  X 
+@item Huff YUV               @tab  X  @tab  X
 @end multitable
 
 @code{X} means that the encoding (resp. decoding) is supported.
@@ -386,11 +399,13 @@ solutions.
 @item Supported Codec @tab Encoding @tab Decoding @tab Comments
 @item MPEG audio layer 2     @tab  IX  @tab  IX 
 @item MPEG audio layer 1/3   @tab IX   @tab  IX
-@tab MP3 encoding is supported thru the external library LAME
+@tab MP3 encoding is supported through the external library LAME
 @item AC3                    @tab  IX  @tab  X
 @tab liba52 is used internally for decoding.
-@item Vorbis                 @tab  X   @tab
-@tab encoding is supported thru the external library libvorbis.
+@item Vorbis                 @tab  X   @tab  X
+@tab supported through the external library libvorbis.
+@item WMA V1/V2              @tab      @tab X
+
 @end multitable
 
 @code{X} means that the encoding (resp. decoding) is supported.
@@ -398,7 +413,41 @@ solutions.
 @code{I} means that an integer only version is available too (ensures highest
 performances on systems without hardware floating point support).
 
-@chapter Developpers Guide
+@chapter Platform Specific information
+
+@section Linux
+
+ffmpeg should be compiled with at least GCC 2.95.3. GCC 3.2 is the
+preferred compiler now for ffmpeg. All future optimizations will depend on
+features only found in GCC 3.2.
+
+@section BSD
+
+@section Windows
+
+@section MacOS X
+
+@section BeOS
+
+The configure script should guess the configuration itself.
+Networking support is currently not finished.
+errno issues fixed by Andrew Bachmann.
+
+Old stuff:
+
+Fran├žois Revol - revol at free dot fr - April 2002
+
+The configure script should guess the configuration itself, 
+however I still didn't tested building on net_server version of BeOS.
+
+ffserver is broken (needs poll() implementation).
+
+There is still issues with errno codes, which are negative in BeOs, and
+that ffmpeg negates when returning. This ends up turning errors into 
+valid results, then crashes.
+(To be fixed)
+
+@chapter Developers Guide
 
 @section API
 @itemize
@@ -441,10 +490,10 @@ When you submit your patch, try to send a unified diff (diff '-u'
 option). I cannot read other diffs :-)
 
 Run the regression tests before submitting a patch so that you can
-verify that there is no big problems.
+verify that there are no big problems.
 
 Except if your patch is really big and adds an important feature, by
-submitting it to me, you accept implicitely to put it under my
+submitting it to me, you accept implicitly to put it under my
 copyright. I prefer to do this to avoid potential problems if
 licensing of ffmpeg changes.
 
@@ -455,15 +504,19 @@ transmission) to the ffmpeg-devel mailinglist, see
 
 @section Regression tests
 
-Before submitting a patch (or commiting with CVS), you should at least
+Before submitting a patch (or committing with CVS), you should at least
 test that you did not break anything.
 
 The regression test build a synthetic video stream and a synthetic
-audio stream. Then there are encoded then decoded with all codecs or
+audio stream. Then these are encoded then decoded with all codecs or
 formats. The CRC (or MD5) of each generated file is recorded in a
 result file. Then a 'diff' is launched with the reference results and
 the result file.
 
+The regression test then goes on to test the ffserver code with a 
+limited set of streams. It is important that this step runs correctly
+as well.
+
 Run 'make test' to test all the codecs.
 
 Run 'make libavtest' to test all the codecs.