Statistics
| Branch: | Revision:

ffmpeg / doc / general.texi @ 0eb4ff9e

History | View | Annotate | Download (39.9 KB)

1 d0e1cd3d Diego Biurrun
\input texinfo @c -*- texinfo -*-
2
3
@settitle General Documentation
4
@titlepage
5
@sp 7
6
@center @titlefont{General Documentation}
7
@sp 3
8
@end titlepage
9
10
11
@chapter external libraries
12
13
FFmpeg can be hooked up with a number of external libraries to add support
14
for more formats. None of them are used by default, their use has to be
15
explicitly requested by passing the appropriate flags to @file{./configure}.
16
17 87a84431 Diego Biurrun
@section OpenCORE AMR
18 d0e1cd3d Diego Biurrun
19 87a84431 Diego Biurrun
FFmpeg can make use of the OpenCORE libraries for AMR-NB
20
decoding/encoding and AMR-WB decoding.
21 0b175caa Diego Biurrun
22 1eb0811e Martin Storsjö
Go to @url{http://sourceforge.net/projects/opencore-amr/} and follow the instructions for
23 0b175caa Diego Biurrun
installing the libraries. Then pass @code{--enable-libopencore-amrnb} and/or
24
@code{--enable-libopencore-amrwb} to configure to enable the libraries.
25
26
Note that OpenCORE is under the Apache License 2.0 (see
27
@url{http://www.apache.org/licenses/LICENSE-2.0} for details), which is
28
incompatible with the LGPL version 2.1 and GPL version 2. You have to
29
upgrade FFmpeg's license to LGPL version 3 (or if you have enabled
30
GPL components, GPL version 3) to use it.
31
32 d0e1cd3d Diego Biurrun
33
@chapter Supported File Formats and Codecs
34
35
You can use the @code{-formats} option to have an exhaustive list.
36
37
@section File Formats
38
39
FFmpeg supports the following file formats through the @code{libavformat}
40
library:
41
42
@multitable @columnfractions .4 .1 .1 .4
43 b3de4544 Diego Biurrun
@item Name @tab Encoding @tab Decoding @tab Comments
44 64c2f20a Diego Biurrun
@item 4xm                       @tab   @tab X
45 c6b2dc34 Diego Biurrun
    @tab 4X Technologies format, used in some games.
46 f0b19bd3 Daniel Verkamp
@item 8088flex TMV              @tab   @tab X
47 39271be4 Diego Biurrun
@item Audio IFF (AIFF)          @tab X @tab X
48 64c2f20a Diego Biurrun
@item American Laser Games MM   @tab   @tab X
49
    @tab Multimedia format used in games like Mad Dog McCree.
50 39271be4 Diego Biurrun
@item 3GPP AMR                  @tab X @tab X
51 c6b2dc34 Diego Biurrun
@item ASF                       @tab X @tab X
52
@item AVI                       @tab X @tab X
53 39271be4 Diego Biurrun
@item AVISynth                  @tab   @tab X
54 c6b2dc34 Diego Biurrun
@item AVS                       @tab   @tab X
55 d698c5d3 Diego Biurrun
    @tab Multimedia format used by the Creature Shock game.
56 913c3e2c Diego Biurrun
@item Beam Software SIFF        @tab   @tab X
57
    @tab Audio and video format used in some games by Beam Software.
58
@item Bethesda Softworks VID    @tab   @tab X
59 d698c5d3 Diego Biurrun
    @tab Used in some games from Bethesda Softworks.
60 913c3e2c Diego Biurrun
@item Brute Force & Ignorance   @tab   @tab X
61
    @tab Used in the game Flash Traffic: City of Angels.
62
@item Interplay C93             @tab   @tab X
63 d698c5d3 Diego Biurrun
    @tab Used in the game Cyberia from Interplay.
64 913c3e2c Diego Biurrun
@item Delphine Software International CIN @tab   @tab X
65 d698c5d3 Diego Biurrun
    @tab Multimedia format used by Delphine Software games.
66 5f14b565 Peter Ross
@item Core Audio Format         @tab   @tab X
67
    @tab Apple Core Audio Format
68 39271be4 Diego Biurrun
@item CRC testing format        @tab X @tab
69 913c3e2c Diego Biurrun
@item Creative Voice            @tab X @tab X
70 d698c5d3 Diego Biurrun
    @tab Created for the Sound Blaster Pro.
71 64c2f20a Diego Biurrun
@item CRYO APC                  @tab   @tab X
72
    @tab Audio format used in some games by CRYO Interactive Entertainment.
73 39271be4 Diego Biurrun
@item D-Cinema audio            @tab X @tab X
74 913c3e2c Diego Biurrun
@item DV video                  @tab X @tab X
75 c6b2dc34 Diego Biurrun
@item DXA                       @tab   @tab X
76 d698c5d3 Diego Biurrun
    @tab This format is used in the non-Windows version of the Feeble Files
77
         game and different game cutscenes repacked for use with ScummVM.
78 39271be4 Diego Biurrun
@item Electronic Arts cdata  @tab    @tab X
79 c6b2dc34 Diego Biurrun
@item Electronic Arts Multimedia  @tab    @tab X
80 d698c5d3 Diego Biurrun
    @tab Used in various EA games; files have extensions like WVE and UV2.
81 39271be4 Diego Biurrun
@item FFM (FFserver live feed)  @tab X @tab X
82
@item Flash (SWF)               @tab X @tab X
83 913c3e2c Diego Biurrun
@item Flash 9 (AVM2)            @tab X @tab X
84
    @tab Only embedded audio is decoded.
85
@item FLI/FLC/FLX animation     @tab   @tab X
86 d698c5d3 Diego Biurrun
    @tab .fli/.flc files
87 dd2d651d Diego Biurrun
@item Flash Video (FLV)         @tab   @tab X
88 d698c5d3 Diego Biurrun
    @tab Macromedia Flash video files
89 39271be4 Diego Biurrun
@item framecrc testing format   @tab X @tab
90 055dc116 Stefan Gehrer
@item FunCom ISS                @tab   @tab X
91
    @tab Audio format used in various games from FunCom like The Longest Journey.
92 39271be4 Diego Biurrun
@item GIF Animation             @tab X @tab
93 c6b2dc34 Diego Biurrun
@item GXF                       @tab X @tab X
94 d698c5d3 Diego Biurrun
    @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
95 64c2f20a Diego Biurrun
         playout servers.
96 dd2d651d Diego Biurrun
@item id Quake II CIN video     @tab   @tab X
97 76ec3939 Diego Biurrun
@item id RoQ                    @tab X @tab X
98 d698c5d3 Diego Biurrun
    @tab Used in Quake III, Jedi Knight 2, other computer games.
99 ab1eff9c Bartlomiej Wolowiec
@item IEC61937 encapsulation @tab X @tab
100 c6b2dc34 Diego Biurrun
@item IFF                       @tab   @tab X
101 d698c5d3 Diego Biurrun
    @tab Interchange File Format
102 c6b2dc34 Diego Biurrun
@item Interplay MVE             @tab   @tab X
103 d698c5d3 Diego Biurrun
    @tab Format used in various Interplay computer games.
104 c6b2dc34 Diego Biurrun
@item LMLM4                     @tab   @tab X
105 d698c5d3 Diego Biurrun
    @tab Used by Linux Media Labs MPEG-4 PCI boards
106 64c2f20a Diego Biurrun
@item Matroska                  @tab X @tab X
107 39271be4 Diego Biurrun
@item Matroska audio            @tab X @tab
108 913c3e2c Diego Biurrun
@item MAXIS XA                  @tab   @tab X
109 d698c5d3 Diego Biurrun
    @tab Used in Sim City 3000; file extension .xa.
110 61dc238b Benjamin Larsson
@item MD Studio                 @tab   @tab X
111 64c2f20a Diego Biurrun
@item Monkey's Audio            @tab   @tab X
112 822cc8f7 Ramiro Polla
@item Motion Pixels MVI         @tab   @tab X
113 913c3e2c Diego Biurrun
@item MOV/QuickTime/MP4         @tab X @tab X
114
    @tab 3GP, 3GP2, PSP, iPod variants supported
115 4d973c68 Diego Biurrun
@item MP2                       @tab X @tab X
116
@item MP3                       @tab X @tab X
117 913c3e2c Diego Biurrun
@item MPEG-1 System             @tab X @tab X
118
    @tab muxed audio and video, VCD format supported
119
@item MPEG-PS (program stream)  @tab X @tab X
120
    @tab also known as @code{VOB} file, SVCD and DVD format supported
121
@item MPEG-TS (transport stream) @tab X @tab X
122 d698c5d3 Diego Biurrun
    @tab also known as DVB Transport Stream
123 c6b2dc34 Diego Biurrun
@item MPEG-4                    @tab X @tab X
124 d698c5d3 Diego Biurrun
    @tab MPEG-4 is a variant of QuickTime.
125 39271be4 Diego Biurrun
@item MIME multipart JPEG       @tab X @tab
126 bac4c85c Diego Biurrun
@item MSN TCP webcam            @tab   @tab X
127 d698c5d3 Diego Biurrun
    @tab Used by MSN Messenger webcam streams.
128 39271be4 Diego Biurrun
@item MTV                       @tab   @tab X
129
@item Musepack                  @tab   @tab X
130
@item Musepack SV8              @tab   @tab X
131 913c3e2c Diego Biurrun
@item Material eXchange Format (MXF) @tab X @tab X
132
    @tab SMPTE 377M, used by D-Cinema, broadcast industry.
133 a9d3c669 Baptiste Coudurier
@item Material eXchange Format (MXF), D-10 Mapping @tab X @tab X
134
    @tab SMPTE 386M, D-10/IMX Mapping.
135 913c3e2c Diego Biurrun
@item NC camera feed            @tab   @tab X
136
    @tab NC (AVIP NC4600) camera streams
137 ade29f99 Justin Ruggles
@item NTT TwinVQ (VQF)          @tab   @tab X
138
    @tab Nippon Telegraph and Telephone Corporation TwinVQ.
139 913c3e2c Diego Biurrun
@item Nullsoft Streaming Video  @tab   @tab X
140 39271be4 Diego Biurrun
@item NuppelVideo               @tab   @tab X
141 c6b2dc34 Diego Biurrun
@item NUT                       @tab X @tab X
142 d698c5d3 Diego Biurrun
    @tab NUT Open Container Format
143 39271be4 Diego Biurrun
@item Ogg                       @tab X @tab X
144 913c3e2c Diego Biurrun
@item TechnoTrend PVA           @tab   @tab X
145 d698c5d3 Diego Biurrun
    @tab Used by TechnoTrend DVB PCI boards.
146 cdce0fb8 Kenan Gillet
@item QCP                       @tab   @tab X
147 43dedc1e Diego Biurrun
@item raw ADTS (AAC)            @tab X @tab X
148 76ec3939 Diego Biurrun
@item raw AC-3                  @tab X @tab X
149 adc5abf7 Stefan Gehrer
@item raw Chinese AVS video     @tab   @tab X
150 43dedc1e Diego Biurrun
@item raw CRI ADX               @tab X @tab X
151
@item raw Dirac                 @tab X @tab X
152
@item raw DNxHD                 @tab X @tab X
153
@item raw DTS                   @tab X @tab X
154
@item raw E-AC-3                @tab X @tab X
155
@item raw FLAC                  @tab X @tab X
156
@item raw GSM                   @tab   @tab X
157
@item raw H.261                 @tab X @tab X
158
@item raw H.263                 @tab X @tab X
159
@item raw H.264                 @tab X @tab X
160
@item raw Ingenient MJPEG       @tab   @tab X
161 76ec3939 Diego Biurrun
@item raw MJPEG                 @tab X @tab X
162 43dedc1e Diego Biurrun
@item raw MLP                   @tab   @tab X
163
@item raw MPEG                  @tab   @tab X
164
@item raw MPEG-1                @tab   @tab X
165
@item raw MPEG-2                @tab   @tab X
166
@item raw MPEG-4                @tab X @tab X
167
@item raw NULL                  @tab X @tab
168 81b55ee5 Diego Biurrun
@item raw video                 @tab X @tab X
169 43dedc1e Diego Biurrun
@item raw id RoQ                @tab X @tab
170
@item raw Shorten               @tab   @tab X
171 23d9cc45 Ramiro Polla
@item raw TrueHD                @tab X @tab X
172 43dedc1e Diego Biurrun
@item raw VC-1                  @tab   @tab X
173
@item raw PCM A-law             @tab X @tab X
174
@item raw PCM mu-law            @tab X @tab X
175
@item raw PCM signed 8 bit      @tab X @tab X
176
@item raw PCM signed 16 bit big-endian  @tab X @tab X
177
@item raw PCM signed 16 bit little-endian  @tab X @tab X
178
@item raw PCM signed 24 bit big-endian  @tab X @tab X
179
@item raw PCM signed 24 bit little-endian  @tab X @tab X
180
@item raw PCM signed 32 bit big-endian  @tab X @tab X
181
@item raw PCM signed 32 bit little-endian  @tab X @tab X
182
@item raw PCM unsigned 8 bit    @tab X @tab X
183
@item raw PCM unsigned 16 bit big-endian  @tab X @tab X
184
@item raw PCM unsigned 16 bit little-endian  @tab X @tab X
185
@item raw PCM unsigned 24 bit big-endian  @tab X @tab X
186
@item raw PCM unsigned 24 bit little-endian  @tab X @tab X
187
@item raw PCM unsigned 32 bit big-endian  @tab X @tab X
188
@item raw PCM unsigned 32 bit little-endian  @tab X @tab X
189
@item raw PCM floating-point 32 bit big-endian  @tab X @tab X
190
@item raw PCM floating-point 32 bit little-endian  @tab X @tab X
191
@item raw PCM floating-point 64 bit big-endian  @tab X @tab X
192
@item raw PCM floating-point 64 bit little-endian  @tab X @tab X
193 39271be4 Diego Biurrun
@item RDT                       @tab   @tab X
194 913c3e2c Diego Biurrun
@item REDCODE R3D               @tab   @tab X
195 7eb68edb Baptiste Coudurier
    @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
196 64c2f20a Diego Biurrun
@item RealMedia                 @tab X @tab X
197 39271be4 Diego Biurrun
@item Redirector                @tab   @tab X
198 913c3e2c Diego Biurrun
@item Renderware TeXture Dictionary @tab   @tab X
199 c6b2dc34 Diego Biurrun
@item RL2                       @tab   @tab X
200 d698c5d3 Diego Biurrun
    @tab Audio and video format used in some games by Entertainment Software Partners.
201 39271be4 Diego Biurrun
@item RPL/ARMovie               @tab   @tab X
202 9fd6b843 Kostya Shishkov
@item RTMP                      @tab   @tab X
203 39271be4 Diego Biurrun
@item RTP                       @tab   @tab X
204
@item RTSP                      @tab   @tab X
205
@item SDP                       @tab   @tab X
206 c6b2dc34 Diego Biurrun
@item Sega FILM/CPK             @tab   @tab X
207 d698c5d3 Diego Biurrun
    @tab Used in many Sega Saturn console games.
208 913c3e2c Diego Biurrun
@item Sierra SOL                @tab   @tab X
209 d698c5d3 Diego Biurrun
    @tab .sol files used in Sierra Online games.
210 c6b2dc34 Diego Biurrun
@item Sierra VMD                @tab   @tab X
211 d698c5d3 Diego Biurrun
    @tab Used in Sierra CD-ROM games.
212 c6b2dc34 Diego Biurrun
@item Smacker                   @tab   @tab X
213 d698c5d3 Diego Biurrun
    @tab Multimedia format used by many games.
214 913c3e2c Diego Biurrun
@item Sony OpenMG (OMA)         @tab   @tab X
215
    @tab Audio format used in Sony Sonic Stage and Sony Vegas.
216
@item Sony PlayStation STR      @tab   @tab X
217 740e89cf Daniel Verkamp
@item Sony Wave64 (W64)         @tab   @tab X
218 cbfe5bee Daniel Verkamp
@item SoX native format         @tab X @tab X
219 64c2f20a Diego Biurrun
@item SUN AU format             @tab X @tab X
220 c6b2dc34 Diego Biurrun
@item THP                       @tab   @tab X
221 d698c5d3 Diego Biurrun
    @tab Used on the Nintendo GameCube.
222 913c3e2c Diego Biurrun
@item Tiertex Limited SEQ       @tab   @tab X
223
    @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
224 39271be4 Diego Biurrun
@item True Audio                @tab   @tab X
225
@item VC-1 test bitstream       @tab X @tab X
226 c6b2dc34 Diego Biurrun
@item WAV                       @tab X @tab X
227 39271be4 Diego Biurrun
@item WavPack                   @tab   @tab X
228 913c3e2c Diego Biurrun
@item Wing Commander III movie  @tab   @tab X
229 d698c5d3 Diego Biurrun
    @tab Multimedia format used in Origin's Wing Commander III computer game.
230 913c3e2c Diego Biurrun
@item Westwood Studios audio    @tab   @tab X
231
    @tab Multimedia format used in Westwood Studios games.
232
@item Westwood Studios VQA      @tab   @tab X
233
    @tab Multimedia format used in Westwood Studios games.
234 39271be4 Diego Biurrun
@item YUV4MPEG pipe             @tab X @tab X
235 d0e1cd3d Diego Biurrun
@end multitable
236
237
@code{X} means that encoding (resp. decoding) is supported.
238
239
@section Image Formats
240
241
FFmpeg can read and write images for each frame of a video sequence. The
242
following image formats are supported:
243
244
@multitable @columnfractions .4 .1 .1 .4
245 b3de4544 Diego Biurrun
@item Name @tab Encoding @tab Decoding @tab Comments
246 9db80acb Daniel Verkamp
@item .Y.U.V       @tab X @tab X
247
    @tab one raw file per component
248
@item animated GIF @tab X @tab X
249
    @tab Only uncompressed GIFs are generated.
250 f2937cc6 Daniel Verkamp
@item BMP          @tab X @tab X
251
    @tab Microsoft BMP image
252 94d3d6a4 Jimmy Christensen
@item DPX          @tab   @tab X
253
    @tab Digital Picture Exchange
254 9db80acb Daniel Verkamp
@item JPEG         @tab X @tab X
255
    @tab Progressive JPEG is not supported.
256
@item JPEG 2000    @tab   @tab E
257
    @tab decoding supported through external library libopenjpeg
258 f2937cc6 Daniel Verkamp
@item JPEG-LS      @tab X @tab X
259
@item LJPEG        @tab X @tab
260
    @tab Lossless JPEG
261 ddea12a6 Diego Biurrun
@item PAM          @tab X @tab X
262 9db80acb Daniel Verkamp
    @tab PAM is a PNM extension with alpha support.
263 ddea12a6 Diego Biurrun
@item PBM          @tab X @tab X
264 f2937cc6 Daniel Verkamp
    @tab Portable BitMap image
265 effcedf7 Daniel Verkamp
@item PCX          @tab X @tab X
266 9db80acb Daniel Verkamp
    @tab PC Paintbrush
267 ddea12a6 Diego Biurrun
@item PGM          @tab X @tab X
268 314511ab Daniel Verkamp
    @tab Portable GrayMap image
269 ddea12a6 Diego Biurrun
@item PGMYUV       @tab X @tab X
270 9db80acb Daniel Verkamp
    @tab PGM with U and V components in YUV 4:2:0
271
@item PNG          @tab X @tab X
272
    @tab 2/4 bpp not supported yet
273 ddea12a6 Diego Biurrun
@item PPM          @tab X @tab X
274 314511ab Daniel Verkamp
    @tab Portable PixelMap image
275 9db80acb Daniel Verkamp
@item PTX          @tab   @tab X
276
    @tab V.Flash PTX format
277
@item SGI          @tab X @tab X
278
    @tab SGI RGB image format
279 a1c5b6ec Justin Ruggles
@item Sun Rasterfile  @tab   @tab X
280
    @tab Sun RAS image format
281 9db80acb Daniel Verkamp
@item TIFF         @tab X @tab X
282
    @tab YUV, JPEG and some extension is not supported yet.
283 a1c5b6ec Justin Ruggles
@item Truevision Targa  @tab X @tab X
284
    @tab Targa (.TGA) image format
285 d0e1cd3d Diego Biurrun
@end multitable
286
287
@code{X} means that encoding (resp. decoding) is supported.
288
289 9a77d59a Jai Menon
@code{E} means that support is provided through an external library.
290
291 d0e1cd3d Diego Biurrun
@section Video Codecs
292
293
@multitable @columnfractions .4 .1 .1 .4
294 b3de4544 Diego Biurrun
@item Name @tab Encoding @tab Decoding @tab Comments
295 9510f59a Diego Biurrun
@item 4X Movie               @tab     @tab  X
296 d698c5d3 Diego Biurrun
    @tab Used in certain computer games.
297 f0b19bd3 Daniel Verkamp
@item 8088flex TMV           @tab     @tab  X
298 9510f59a Diego Biurrun
@item 8SVX exponential       @tab     @tab  X
299
@item 8SVX fibonacci         @tab     @tab  X
300 913c3e2c Diego Biurrun
@item American Laser Games MM  @tab    @tab X
301 d698c5d3 Diego Biurrun
    @tab Used in games like Mad Dog McCree.
302 a1c5b6ec Justin Ruggles
@item AMV Video              @tab     @tab  X
303 d698c5d3 Diego Biurrun
    @tab Used in Chinese MP3 players.
304 d66d8b83 Diego Biurrun
@item Apple MJPEG-B          @tab     @tab  X
305
@item Apple QuickDraw        @tab     @tab  X
306 d698c5d3 Diego Biurrun
    @tab fourcc: qdrw
307 d66d8b83 Diego Biurrun
@item Asus v1                @tab  X  @tab  X
308 d698c5d3 Diego Biurrun
    @tab fourcc: ASV1
309 d66d8b83 Diego Biurrun
@item Asus v2                @tab  X  @tab  X
310 d698c5d3 Diego Biurrun
    @tab fourcc: ASV2
311 d66d8b83 Diego Biurrun
@item ATI VCR1               @tab     @tab  X
312 d698c5d3 Diego Biurrun
    @tab fourcc: VCR1
313 d66d8b83 Diego Biurrun
@item ATI VCR2               @tab     @tab  X
314 d698c5d3 Diego Biurrun
    @tab fourcc: VCR2
315 dd2d651d Diego Biurrun
@item Autodesk Animator Flic video  @tab     @tab  X
316 d66d8b83 Diego Biurrun
@item Autodesk RLE           @tab     @tab  X
317 d698c5d3 Diego Biurrun
    @tab fourcc: AASC
318 9510f59a Diego Biurrun
@item AVS (Audio Video Standard) video  @tab     @tab  X
319 d698c5d3 Diego Biurrun
    @tab Video encoding used by the Creature Shock game.
320 68dddf53 Justin Ruggles
@item Beam Software VB       @tab     @tab  X
321 9510f59a Diego Biurrun
@item Bethesda VID video     @tab     @tab  X
322 d698c5d3 Diego Biurrun
    @tab Used in some games from Bethesda Softworks.
323 9510f59a Diego Biurrun
@item Brute Force & Ignorance   @tab   @tab X
324
    @tab Used in the game Flash Traffic: City of Angels.
325 bac4c85c Diego Biurrun
@item C93 video              @tab     @tab  X
326 d698c5d3 Diego Biurrun
    @tab Codec used in Cyberia game.
327 d66d8b83 Diego Biurrun
@item CamStudio              @tab     @tab  X
328 d698c5d3 Diego Biurrun
    @tab fourcc: CSCD
329 9510f59a Diego Biurrun
@item Chinese AVS video      @tab     @tab  X
330
    @tab AVS1-P2, JiZhun profile
331
@item Delphine Software International CIN video  @tab     @tab  X
332
    @tab Codec used in Delphine Software International games.
333 d66d8b83 Diego Biurrun
@item Cinepak                @tab     @tab  X
334
@item Cirrus Logic AccuPak   @tab     @tab  X
335 d698c5d3 Diego Biurrun
    @tab fourcc: CLJR
336 9510f59a Diego Biurrun
@item Creative YUV (CYUV)    @tab     @tab  X
337 82ced5a9 Diego Biurrun
@item Dirac                  @tab  E  @tab  E
338 360f980b Diego Biurrun
    @tab supported through external libdirac/libschroedinger libraries
339 9510f59a Diego Biurrun
@item DNxHD                  @tab   X @tab  X
340
    @tab aka SMPTE VC3
341 68dddf53 Justin Ruggles
@item Duck TrueMotion 1.0   @tab     @tab  X
342 d698c5d3 Diego Biurrun
    @tab fourcc: DUCK
343 68dddf53 Justin Ruggles
@item Duck TrueMotion 2.0    @tab     @tab  X
344 d698c5d3 Diego Biurrun
    @tab fourcc: TM20
345 9510f59a Diego Biurrun
@item DV (Digital Video)     @tab  X  @tab  X
346
@item Feeble Files/ScummVM DXA  @tab     @tab  X
347 d698c5d3 Diego Biurrun
    @tab Codec originally used in Feeble Files game.
348 9510f59a Diego Biurrun
@item Electronic Arts CMV video  @tab     @tab  X
349 d698c5d3 Diego Biurrun
    @tab Used in NHL 95 game.
350 c63ea92b Peter Ross
@item Electronic Arts Madcow video  @tab     @tab  X
351 dd2d651d Diego Biurrun
@item Electronic Arts TGV video  @tab     @tab  X
352
@item Electronic Arts TGQ video  @tab     @tab  X
353
@item Electronic Arts TQI video  @tab     @tab  X
354
@item Escape 124             @tab     @tab  X
355 f4258b13 Diego Biurrun
@item FFmpeg video codec #1  @tab  X  @tab  X
356 d698c5d3 Diego Biurrun
    @tab experimental lossless codec (fourcc: FFV1)
357 dd2d651d Diego Biurrun
@item Flash Screen Video v1  @tab  X  @tab  X
358 d698c5d3 Diego Biurrun
    @tab fourcc: FSV1
359 dd2d651d Diego Biurrun
@item Flash Video (FLV)      @tab  X  @tab  X
360 d698c5d3 Diego Biurrun
    @tab Sorenson H.263 used in Flash
361 dd2d651d Diego Biurrun
@item Fraps                  @tab     @tab  X
362 d66d8b83 Diego Biurrun
@item H.261                  @tab  X  @tab  X
363 dd2d651d Diego Biurrun
@item H.263 / H.263-1996     @tab  X  @tab  X
364
@item H.263+ / H.263-1998 / H.263 version 2  @tab  X  @tab  X
365
@item H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10  @tab  E  @tab  X
366 360f980b Diego Biurrun
    @tab encoding supported through external library libx264
367 dd2d651d Diego Biurrun
@item H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)  @tab  E  @tab  X
368 d66d8b83 Diego Biurrun
@item HuffYUV                @tab  X  @tab  X
369 dd2d651d Diego Biurrun
@item HuffYUV FFmpeg variant @tab  X  @tab  X
370 d66d8b83 Diego Biurrun
@item IBM Ultimotion         @tab     @tab  X
371 d698c5d3 Diego Biurrun
    @tab fourcc: ULTI
372 bac4c85c Diego Biurrun
@item id Cinematic video     @tab     @tab  X
373 d698c5d3 Diego Biurrun
    @tab Used in Quake II.
374 a1c5b6ec Justin Ruggles
@item id RoQ video           @tab  X  @tab  X
375 d698c5d3 Diego Biurrun
    @tab Used in Quake III, Jedi Knight 2, other computer games.
376 dd2d651d Diego Biurrun
@item Intel H.263            @tab     @tab  X
377
@item Intel Indeo 2          @tab     @tab  X
378 d66d8b83 Diego Biurrun
@item Intel Indeo 3          @tab     @tab  X
379 dd2d651d Diego Biurrun
@item Interplay C93          @tab     @tab  X
380 9510f59a Diego Biurrun
    @tab Used in the game Cyberia from Interplay.
381 dd2d651d Diego Biurrun
@item Interplay MVE video    @tab     @tab  X
382 d698c5d3 Diego Biurrun
    @tab Used in Interplay .MVE files.
383 dd2d651d Diego Biurrun
@item Karl Morton's video codec  @tab     @tab  X
384 d698c5d3 Diego Biurrun
    @tab Codec used in Worms games.
385 dd2d651d Diego Biurrun
@item LCL (LossLess Codec Library) MSZH  @tab     @tab  X
386
@item LCL (LossLess Codec Library) ZLIB  @tab  E  @tab  E
387 d66d8b83 Diego Biurrun
@item LOCO                   @tab     @tab  X
388
@item lossless MJPEG         @tab  X  @tab  X
389
@item Microsoft RLE          @tab     @tab  X
390 dd2d651d Diego Biurrun
@item Microsoft Video 1      @tab     @tab  X
391 d66d8b83 Diego Biurrun
@item Mimic                  @tab     @tab  X
392 d698c5d3 Diego Biurrun
    @tab Used in MSN Messenger Webcam streams.
393 d66d8b83 Diego Biurrun
@item Miro VideoXL           @tab     @tab  X
394 d698c5d3 Diego Biurrun
    @tab fourcc: VIXL
395 eacf8613 Justin Ruggles
@item MJPEG (Motion JPEG)    @tab  X  @tab  X
396 dd2d651d Diego Biurrun
@item Motion Pixels video    @tab     @tab  X
397
@item MPEG-1 video           @tab  X  @tab  X
398
@item MPEG-1/2 video XvMC (X-Video Motion Compensation)  @tab     @tab  X
399
@item MPEG-1/2 video (VDPAU acceleration)  @tab     @tab  X
400
@item MPEG-2 video           @tab  X  @tab  X
401
@item MPEG-4 part 2          @tab  X  @tab  X
402
    @ libxvidcore can be used alternatively for encoding.
403
@item MPEG-4 part 2 Microsoft variant version 1  @tab  X  @tab  X
404
@item MPEG-4 part 2 Microsoft variant version 2  @tab  X  @tab  X
405
@item MPEG-4 part 2 Microsoft variant version 3  @tab  X  @tab  X
406 eacf8613 Justin Ruggles
@item Nintendo Gamecube THP video  @tab     @tab  X
407 641992de Diego Biurrun
@item NuppelVideo/RTjpeg     @tab     @tab  X
408
    @tab Video encoding used in NuppelVideo files.
409 d66d8b83 Diego Biurrun
@item On2 VP3                @tab     @tab  X
410 d698c5d3 Diego Biurrun
    @tab still experimental
411 d66d8b83 Diego Biurrun
@item On2 VP5                @tab     @tab  X
412 d698c5d3 Diego Biurrun
    @tab fourcc: VP50
413 d66d8b83 Diego Biurrun
@item On2 VP6                @tab     @tab  X
414 d698c5d3 Diego Biurrun
    @tab fourcc: VP60,VP61,VP62
415 d66d8b83 Diego Biurrun
@item planar RGB             @tab     @tab  X
416 d698c5d3 Diego Biurrun
    @tab fourcc: 8BPS
417 a1c5b6ec Justin Ruggles
@item Q-team QPEG            @tab     @tab  X
418 d698c5d3 Diego Biurrun
    @tab fourccs: QPEG, Q1.0, Q1.1
419 9510f59a Diego Biurrun
@item QuickTime 8BPS video   @tab     @tab  X
420 a1c5b6ec Justin Ruggles
@item QuickTime Animation (RLE) video  @tab  X  @tab  X
421
    @tab fourcc: 'rle '
422
@item QuickTime Graphics (SMC)  @tab     @tab  X
423
    @tab fourcc: 'smc '
424
@item QuickTime video (RPZA) @tab     @tab  X
425
    @tab fourcc: rpza
426
@item Raw Video              @tab  X  @tab  X
427 d0e1cd3d Diego Biurrun
@item RealVideo 1.0          @tab  X  @tab  X
428
@item RealVideo 2.0          @tab  X  @tab  X
429 6beb8b26 Kostya Shishkov
@item RealVideo 3.0          @tab     @tab  X
430
    @tab still far from ideal
431 11c0f9ec Kostya Shishkov
@item RealVideo 4.0          @tab     @tab  X
432 68dddf53 Justin Ruggles
@item Renderware TXD (TeXture Dictionary)  @tab     @tab  X
433 d698c5d3 Diego Biurrun
    @tab Texture dictionaries used by the Renderware Engine.
434 a1c5b6ec Justin Ruggles
@item RL2 video              @tab     @tab  X
435
    @tab used in some games by Entertainment Software Partners
436 68dddf53 Justin Ruggles
@item Sierra VMD video       @tab     @tab  X
437
    @tab Used in Sierra VMD files.
438 bac4c85c Diego Biurrun
@item Smacker video          @tab     @tab  X
439 d698c5d3 Diego Biurrun
    @tab Video encoding used in Smacker.
440 68dddf53 Justin Ruggles
@item SMPTE VC-1             @tab     @tab  X
441 d66d8b83 Diego Biurrun
@item Snow                   @tab  X  @tab  X
442 d698c5d3 Diego Biurrun
    @tab experimental wavelet codec (fourcc: SNOW)
443 eacf8613 Justin Ruggles
@item Sony PlayStation MDEC (Motion DECoder)  @tab     @tab  X
444 a1c5b6ec Justin Ruggles
@item Sorenson Vector Quantizer 1  @tab  X  @tab  X
445 d698c5d3 Diego Biurrun
    @tab fourcc: SVQ1
446 a1c5b6ec Justin Ruggles
@item Sorenson Vector Quantizer 3  @tab     @tab  X
447 d698c5d3 Diego Biurrun
    @tab fourcc: SVQ3
448 a1c5b6ec Justin Ruggles
@item Sunplus JPEG (SP5X)    @tab     @tab  X
449 d698c5d3 Diego Biurrun
    @tab fourcc: SP5X
450 68dddf53 Justin Ruggles
@item TechSmith Screen Capture Codec  @tab     @tab  X
451 d698c5d3 Diego Biurrun
    @tab fourcc: TSCC
452 82ced5a9 Diego Biurrun
@item Theora                 @tab  E  @tab  X
453 360f980b Diego Biurrun
    @tab encoding supported through external library libtheora
454 a1c5b6ec Justin Ruggles
@item Tiertex Limited SEQ video  @tab     @tab  X
455 d698c5d3 Diego Biurrun
    @tab Codec used in DOS CD-ROM FlashBack game.
456 ca0bb1c4 Baptiste Coudurier
@item V210 Quicktime Uncompressed 4:2:2 10-bit     @tab  X  @tab  X
457 eacf8613 Justin Ruggles
@item VMware Screen Codec / VMware Video  @tab     @tab  X
458 d698c5d3 Diego Biurrun
    @tab Codec used in videos captured by VMware.
459 eacf8613 Justin Ruggles
@item Westwood Studios VQA (Vector Quantized Animation) video  @tab     @tab  X
460 dd2d651d Diego Biurrun
@item Windows Media Video 7  @tab  X  @tab  X
461 eacf8613 Justin Ruggles
@item Windows Media Video 8  @tab  X  @tab  X
462 68dddf53 Justin Ruggles
@item Windows Media Video 9  @tab     @tab  X
463
    @tab not completely working
464 eacf8613 Justin Ruggles
@item Wing Commander III / Xan  @tab     @tab  X
465
    @tab Used in Wing Commander III .MVE files.
466 d66d8b83 Diego Biurrun
@item Winnov WNV1            @tab     @tab  X
467
@item WMV7                   @tab  X  @tab  X
468 39271be4 Diego Biurrun
@item YAMAHA SMAF            @tab  X  @tab  X
469 d66d8b83 Diego Biurrun
@item ZLIB                   @tab  X  @tab  X
470 d698c5d3 Diego Biurrun
    @tab part of LCL, encoder experimental
471 eacf8613 Justin Ruggles
@item Zip Motion Blocks Video  @tab   X @tab  X
472 d698c5d3 Diego Biurrun
    @tab Encoder works only in PAL8.
473 d0e1cd3d Diego Biurrun
@end multitable
474
475
@code{X} means that encoding (resp. decoding) is supported.
476
477 82ced5a9 Diego Biurrun
@code{E} means that support is provided through an external library.
478
479 d0e1cd3d Diego Biurrun
@section Audio Codecs
480
481 485ec4f1 Aurelien Jacobs
@multitable @columnfractions .4 .1 .1 .4
482 b3de4544 Diego Biurrun
@item Name @tab Encoding @tab Decoding @tab Comments
483 16d81b27 Diego Biurrun
@item 8SVX audio             @tab     @tab  X
484 82ced5a9 Diego Biurrun
@item AAC                    @tab  E  @tab  X
485 360f980b Diego Biurrun
    @tab encoding supported through external library libfaac
486 c76d1bb2 Justin Ruggles
@item AC-3                   @tab IX  @tab  X
487 fd75cedd Diego Biurrun
@item ADPCM 4X Movie         @tab     @tab  X
488
@item ADPCM CDROM XA         @tab     @tab  X
489
@item ADPCM Creative Technology @tab     @tab  X
490
    @tab 16 -> 4, 8 -> 4, 8 -> 3, 8 -> 2
491
@item ADPCM Electronic Arts  @tab     @tab  X
492
    @tab Used in various EA titles.
493
@item ADPCM Electronic Arts Maxis CDROM XS  @tab     @tab  X
494
    @tab Used in Sim City 3000.
495
@item ADPCM Electronic Arts R1  @tab     @tab  X
496
@item ADPCM Electronic Arts R2  @tab     @tab  X
497
@item ADPCM Electronic Arts R3  @tab     @tab  X
498
@item ADPCM Electronic Arts XAS @tab     @tab  X
499
@item ADPCM G.726            @tab  X  @tab  X
500
@item ADPCM IMA AMV          @tab     @tab  X
501
    @tab Used in AMV files
502
@item ADPCM IMA Electronic Arts EACS  @tab     @tab  X
503
@item ADPCM IMA Electronic Arts SEAD  @tab     @tab  X
504
@item ADPCM IMA Funcom       @tab     @tab  X
505
@item ADPCM IMA QuickTime    @tab  X  @tab  X
506
@item ADPCM IMA Loki SDL MJPEG  @tab     @tab  X
507
@item ADPCM IMA WAV          @tab  X  @tab  X
508
@item ADPCM IMA Westwood     @tab     @tab  X
509
@item ADPCM ISS IMA          @tab     @tab  X
510
    @tab Used in FunCom games.
511
@item ADPCM IMA Duck DK3     @tab     @tab  X
512
    @tab Used in some Sega Saturn console games.
513
@item ADPCM IMA Duck DK4     @tab     @tab  X
514
    @tab Used in some Sega Saturn console games.
515
@item ADPCM Microsoft        @tab  X  @tab  X
516
@item ADPCM MS IMA           @tab  X  @tab  X
517
@item ADPCM Nintendo Gamecube THP  @tab     @tab  X
518
@item ADPCM QT IMA           @tab  X  @tab  X
519
@item ADPCM SEGA CRI ADX     @tab  X  @tab  X
520
    @tab Used in Sega Dreamcast games.
521
@item ADPCM Shockwave Flash  @tab  X  @tab  X
522
@item ADPCM SMJPEG IMA       @tab     @tab  X
523
    @tab Used in certain Loki game ports.
524
@item ADPCM Sound Blaster Pro 2-bit  @tab     @tab  X
525
@item ADPCM Sound Blaster Pro 2.6-bit  @tab     @tab  X
526
@item ADPCM Sound Blaster Pro 4-bit  @tab     @tab  X
527
@item ADPCM Westwood Studios IMA @tab     @tab  X
528
    @tab Used in Westwood Studios games like Command and Conquer.
529
@item ADPCM Yamaha           @tab  X  @tab  X
530 82ced5a9 Diego Biurrun
@item AMR-NB                 @tab  E  @tab  E
531 fc1206a4 Diego Biurrun
    @tab supported through external library libopencore-amrnb
532
@item AMR-WB                 @tab     @tab  E
533
    @tab decoding supported through external library libopencore-amrwb
534 833e90dd Jai Menon
@item Apple lossless audio   @tab  X  @tab  X
535 d698c5d3 Diego Biurrun
    @tab QuickTime fourcc 'alac'
536 61dc238b Benjamin Larsson
@item Atrac 1                @tab     @tab  X
537 9510f59a Diego Biurrun
@item Atrac 3                @tab     @tab  X
538
@item Delphine Software International CIN audio  @tab     @tab  X
539 d698c5d3 Diego Biurrun
    @tab Codec used in Delphine Software International games.
540 9510f59a Diego Biurrun
@item COOK                   @tab     @tab  X
541
    @tab All versions except 5.1 are supported.
542
@item DCA (DTS Coherent Acoustics)  @tab     @tab  X
543 12dd57fd Diego Biurrun
@item DPCM id RoQ            @tab  X  @tab  X
544
    @tab Used in Quake III, Jedi Knight 2, other computer games.
545
@item DPCM Interplay         @tab     @tab  X
546
    @tab Used in various Interplay computer games.
547
@item DPCM Sierra Online     @tab     @tab  X
548
    @tab Used in Sierra Online game audio files.
549
@item DPCM Sol               @tab     @tab  X
550
@item DPCM Xan               @tab     @tab  X
551 eff9011d Sascha Sommer
    @tab Used in Origin's Wing Commander IV AVI files.
552 16d81b27 Diego Biurrun
@item DSP Group TrueSpeech   @tab     @tab  X
553
@item DV audio               @tab     @tab  X
554 44723c84 Justin Ruggles
@item Enhanced AC-3          @tab     @tab  X
555 dd2d651d Diego Biurrun
@item FLAC (Free Lossless Audio Codec)  @tab  X  @tab  IX
556
@item G.729                  @tab     @tab  X
557 82ced5a9 Diego Biurrun
@item GSM                    @tab  E  @tab  E
558 3f33271a Diego Biurrun
    @tab supported through external library libgsm
559 dd2d651d Diego Biurrun
@item GSM Microsoft variant  @tab  E  @tab  E
560 3f33271a Diego Biurrun
    @tab supported through external library libgsm
561 dd2d651d Diego Biurrun
@item IMC (Intel Music Coder)  @tab     @tab  X
562
@item MACE (Macintosh Audio Compression/Expansion) 3:1  @tab     @tab  X
563
@item MACE (Macintosh Audio Compression/Expansion) 6:1  @tab     @tab  X
564 9ba4821d Ramiro Polla
@item MLP (Meridian Lossless Packing)  @tab     @tab  X
565
    @tab Used in DVD-Audio discs.
566 16d81b27 Diego Biurrun
@item Monkey's Audio         @tab     @tab  X
567 d698c5d3 Diego Biurrun
    @tab Only versions 3.97-3.99 are supported.
568 dd2d651d Diego Biurrun
@item MP1 (MPEG audio layer 1)  @tab     @tab IX
569
@item MP2 (MPEG audio layer 2)  @tab IX  @tab IX
570
@item MP3 (MPEG audio layer 3)  @tab  E  @tab IX
571
    @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
572
@item Musepack SV7           @tab     @tab  X
573
@item Musepack SV8           @tab     @tab  X
574 641992de Diego Biurrun
@item Nellymoser Asao        @tab  X  @tab  X
575
@item PCM A-law              @tab  X  @tab  X
576
@item PCM mu-law             @tab  X  @tab  X
577
@item PCM 16-bit little-endian planar  @tab     @tab  X
578
@item PCM 32-bit floating point big-endian  @tab  X  @tab  X
579
@item PCM 32-bit floating point little-endian  @tab  X  @tab  X
580
@item PCM 64-bit floating point big-endian  @tab  X  @tab  X
581
@item PCM 64-bit floating point little-endian  @tab  X  @tab  X
582
@item PCM D-Cinema audio signed 24-bit   @tab  X  @tab  X
583
@item PCM signed 8-bit       @tab  X  @tab  X
584
@item PCM signed 16-bit big-endian  @tab  X  @tab  X
585
@item PCM signed 16-bit little-endian  @tab  X  @tab  X
586
@item PCM signed 24-bit big-endian  @tab  X  @tab  X
587
@item PCM signed 24-bit little-endian  @tab  X  @tab  X
588
@item PCM signed 32-bit big-endian  @tab  X  @tab  X
589
@item PCM signed 32-bit little-endian  @tab  X  @tab  X
590 5dd3707b Christian Schmidt
@item PCM signed 16/20/24-bit big-endian in MPEG-TS  @tab     @tab  X
591 641992de Diego Biurrun
@item PCM unsigned 8-bit     @tab  X  @tab  X
592
@item PCM unsigned 16-bit big-endian  @tab  X  @tab  X
593
@item PCM unsigned 16-bit little-endian  @tab  X  @tab  X
594
@item PCM unsigned 24-bit big-endian  @tab  X  @tab  X
595
@item PCM unsigned 24-bit little-endian  @tab  X  @tab  X
596
@item PCM unsigned 32-bit big-endian  @tab  X  @tab  X
597
@item PCM unsigned 32-bit little-endian  @tab  X  @tab  X
598
@item PCM Zork               @tab  X  @tab  X
599 73b458e3 Kenan Gillet
@item QCELP / PureVoice      @tab     @tab  X
600 a1c5b6ec Justin Ruggles
@item QDesign Music Codec 2  @tab     @tab  X
601 d698c5d3 Diego Biurrun
    @tab There are still some distortions.
602 a1c5b6ec Justin Ruggles
@item RealAudio 1.0 (14.4K)  @tab     @tab  X
603 d698c5d3 Diego Biurrun
    @tab Real 14400 bit/s codec
604 a1c5b6ec Justin Ruggles
@item RealAudio 2.0 (28.8K)  @tab     @tab  X
605 d698c5d3 Diego Biurrun
    @tab Real 28800 bit/s codec
606 a1c5b6ec Justin Ruggles
@item RealAudio 3.0 (dnet)   @tab IX  @tab  X
607 a692130f Justin Ruggles
    @tab Real low bitrate AC-3 codec
608 bac4c85c Diego Biurrun
@item Shorten                @tab     @tab  X
609 68dddf53 Justin Ruggles
@item Sierra VMD audio       @tab     @tab  X
610
    @tab Used in Sierra VMD files.
611 bac4c85c Diego Biurrun
@item Smacker audio          @tab     @tab  X
612 e6fa1ca5 Justin Ruggles
@item Sonic                  @tab  X  @tab  X
613
    @tab experimental codec
614
@item Sonic lossless         @tab  X  @tab  X
615
    @tab experimental codec
616 82ced5a9 Diego Biurrun
@item Speex                  @tab     @tab  E
617 360f980b Diego Biurrun
    @tab supported through external library libspeex
618 16d81b27 Diego Biurrun
@item True Audio (TTA)       @tab     @tab  X
619 9ba4821d Ramiro Polla
@item TrueHD                 @tab     @tab  X
620
    @tab Used in HD-DVD and Blu-Ray discs.
621 7bd47335 Vitor Sessak
@item TwinVQ (VQF flavor)    @tab     @tab  X
622 dd2d651d Diego Biurrun
@item Vorbis                 @tab  E  @tab  X
623
    @ A native but very primitive encoder exists.
624 bac4c85c Diego Biurrun
@item WavPack                @tab     @tab  X
625 eacf8613 Justin Ruggles
@item Westwood Audio (SND1)  @tab     @tab  X
626
@item Windows Media Audio 1  @tab  X  @tab  X
627
@item Windows Media Audio 2  @tab  X  @tab  X
628 c1061cc7 Sascha Sommer
@item Windows Media Audio Pro @tab    @tab  X
629 d0e1cd3d Diego Biurrun
@end multitable
630
631
@code{X} means that encoding (resp. decoding) is supported.
632
633 82ced5a9 Diego Biurrun
@code{E} means that support is provided through an external library.
634
635 d0e1cd3d Diego Biurrun
@code{I} means that an integer-only version is available, too (ensures high
636
performance on systems without hardware floating point support).
637
638 bd3151f2 Diego Biurrun
@section Subtitle Formats
639
640 000bbebb Diego Biurrun
@multitable @columnfractions .4 .1 .1 .1 .1
641 9afc2917 Diego Biurrun
@item Name @tab Muxing @tab Demuxing @tab Encoding @tab Decoding
642 913c3e2c Diego Biurrun
@item SSA/ASS      @tab X @tab X
643 9afc2917 Diego Biurrun
@item DVB          @tab X @tab X @tab X @tab X
644
@item DVD          @tab X @tab X @tab X @tab X
645 c58b82a2 Stephen Backway
@item PGS          @tab   @tab   @tab   @tab X
646 a4276ba2 Reimar Döffinger
@item XSUB         @tab   @tab   @tab X @tab X
647 bd3151f2 Diego Biurrun
@end multitable
648
649
@code{X} means that the feature is supported.
650
651 fbd52050 Diego Biurrun
@section Network Protocols
652
653 000bbebb Diego Biurrun
@multitable @columnfractions .4 .1
654 fbd52050 Diego Biurrun
@item Name         @tab Support
655
@item file         @tab X
656
@item Gopher       @tab X
657
@item HTTP         @tab X
658
@item pipe         @tab X
659
@item RTP          @tab X
660
@item TCP          @tab X
661
@item UDP          @tab X
662
@end multitable
663
664
@code{X} means that the protocol is supported.
665
666
667 fa3f2a35 Diego Biurrun
@section Input/Output Devices
668
669
@multitable @columnfractions .4 .1 .1
670
@item Name              @tab Input  @tab Output
671
@item ALSA              @tab X      @tab X
672
@item BEOS audio        @tab X      @tab X
673
@item BKTR              @tab X      @tab
674
@item DV1394            @tab X      @tab
675 80ff8a16 Olivier Guilyardi
@item JACK              @tab X      @tab
676 fa3f2a35 Diego Biurrun
@item LIBDC1394         @tab X      @tab
677
@item OSS               @tab X      @tab X
678
@item Video4Linux       @tab X      @tab
679
@item Video4Linux2      @tab X      @tab
680
@item VfW capture       @tab X      @tab
681
@item X11 grabbing      @tab X      @tab
682
@end multitable
683
684 23869b4a Diego Biurrun
@code{X} means that input/output is supported.
685 fa3f2a35 Diego Biurrun
686
687 d0e1cd3d Diego Biurrun
@chapter Platform Specific information
688
689
@section BSD
690
691
BSD make will not build FFmpeg, you need to install and use GNU Make
692
(@file{gmake}).
693
694
@section Windows
695
696 46a845d0 Ramiro Polla
To get help and instructions for building FFmpeg under Windows, check out
697 d0e1cd3d Diego Biurrun
the FFmpeg Windows Help Forum at
698 ab5ce4ae Ramiro Polla
@url{http://ffmpeg.arrozcru.org/}.
699 d0e1cd3d Diego Biurrun
700
@subsection Native Windows compilation
701
702 c1989552 Ramiro Polla
FFmpeg can be built to run natively on Windows using the MinGW tools. Install
703 126cadc7 Ramiro Polla
the latest versions of MSYS and MinGW from @url{http://www.mingw.org/}.
704
You can find detailed installation
705 d0e1cd3d Diego Biurrun
instructions in the download section and the FAQ.
706
707 126cadc7 Ramiro Polla
FFmpeg does not build out-of-the-box with the packages the automated MinGW
708
installer provides. It also requires coreutils to be installed and many other
709
packages updated to the latest version. The minimum version for some packages
710
are listed below:
711
712
@itemize
713
@item bash 3.1
714
@item msys-make 3.81-2 (note: not mingw32-make)
715 2014b51c Ramiro Polla
@item w32api 3.13
716 126cadc7 Ramiro Polla
@item mingw-runtime 3.15
717
@end itemize
718
719 44be8d42 Ramiro Polla
FFmpeg automatically passes @code{-fno-common} to the compiler to work around
720 0f898714 Diego Biurrun
a GCC bug (see @url{http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37216}).
721
722 c1989552 Ramiro Polla
Within the MSYS shell, configure and make with:
723 d0e1cd3d Diego Biurrun
724 c1989552 Ramiro Polla
@example
725 0f898714 Diego Biurrun
./configure --enable-memalign-hack --extra-cflags=-fno-common
726 c1989552 Ramiro Polla
make
727
make install
728
@end example
729 d0e1cd3d Diego Biurrun
730 c1989552 Ramiro Polla
This will install @file{ffmpeg.exe} along with many other development files
731
to @file{/usr/local}. You may specify another install path using the
732
@code{--prefix} option in @file{configure}.
733 d0e1cd3d Diego Biurrun
734 c1989552 Ramiro Polla
Notes:
735 d0e1cd3d Diego Biurrun
736 c1989552 Ramiro Polla
@itemize
737 d0e1cd3d Diego Biurrun
738 c1989552 Ramiro Polla
@item In order to compile FFplay, you must have the MinGW development library
739
of SDL. Get it from @url{http://www.libsdl.org}.
740
Edit the @file{bin/sdl-config} script so that it points to the correct prefix
741
where SDL was installed. Verify that @file{sdl-config} can be launched from
742
the MSYS command line.
743 d0e1cd3d Diego Biurrun
744
@item By using @code{./configure --enable-shared} when configuring FFmpeg,
745 c1989552 Ramiro Polla
you can build libavutil, libavcodec and libavformat as DLLs.
746 d0e1cd3d Diego Biurrun
747
@end itemize
748
749 c1989552 Ramiro Polla
@subsection Microsoft Visual C++ compatibility
750 d0e1cd3d Diego Biurrun
751 c1989552 Ramiro Polla
As stated in the FAQ, FFmpeg will not compile under MSVC++. However, if you
752
want to use the libav* libraries in your own applications, you can still
753
compile those applications using MSVC++. But the libav* libraries you link
754
to @emph{must} be built with MinGW. However, you will not be able to debug
755
inside the libav* libraries, since MSVC++ does not recognize the debug
756
symbols generated by GCC.
757
We strongly recommend you to move over from MSVC++ to MinGW tools.
758 d0e1cd3d Diego Biurrun
759 c1989552 Ramiro Polla
This description of how to use the FFmpeg libraries with MSVC++ is based on
760
Microsoft Visual C++ 2005 Express Edition. If you have a different version,
761
you might have to modify the procedures slightly.
762 d0e1cd3d Diego Biurrun
763 c1989552 Ramiro Polla
@subsubsection Using static libraries
764 d0e1cd3d Diego Biurrun
765 c1989552 Ramiro Polla
Assuming you have just built and installed FFmpeg in @file{/usr/local}.
766 d0e1cd3d Diego Biurrun
767
@enumerate
768
769
@item Create a new console application ("File / New / Project") and then
770
select "Win32 Console Application". On the appropriate page of the
771
Application Wizard, uncheck the "Precompiled headers" option.
772
773
@item Write the source code for your application, or, for testing, just
774
copy the code from an existing sample application into the source file
775 c1989552 Ramiro Polla
that MSVC++ has already created for you. For example, you can copy
776 d95a0c67 Diego Biurrun
@file{libavformat/output-example.c} from the FFmpeg distribution.
777 d0e1cd3d Diego Biurrun
778
@item Open the "Project / Properties" dialog box. In the "Configuration"
779
combo box, select "All Configurations" so that the changes you make will
780
affect both debug and release builds. In the tree view on the left hand
781
side, select "C/C++ / General", then edit the "Additional Include
782 c1989552 Ramiro Polla
Directories" setting to contain the path where the FFmpeg includes were
783
installed (i.e. @file{c:\msys\1.0\local\include}).
784 f010d377 Ramiro Polla
Do not add MinGW's include directory here, or the include files will
785
conflict with MSVC's.
786 c1989552 Ramiro Polla
787
@item Still in the "Project / Properties" dialog box, select
788
"Linker / General" from the tree view and edit the
789
"Additional Library Directories" setting to contain the @file{lib}
790
directory where FFmpeg was installed (i.e. @file{c:\msys\1.0\local\lib}),
791
the directory where MinGW libs are installed (i.e. @file{c:\mingw\lib}),
792
and the directory where MinGW's GCC libs are installed
793
(i.e. @file{C:\mingw\lib\gcc\mingw32\4.2.1-sjlj}). Then select
794
"Linker / Input" from the tree view, and add the files @file{libavformat.a},
795
@file{libavcodec.a}, @file{libavutil.a}, @file{libmingwex.a},
796
@file{libgcc.a}, and any other libraries you used (i.e. @file{libz.a})
797
to the end of "Additional Dependencies".
798 d0e1cd3d Diego Biurrun
799
@item Now, select "C/C++ / Code Generation" from the tree view. Select
800
"Debug" in the "Configuration" combo box. Make sure that "Runtime
801
Library" is set to "Multi-threaded Debug DLL". Then, select "Release" in
802
the "Configuration" combo box and make sure that "Runtime Library" is
803
set to "Multi-threaded DLL".
804
805 c1989552 Ramiro Polla
@item Click "OK" to close the "Project / Properties" dialog box.
806
807
@item MSVC++ lacks some C99 header files that are fundamental for FFmpeg.
808
Get msinttypes from @url{http://code.google.com/p/msinttypes/downloads/list}
809
and install it in MSVC++'s include directory
810
(i.e. @file{C:\Program Files\Microsoft Visual Studio 8\VC\include}).
811
812
@item MSVC++ also does not understand the @code{inline} keyword used by
813
FFmpeg, so you must add this line before @code{#include}ing libav*:
814
@example
815
#define inline _inline
816
@end example
817
818
@item Build your application, everything should work.
819
820
@end enumerate
821
822
@subsubsection Using shared libraries
823
824
This is how to create DLL and LIB files that are compatible with MSVC++:
825
826
@enumerate
827
828
@item Add a call to @file{vcvars32.bat} (which sets up the environment
829
variables for the Visual C++ tools) as the first line of @file{msys.bat}.
830
The standard location for @file{vcvars32.bat} is
831
@file{C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat},
832
and the standard location for @file{msys.bat} is @file{C:\msys\1.0\msys.bat}.
833
If this corresponds to your setup, add the following line as the first line
834
of @file{msys.bat}:
835
836
@example
837
call "C:\Program Files\Microsoft Visual Studio 8\VC\bin\vcvars32.bat"
838
@end example
839
840
Alternatively, you may start the @file{Visual Studio 2005 Command Prompt},
841
and run @file{c:\msys\1.0\msys.bat} from there.
842
843
@item Within the MSYS shell, run @code{lib.exe}. If you get a help message
844
from @file{Microsoft (R) Library Manager}, this means your environment
845
variables are set up correctly, the @file{Microsoft (R) Library Manager}
846
is on the path and will be used by FFmpeg to create
847
MSVC++-compatible import libraries.
848
849
@item Build FFmpeg with
850
851
@example
852
./configure --enable-shared --enable-memalign-hack
853
make
854
make install
855
@end example
856
857
Your install path (@file{/usr/local/} by default) should now have the
858
necessary DLL and LIB files under the @file{bin} directory.
859 d0e1cd3d Diego Biurrun
860
@end enumerate
861
862 c1989552 Ramiro Polla
To use those files with MSVC++, do the same as you would do with
863
the static libraries, as described above. But in Step 4,
864
you should only need to add the directory where the LIB files are installed
865
(i.e. @file{c:\msys\usr\local\bin}). This is not a typo, the LIB files are
866
installed in the @file{bin} directory. And instead of adding @file{libxx.a}
867
files, you should add @file{avcodec.lib}, @file{avformat.lib}, and
868
@file{avutil.lib}. There should be no need for @file{libmingwex.a},
869
@file{libgcc.a}, and @file{wsock32.lib}, nor any other external library
870
statically linked into the DLLs. The @file{bin} directory contains a bunch
871
of DLL files, but the ones that are actually used to run your application
872
are the ones with a major version number in their filenames
873
(i.e. @file{avcodec-51.dll}).
874
875 d0e1cd3d Diego Biurrun
@subsection Cross compilation for Windows with Linux
876
877
You must use the MinGW cross compilation tools available at
878
@url{http://www.mingw.org/}.
879
880
Then configure FFmpeg with the following options:
881
@example
882
./configure --target-os=mingw32 --cross-prefix=i386-mingw32msvc-
883
@end example
884
(you can change the cross-prefix according to the prefix chosen for the
885
MinGW tools).
886
887
Then you can easily test FFmpeg with Wine
888
(@url{http://www.winehq.com/}).
889
890
@subsection Compilation under Cygwin
891
892 8484503e Víctor Paesa
The main issue with the 1.5.x Cygwin versions is that newlib, its C library,
893
does not contain llrint().  You need to upgrade to the unstable 1.7.x versions,
894
or leverage the implementation in MinGW (as explained below).
895 d0e1cd3d Diego Biurrun
896
Just install your Cygwin with all the "Base" packages, plus the
897
following "Devel" ones:
898
@example
899 71ecc16b Ramiro Polla
binutils, gcc-core, make, subversion, mingw-runtime
900
@end example
901
902
And the following "Utils" one:
903
@example
904
diffutils
905 d0e1cd3d Diego Biurrun
@end example
906
907 666a1b34 Víctor Paesa
The experimental gcc4 package is still buggy, hence please
908
use the official gcc 3.4.4 or a 4.2.x compiled from source by yourself.
909
910 8484503e Víctor Paesa
Install the current binutils-20080624-2 as they work fine (the old
911
binutils-20060709-1 proved buggy on shared builds).
912 d0e1cd3d Diego Biurrun
913 29c3d42b Víctor Paesa
Then create a small library that just contains llrint():
914
915
@example
916
ar x /usr/lib/mingw/libmingwex.a llrint.o
917
ar cq /usr/local/lib/libllrint.a llrint.o
918
@end example
919
920 d0e1cd3d Diego Biurrun
Then run
921
922
@example
923 29c3d42b Víctor Paesa
./configure --enable-static --disable-shared  --extra-ldflags='-L /usr/local/lib' --extra-libs='-l llrint'
924 d0e1cd3d Diego Biurrun
@end example
925
926
to make a static build or
927
928
@example
929 29c3d42b Víctor Paesa
./configure --enable-shared --disable-static  --extra-ldflags='-L /usr/local/lib' --extra-libs='-l llrint'
930 d0e1cd3d Diego Biurrun
@end example
931
932
to build shared libraries.
933
934
If you want to build FFmpeg with additional libraries, download Cygwin
935 5dd9799d Víctor Paesa
"Devel" packages for Ogg and Vorbis from any Cygwin packages repository:
936
@example
937
libogg-devel, libvorbis-devel
938
@end example
939
940
These library packages are only available from Cygwin Ports
941 be8497b0 Víctor Paesa
(@url{http://sourceware.org/cygwinports/}) :
942 5dd9799d Víctor Paesa
943
@example
944
yasm, libSDL-devel, libdirac-devel, libfaac-devel, libfaad-devel, libgsm-devel,
945
libmp3lame-devel, libschroedinger1.0-devel, speex-devel, libtheora-devel,
946
libxvidcore-devel
947
@end example
948
949
The recommendation for libnut and x264 is to build them from source by
950
yourself, as they evolve too quickly for Cygwin Ports to be up to date.
951 d0e1cd3d Diego Biurrun
952 cdf51395 Víctor Paesa
Cygwin 1.7.x has IPv6 support. You can add IPv6 to Cygwin 1.5.x by means
953
of the @code{libgetaddrinfo-devel} package, available at Cygwin Ports.
954
955 d0e1cd3d Diego Biurrun
@subsection Crosscompilation for Windows under Cygwin
956
957
With Cygwin you can create Windows binaries that do not need the cygwin1.dll.
958
959
Just install your Cygwin as explained before, plus these additional
960
"Devel" packages:
961
@example
962
gcc-mingw-core, mingw-runtime, mingw-zlib
963
@end example
964
965
and add some special flags to your configure invocation.
966
967
For a static build run
968
@example
969
./configure --target-os=mingw32 --enable-memalign-hack --enable-static --disable-shared --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
970
@end example
971
972
and for a build with shared libraries
973
@example
974
./configure --target-os=mingw32 --enable-memalign-hack --enable-shared --disable-static --extra-cflags=-mno-cygwin --extra-libs=-mno-cygwin
975
@end example
976
977
@section BeOS
978
979 5f757b85 Diego Biurrun
BeOS support is broken in mysterious ways.
980 d0e1cd3d Diego Biurrun
981 25b92a79 Dave Yeo
@section OS/2
982
983
For information about compiling FFmpeg on OS/2 see
984
@url{http://www.edm2.com/index.php/FFmpeg}.
985
986 d0e1cd3d Diego Biurrun
@bye