fringe feature update
[libav.git] / doc / ffmpeg-doc.texi
CommitLineData
9181577c
FB
1\input texinfo @c -*- texinfo -*-
2
3@settitle FFmpeg Documentation
4@titlepage
5@sp 7
6@center @titlefont{FFmpeg Documentation}
7@sp 3
8@end titlepage
9
10
11@chapter Introduction
12
13FFmpeg is a very fast video and audio converter. It can also grab from
14a live audio/video source.
15
16The command line interface is designed to be intuitive, in the sense
17that ffmpeg tries to figure out all the parameters, when
18possible. You have usually to give only the target bitrate you want.
19
20FFmpeg can also convert from any sample rate to any other, and resize
21video on the fly with a high quality polyphase filter.
22
23@chapter Quick Start
24
e99c4e10 25@c man begin EXAMPLES
9181577c
FB
26@section Video and Audio grabbing
27
e99c4e10
FB
28FFmpeg can use a video4linux compatible video source and any Open Sound
29System audio source:
30
9181577c 31@example
e99c4e10 32ffmpeg /tmp/out.mpg
9181577c
FB
33@end example
34
e99c4e10
FB
35Note that you must activate the right video source and channel before
36launching ffmpeg. You can use any TV viewer such as xawtv
37(@url{http://bytesex.org/xawtv/}) by Gerd Knorr which I find very
38good. You must also set correctly the audio recording levels with a
39standard mixer.
9181577c 40
6bf40f39 41@section Video and Audio file format conversion
9181577c
FB
42
43* ffmpeg can use any supported file format and protocol as input:
44
45Examples:
46
47* You can input from YUV files:
48
49@example
e99c4e10 50ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
9181577c
FB
51@end example
52
e99c4e10 53It will use the files:
9181577c 54@example
e99c4e10
FB
55/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
56/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
9181577c
FB
57@end example
58
e99c4e10
FB
59The Y files use twice the resolution of the U and V files. They are
60raw files, without header. They can be generated by all decent video
61decoders. You must specify the size of the image with the @option{-s} option
62if ffmpeg cannot guess it.
9181577c
FB
63
64* You can input from a RAW YUV420P file:
65
66@example
e99c4e10 67ffmpeg -i /tmp/test.yuv /tmp/out.avi
9181577c
FB
68@end example
69
e99c4e10
FB
70The RAW YUV420P is a file containing RAW YUV planar, for each frame first
71come the Y plane followed by U and V planes, which are half vertical and
72horizontal resolution.
9181577c
FB
73
74* You can output to a RAW YUV420P file:
75
76@example
e99c4e10 77ffmpeg -i mydivx.avi -o hugefile.yuv
9181577c
FB
78@end example
79
80* You can set several input files and output files:
81
82@example
e99c4e10 83ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
9181577c
FB
84@end example
85
e99c4e10
FB
86Convert the audio file a.wav and the raw yuv video file a.yuv
87to mpeg file a.mpg
9181577c 88
6bf40f39 89* You can also do audio and video conversions at the same time:
9181577c
FB
90
91@example
e99c4e10 92ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
9181577c
FB
93@end example
94
e99c4e10 95Convert the sample rate of a.wav to 22050 Hz and encode it to MPEG audio.
9181577c
FB
96
97* You can encode to several formats at the same time and define a
e99c4e10 98mapping from input stream to output streams:
9181577c
FB
99
100@example
e99c4e10 101ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0
9181577c
FB
102@end example
103
e99c4e10
FB
104Convert a.wav to a.mp2 at 64 kbits and b.mp2 at 128 kbits. '-map
105file:index' specify which input stream is used for each output
106stream, in the order of the definition of output streams.
9181577c
FB
107
108* You can transcode decrypted VOBs
109
110@example
e99c4e10 111ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec mp3 -ab 128 snatch.avi
9181577c
FB
112@end example
113
e99c4e10
FB
114This is a typical DVD ripper example, input from a VOB file, output
115to an AVI file with MPEG-4 video and MP3 audio, note that in this
116command we use B frames so the MPEG-4 stream is DivX5 compatible, GOP
117size is 300 that means an INTRA frame every 10 seconds for 29.97 fps
118input video. Also the audio stream is MP3 encoded so you need LAME
119support which is enabled using @code{--enable-mp3lame} when
120configuring. The mapping is particularly useful for DVD transcoding
121to get the desired audio language.
9181577c 122
e99c4e10
FB
123NOTE: to see the supported input formats, use @code{ffmpeg -formats}.
124@c man end
9181577c
FB
125
126@chapter Invocation
127
128@section Syntax
129
e99c4e10 130The generic syntax is:
9181577c
FB
131
132@example
e99c4e10
FB
133@c man begin SYNOPSIS
134ffmpeg [[options][@option{-i} @var{input_file}]]... @{[options] @var{output_file}@}...
135@c man end
9181577c 136@end example
e99c4e10
FB
137@c man begin DESCRIPTION
138If no input file is given, audio/video grabbing is done.
9181577c 139
e99c4e10
FB
140As a general rule, options are applied to the next specified
141file. For example, if you give the @option{-b 64} option, it sets the video
142bitrate of the next file. Format option may be needed for raw input
143files.
9181577c 144
e99c4e10
FB
145By default, ffmpeg tries to convert as losslessly as possible: it
146uses the same audio and video parameter for the outputs as the one
147specified for the inputs.
148@c man end
9181577c 149
e99c4e10 150@c man begin OPTIONS
9181577c
FB
151@section Main options
152
e99c4e10 153@table @option
9181577c
FB
154@item -L
155show license
18bff752 156
9181577c 157@item -h
e99c4e10 158show help
18bff752 159
e99c4e10 160@item -formats
9181577c 161show available formats, codecs, protocols, ...
18bff752 162
9181577c
FB
163@item -f fmt
164force format
18bff752 165
9181577c
FB
166@item -i filename
167input file name
168
169@item -y
170overwrite output files
171
172@item -t duration
173set the recording time in seconds. @code{hh:mm:ss[.xxx]} syntax is also
174supported.
175
176@item -title string
177set the title
178
179@item -author string
180set the author
181
182@item -copyright string
183set the copyright
184
185@item -comment string
186set the comment
187
18bff752
FB
188@item -hq
189activate high quality settings
190
9181577c
FB
191@end table
192
193@section Video Options
194
e99c4e10 195@table @option
9181577c 196@item -b bitrate
18bff752
FB
197set the video bitrate in kbit/s (default = 200 kb/s)
198@item -r fps
199set frame rate (default = 25)
200@item -s size
5ee03c86
FB
201set frame size. The format is @samp{WxH} (default 160x128). The
202following abbreviations are recognized:
203@table @samp
18bff752
FB
204@item sqcif
205128x96
206@item qcif
207176x144
208@item cif
209352x288
210@item 4cif
211704x576
212@end table
213
214@item -aspect aspect
215set aspect ratio (4:3, 16:9 or 1.3333, 1.7777)
216@item -croptop size
217set top crop band size (in pixels)
218@item -cropbottom size
219set bottom crop band size (in pixels)
220@item -cropleft size
221set left crop band size (in pixels)
222@item -cropright size
223set right crop band size (in pixels)
9181577c 224@item -vn
18bff752 225disable video recording
9181577c
FB
226@item -bt tolerance
227set video bitrate tolerance (in kbit/s)
18bff752
FB
228@item -maxrate bitrate
229set max video bitrate tolerance (in kbit/s)
230@item -minrate bitrate
231set min video bitrate tolerance (in kbit/s)
232@item -bufsize size
233set ratecontrol buffere size (in kbit)
234@item -vcodec codec
5ee03c86
FB
235force video codec to @var{codec}. Use the @code{copy} special value to
236tell that the raw codec data must be copied as is.
18bff752 237@item -sameq
9181577c
FB
238use same video quality as source (implies VBR)
239
240@item -pass n
5ee03c86
FB
241select the pass number (1 or 2). It is useful to do two pass
242encoding. The statistics of the video are recorded in the first pass and
243the video at the exact requested bit rate is generated in the second
244pass.
9181577c
FB
245
246@item -passlogfile file
5ee03c86 247select two pass log file name to @var{file}.
9181577c
FB
248
249@end table
250
18bff752 251@section Advanced Video Options
9181577c 252
e99c4e10 253@table @option
9181577c
FB
254@item -g gop_size
255set the group of picture size
256@item -intra
257use only intra frames
258@item -qscale q
259use fixed video quantiser scale (VBR)
260@item -qmin q
261min video quantiser scale (VBR)
262@item -qmax q
263max video quantiser scale (VBR)
264@item -qdiff q
265max difference between the quantiser scale (VBR)
266@item -qblur blur
267video quantiser scale blur (VBR)
268@item -qcomp compression
269video quantiser scale compression (VBR)
18bff752
FB
270
271@item -rc_init_cplx complexity
272initial complexity for 1-pass encoding
273@item -b_qfactor factor
274qp factor between p and b frames
275@item -i_qfactor factor
276qp factor between p and i frames
277@item -b_qoffset offset
278qp offset between p and b frames
279@item -i_qoffset offset
280qp offset between p and i frames
281@item -rc_eq equation
5ee03c86
FB
282set rate control equation (@pxref{FFmpeg formula
283evaluator}). Default is @code{tex^qComp}.
284@item -rc_override override
285rate control override for specific intervals
18bff752 286@item -me method
5ee03c86
FB
287set motion estimation method to @var{method}. Available methods are
288(from lower to best quality):
18bff752
FB
289@table @samp
290@item zero
5ee03c86 291Try just the (0, 0) vector.
18bff752
FB
292@item phods
293@item log
294@item x1
295@item epzs
296(default method)
297@item full
298exhaustive search (slow and marginally better than epzs)
299@end table
300
301@item -dct_algo algo
5ee03c86 302set dct algorithm to @var{algo}. Available values are:
18bff752
FB
303@table @samp
304@item 0
305FF_DCT_AUTO (default)
306@item 1
307FF_DCT_FASTINT
308@item 2
309FF_DCT_INT
310@item 3
311FF_DCT_MMX
312@item 4
313FF_DCT_MLIB
314@item 5
315FF_DCT_ALTIVEC
316@end table
317
318@item -idct_algo algo
5ee03c86 319set idct algorithm to @var{algo}. Available values are:
18bff752
FB
320@table @samp
321@item 0
322FF_IDCT_AUTO (default)
323@item 1
324FF_IDCT_INT
325@item 2
326FF_IDCT_SIMPLE
327@item 3
328FF_IDCT_SIMPLEMMX
329@item 4
330FF_IDCT_LIBMPEG2MMX
331@item 5
332FF_IDCT_PS2
333@item 6
334FF_IDCT_MLIB
335@item 7
336FF_IDCT_ARM
337@item 8
338FF_IDCT_ALTIVEC
339@item 9
340FF_IDCT_SH4
341@item 10
342FF_IDCT_SIMPLEARM
343@end table
344
345@item -er n
5ee03c86 346set error resilience to @var{n}.
18bff752
FB
347@table @samp
348@item 1
5ee03c86 349FF_ER_CAREFULL (default)
18bff752 350@item 2
5ee03c86 351FF_ER_COMPLIANT
18bff752
FB
352@item 3
353FF_ER_AGGRESSIVE
354@item 4
355FF_ER_VERY_AGGRESSIVE
356@end table
357
5ee03c86
FB
358@item -ec bit_mask
359set error concealment to @var{bit_mask}. @var{bit_mask} is a bit mask of
360the following values:
18bff752
FB
361@table @samp
362@item 1
5ee03c86 363FF_EC_GUESS_MVS (default=enabled)
18bff752 364@item 2
5ee03c86 365FF_EC_DEBLOCK (default=enabled)
18bff752
FB
366@end table
367
368@item -bf frames
9181577c 369use 'frames' B frames (only MPEG-4)
18bff752
FB
370@item -mbd mode
371macroblock decision
372@table @samp
373@item 0
374FF_MB_DECISION_SIMPLE: use mb_cmp (cannot change it yet in ffmpeg)
375@item 1
376FF_MB_DECISION_BITS: chooses the one which needs the fewest bits
377@item 2
378FF_MB_DECISION_RD: rate distoration
379@end table
380
381@item -4mv
9181577c 382use four motion vector by macroblock (only MPEG-4)
18bff752
FB
383@item -part
384use data partitioning (only MPEG-4)
385@item -bug param
386workaround not auto detected encoder bugs
387@item -strict strictness
388how strictly to follow the standarts
5ee03c86
FB
389@item -aic
390enable Advanced intra coding (h263+)
391@item -umv
392enable Unlimited Motion Vector (h263+)
18bff752
FB
393
394@item -deinterlace
395deinterlace pictures
396@item -psnr
397calculate PSNR of compressed frames
398@item -vstats
5ee03c86 399dump video coding statistics to @file{vstats_HHMMSS.log}.
18bff752
FB
400@item -vhook module
401insert video processing @var{module}. @var{module} contains the module
402name and its parameters separated by spaces.
18bff752
FB
403@end table
404
405@section Audio Options
406
407@table @option
408@item -ab bitrate
409set audio bitrate (in kbit/s)
410@item -ar freq
5ee03c86 411set the audio sampling freq (default = 44100 Hz)
18bff752 412@item -ab bitrate
5ee03c86 413set the audio bitrate in kbit/s (default = 64)
18bff752 414@item -ac channels
5ee03c86
FB
415set the number of audio channels (default = 1)
416@item -an
417disable audio recording
418@item -acodec codec
419force audio codec to @var{codec}. Use the @code{copy} special value to
420tell that the raw codec data must be copied as is.
18bff752
FB
421@end table
422
423@section Audio/Video grab options
424
425@table @option
426@item -vd device
427set video grab device (e.g. @file{/dev/video0})
428@item -vc channel
429set video grab channel (DV1394 only)
430@item -tvstd standard
431set television standard (NTSC, PAL (SECAM))
432@item -dv1394
433set DV1394 grab
434@item -ad device
435set audio device (e.g. @file{/dev/dsp})
436@end table
437
438@section Advanced options
439
440@table @option
441@item -map file:stream
442set input stream mapping
443@item -debug
444print specific debug info
9181577c
FB
445@item -benchmark
446add timings for benchmarking
447@item -hex
448dump each input packet
18bff752
FB
449@item -bitexact
450only use bit exact algorithms (for codec testing)
451@item -ps size
452set packet size in bits
5ee03c86
FB
453@item -re
454read input at native frame rate. Mainly used to simulate a grab device.
455@item -loop
456loop over the input stream. Currently it works only for image
457streams. This option is used for ffserver automatic testing.
9181577c 458@end table
18bff752
FB
459
460@node FFmpeg formula evaluator
461@section FFmpeg formula evaluator
462
463When evaluating a rate control string, FFmpeg uses an internal formula
464evaluator.
465
466The following binary operators are available: @code{+}, @code{-},
467@code{*}, @code{/}, @code{^}.
468
469The following unary operators are available: @code{+}, @code{-},
470@code{(...)}.
471
472The following functions are available:
473@table @var
474@item sinh(x)
475@item cosh(x)
476@item tanh(x)
477@item sin(x)
478@item cos(x)
479@item tan(x)
480@item exp(x)
481@item log(x)
482@item squish(x)
483@item gauss(x)
484@item abs(x)
485@item max(x, y)
486@item min(x, y)
487@item gt(x, y)
488@item lt(x, y)
489@item eq(x, y)
490@item bits2qp(bits)
491@item qp2bits(qp)
492@end table
493
494The following constants are available:
495@table @var
496@item PI
497@item E
498@item iTex
499@item pTex
500@item tex
501@item mv
502@item fCode
503@item iCount
504@item mcVar
505@item var
506@item isI
507@item isP
508@item isB
509@item avgQP
510@item qComp
511@item avgIITex
512@item avgPITex
513@item avgPPTex
514@item avgBPTex
515@item avgTex
516@end table
517
e99c4e10
FB
518@c man end
519
520@ignore
521
522@setfilename ffmpeg
523@settitle FFmpeg video converter
524
525@c man begin SEEALSO
526ffserver(1), ffplay(1) and the html documentation of @file{ffmpeg}.
527@c man end
528
529@c man begin AUTHOR
530Fabrice Bellard
531@c man end
532
533@end ignore
9181577c
FB
534
535@section Protocols
536
47d944d2
FB
537The filename can be @file{-} to read from the standard input or to write
538to the standard output.
9181577c
FB
539
540ffmpeg handles also many protocols specified with the URL syntax.
541
e99c4e10 542Use 'ffmpeg -formats' to have a list of the supported protocols.
9181577c 543
e99c4e10
FB
544The protocol @code{http:} is currently used only to communicate with
545ffserver (see the ffserver documentation). When ffmpeg will be a
546video player it will also be used for streaming :-)
9181577c
FB
547
548@chapter Tips
549
550@itemize
551@item For streaming at very low bit rate application, use a low frame rate
e99c4e10
FB
552and a small gop size. This is especially true for real video where
553the Linux player does not seem to be very fast, so it can miss
554frames. An example is:
9181577c
FB
555
556@example
e99c4e10 557ffmpeg -g 3 -r 3 -t 10 -b 50 -s qcif -f rv10 /tmp/b.rm
9181577c
FB
558@end example
559
560@item The parameter 'q' which is displayed while encoding is the current
e99c4e10
FB
561quantizer. The value of 1 indicates that a very good quality could
562be achieved. The value of 31 indicates the worst quality. If q=31
563too often, it means that the encoder cannot compress enough to meet
564your bit rate. You must either increase the bit rate, decrease the
565frame rate or decrease the frame size.
9181577c
FB
566
567@item If your computer is not fast enough, you can speed up the
e99c4e10
FB
568compression at the expense of the compression ratio. You can use
569'-me zero' to speed up motion estimation, and '-intra' to disable
570completely motion estimation (you have only I frames, which means it
571is about as good as JPEG compression).
9181577c
FB
572
573@item To have very low bitrates in audio, reduce the sampling frequency
e99c4e10 574(down to 22050 kHz for mpeg audio, 22050 or 11025 for ac3).
9181577c
FB
575
576@item To have a constant quality (but a variable bitrate), use the option
e99c4e10
FB
577'-qscale n' when 'n' is between 1 (excellent quality) and 31 (worst
578quality).
9181577c
FB
579
580@item When converting video files, you can use the '-sameq' option which
e99c4e10
FB
581uses in the encoder the same quality factor than in the decoder. It
582allows to be almost lossless in encoding.
9181577c
FB
583
584@end itemize
585
586@chapter Supported File Formats and Codecs
587
588You can use the @code{-formats} option to have an exhaustive list.
589
590@section File Formats
591
6bf40f39 592FFmpeg supports the following file formats through the @code{libavformat}
0699d2fe 593library:
9181577c
FB
594
595@multitable @columnfractions .4 .1 .1
596@item Supported File Format @tab Encoding @tab Decoding @tab Comments
597@item MPEG audio @tab X @tab X
598@item MPEG1 systems @tab X @tab X
599@tab muxed audio and video
600@item MPEG2 PS @tab X @tab X
601@tab also known as @code{VOB} file
602@item MPEG2 TS @tab @tab X
603@tab also known as DVB Transport Stream
604@item ASF@tab X @tab X
605@item AVI@tab X @tab X
606@item WAV@tab X @tab X
607@item Macromedia Flash@tab X @tab X
608@tab Only embedded audio is decoded
2eb5d024
FB
609@item FLV @tab X @tab X
610@tab Macromedia Flash video files
9181577c 611@item Real Audio and Video @tab X @tab X
9181577c
FB
612@item Raw AC3 @tab X @tab X
613@item Raw MJPEG @tab X @tab X
614@item Raw MPEG video @tab X @tab X
615@item Raw PCM8/16 bits, mulaw/Alaw@tab X @tab X
616@item SUN AU format @tab X @tab X
8a5483e7
MM
617@item Quicktime @tab X @tab X
618@item MPEG4 @tab X @tab X
9181577c 619@tab MPEG4 is a variant of Quicktime
0699d2fe 620@item Raw MPEG4 video @tab X @tab X
9181577c 621@item DV @tab @tab X
701b603d
MM
622@item 4xm @tab @tab X
623@tab 4X Technologies format, used in some games
4d3b1f8d
MM
624@item Playstation STR @tab @tab X
625@item Id RoQ @tab @tab X
626@tab used in Quake III, Jedi Knight 2, other computer games
627@item Interplay MVE @tab @tab X
628@tab format used in various Interplay computer games
b17e9c99
MM
629@item WC3 Movie @tab @tab X
630@tab multimedia format used in Origin's Wing Commander III computer game
9181577c
FB
631@end multitable
632
633@code{X} means that the encoding (resp. decoding) is supported.
634
0699d2fe
FB
635@section Image Formats
636
637FFmpeg can read and write images for each frame of a video sequence. The
638following image formats are supported:
639
640@multitable @columnfractions .4 .1 .1
641@item Supported Image Format @tab Encoding @tab Decoding @tab Comments
642@item PGM, PPM @tab X @tab X
2eb5d024
FB
643@item PAM @tab X @tab X @tab PAM is a PNM extension with alpha support
644@item PGMYUV @tab X @tab X @tab PGM with U and V components in YUV 4:2:0
0699d2fe
FB
645@item JPEG @tab X @tab X @tab Progressive JPEG is not supported
646@item .Y.U.V @tab X @tab X @tab One raw file per component
2eb5d024
FB
647@item Animated GIF @tab X @tab X @tab Only uncompressed GIFs are generated
648@item PNG @tab X @tab X @tab 2 bit and 4 bit/pixel not supported yet
0699d2fe
FB
649@end multitable
650
651@code{X} means that the encoding (resp. decoding) is supported.
652
9181577c
FB
653@section Video Codecs
654
655@multitable @columnfractions .4 .1 .1 .7
656@item Supported Codec @tab Encoding @tab Decoding @tab Comments
4745b5bf 657@item MPEG1 video @tab X @tab X
9181577c
FB
658@item MPEG2 video @tab @tab X
659@item MPEG4 @tab X @tab X @tab Also known as DIVX4/5
660@item MSMPEG4 V1 @tab X @tab X
661@item MSMPEG4 V2 @tab X @tab X
662@item MSMPEG4 V3 @tab X @tab X @tab Also known as DIVX3
663@item WMV7 @tab X @tab X
701b603d 664@item WMV8 @tab X @tab X @tab Not completely working
9181577c
FB
665@item H263(+) @tab X @tab X @tab Also known as Real Video 1.0
666@item MJPEG @tab X @tab X
667@item DV @tab @tab X
4745b5bf 668@item Huff YUV @tab X @tab X
701b603d 669@item Asus v1 @tab X @tab X @tab fourcc: ASV1
4d3b1f8d 670@item Asus v2 @tab X @tab X @tab fourcc: ASV2
701b603d
MM
671@item Creative YUV @tab @tab X @tab fourcc: CYUV
672@item H.264 @tab @tab X
673@item Sorenson Video 1 @tab @tab X @tab fourcc: SVQ1
674@item Sorenson Video 3 @tab @tab X @tab fourcc: SVQ3
675@item On2 VP3 @tab @tab X @tab still experimental
676@item Intel Indeo 3 @tab @tab X @tab only works on i386 right now
2eb5d024 677@item FLV @tab X @tab X @tab Flash H263 variant
4d3b1f8d
MM
678@item ATI VCR1 @tab @tab X @tab fourcc: VCR1
679@item Cirrus Logic AccuPak @tab @tab X @tab fourcc: CLJR
680@item 4X Video @tab @tab X @tab used in certain computer games
681@item Sony Playstation MDEC @tab @tab X
682@item Id RoQ @tab @tab X @tab used in Quake III, Jedi Knight 2, other computer games
b17e9c99 683@item Xan/WC3 @tab @tab X @tab used in Wing Commander III .MVE files
9181577c
FB
684@end multitable
685
686@code{X} means that the encoding (resp. decoding) is supported.
687
60837265
FB
688Check at @url{http://www.mplayerhq.hu/~michael/codec-features.html} to
689get a precise comparison of FFmpeg MPEG4 codec compared to the other
690solutions.
691
9181577c
FB
692@section Audio Codecs
693
694@multitable @columnfractions .4 .1 .1 .1 .7
695@item Supported Codec @tab Encoding @tab Decoding @tab Comments
696@item MPEG audio layer 2 @tab IX @tab IX
697@item MPEG audio layer 1/3 @tab IX @tab IX
6bf40f39 698@tab MP3 encoding is supported through the external library LAME
9181577c 699@item AC3 @tab IX @tab X
2eb5d024 700@tab liba52 is used internally for decoding
34d7008d 701@item Vorbis @tab X @tab X
2eb5d024 702@tab supported through the external library libvorbis
4745b5bf 703@item WMA V1/V2 @tab @tab X
701b603d 704@item Microsoft ADPCM @tab X @tab X
4d3b1f8d
MM
705@item MS IMA ADPCM @tab X @tab X
706@item QT IMA ADPCM @tab @tab X
707@item 4X IMA ADPCM @tab @tab X
b17e9c99
MM
708@item Duck DK3 IMA ADPCM @tab @tab X
709@tab used in some Sega Saturn console games
710@item Duck DK4 IMA ADPCM @tab @tab X
711@tab used in some Sega Saturn console games
2eb5d024
FB
712@item RA144 @tab @tab X
713@tab Real 14400 bit/s codec
714@item RA288 @tab @tab X
715@tab Real 28800 bit/s codec
716@item AMR-NB @tab X @tab X
717@tab supported through an external library
718@item DV audio @tab @tab X
4d3b1f8d
MM
719@item Id RoQ DPCM @tab @tab X
720@tab used in Quake III, Jedi Knight 2, other computer games
721@item Interplay MVE DPCM @tab @tab X
722@tab used in various Interplay computer games
b17e9c99
MM
723@item Xan DPCM @tab @tab X
724@tab used in Origin's Wing Commander IV AVI files
9181577c
FB
725@end multitable
726
727@code{X} means that the encoding (resp. decoding) is supported.
728
729@code{I} means that an integer only version is available too (ensures highest
730performances on systems without hardware floating point support).
731
47d944d2
FB
732@chapter Platform Specific information
733
734@section Linux
735
736ffmpeg should be compiled with at least GCC 2.95.3. GCC 3.2 is the
6bf40f39 737preferred compiler now for ffmpeg. All future optimizations will depend on
47d944d2
FB
738features only found in GCC 3.2.
739
740@section BSD
741
742@section Windows
743
b030b284
FB
744@subsection Native Windows compilation
745
746@itemize
747@item Install the current versions of MSYS and MinGW from
748@url{http://www.mingw.org/}. You can find detailed installation
749instructions in the download section and the FAQ.
750
751@item Extract the current version of ffmpeg (the latest release version or the current CVS snapshot whichever is recommended).
752
753@item Start the MSYS shell (file @file{msys.bat}).
754
755@item Change to the FFMPEG directory and create the libavcodec.a and libavformat.a libraries, following the instructions of how to compile ffmpeg (file @file{INSTALL}).
756
757@end itemize
758
759@subsection How to create a single Windows DLL from libavcodec and libavformat
760
761Read @url{http://ffmpeg.org/win32.html}.
762
763@subsection Cross compilation for Windows with Linux
764
765You must use the MinGW cross compilation tools available at
766@url{http://www.mingw.org/}.
767
768Then configure ffmpeg with the following options:
769@example
770./configure --enable-mingw32 --cross-prefix=i386-mingw32msvc-
771@end example
772(you can change the cross-prefix according to the prefix choosen for the
773MinGW tools).
774
775Then you can easily test ffmpeg with wine
776(@url{http://www.winehq.com/}).
777
47d944d2
FB
778@section MacOS X
779
780@section BeOS
781
782The configure script should guess the configuration itself.
783Networking support is currently not finished.
784errno issues fixed by Andrew Bachmann.
785
786Old stuff:
787
788