Since there have been quite a few questions recently on how to use the
[libav.git] / doc / faq.texi
CommitLineData
7ff56c72
FB
1\input texinfo @c -*- texinfo -*-
2
3@settitle FFmpeg FAQ
4@titlepage
5@sp 7
6@center @titlefont{FFmpeg FAQ}
7@sp 3
8@end titlepage
9
10
11@chapter General Problems
12
cacf7199 13@section ffserver does not work.
7ff56c72
FB
14
15ffmpeg development is now concentrated on the codec and format
16handling. New developments broke ffserver, so don't expect it to work
f2fe8752 17correctly. If you have time and experience, please help us fix it.
7ff56c72 18
cacf7199 19@section I cannot read this file although this format seems to be supported by ffmpeg.
7ff56c72
FB
20
21Even if ffmpeg can read the file format, it may not support all its
22codecs. Please consult the supported codec list in the ffmpeg
23documentation.
24
cacf7199 25@section I get audio/video synchronization problems when grabbing.
7ff56c72
FB
26
27Currently, the grabbing stuff does not handle synchronisation
cacf7199 28correctly. You are free to correct it. A fix is planned.
7ff56c72 29
87759af9 30@section How do I encode JPEGs to another format ?
7ff56c72 31
87759af9 32If the JPEGs are named img1.jpg, img2.jpg, img3.jpg,..., use:
7ff56c72
FB
33
34@example
35 ffmpeg -i img%d.jpg /tmp/a.mpg
36@end example
37
38@samp{%d} is replaced by the image number.
39
40@file{img%03d.jpg} generates @file{img001.jpg}, @file{img002.jpg}, etc...
41
42The same system is used for the other image formats.
43
44@section FFmpeg does not support codec XXX. Can you include a Windows DLL loader to support it ?
45
46No. FFmpeg only supports open source codecs. Windows DLLs are not
47portable, bloated and often slow.
48
f2fe8752
RS
49@section Why do I see a slight quality degradation with multithreaded MPEG* encoding ?
50
51For multithreaded MPEG* encoding, the encoded slices must be independent,
cacf7199
MM
52otherwise thread n would practically have to wait for n-1 to finish, so it's
53quite logical that there is a small reduction of quality. This is not a bug.
f2fe8752 54
47d944d2
FB
55@section How can I read from the standard input or write to the standard output ?
56
57Use @file{-} as filename.
58
cacf7199 59@section Why does ffmpeg not decode audio in VOB files ?
db0e9b03 60
cacf7199
MM
61The audio is AC3 (a.k.a. A/52). AC3 decoding is an optional component in ffmpeg
62as the component that handles AC3 decoding (liba52) is currently released under
63the GPL. If you have liba52 installed on your system, enable AC3 decoding
64with @code{./configure --enable-a52}. Take care: by
db0e9b03
FB
65enabling AC3, you automatically change the license of libavcodec from
66LGPL to GPL.
67
87759af9 68@section Which codecs are supported by Windows ?
c75f51f6 69
87759af9 70Windows does not support standard formats like MPEG very well, unless you
c75f51f6
MN
71install some additional codecs
72
9ba42958 73The following list of video codecs should work on most Windows systems:
c75f51f6
MN
74@table @option
75@item msmpeg4v2
76.avi/.asf
77@item msmpeg4
78.asf only
79@item wmv1
80.asf only
81@item wmv2
82.asf only
83@item mpeg4
9ba42958 84only if you have some MPEG-4 codec installed like ffdshow or XviD
c75f51f6
MN
85@item mpeg1
86.mpg only
87@end table
87759af9 88Note, ASF files often have .wmv or .wma extensions in Windows. It should also
cacf7199
MM
89be mentioned that Microsoft claims a patent on the ASF format, and may sue
90or threaten users who create ASF files with non-Microsoft software. It is
91strongly advised to avoid ASF where possible.
c75f51f6 92
9ba42958 93The following list of audio codecs should work on most Windows systems:
c75f51f6
MN
94@table @option
95@item adpcm_ima_wav
96@item adpcm_ms
97@item pcm
98@item mp3
9ba42958 99if some MP3 codec like LAME is installed
c75f51f6
MN
100@end table
101
9ba42958 102@section Why does the chrominance data seem to be sampled at a different time from the luminance data on bt8x8 captures on Linux?
7c0dc383 103
cacf7199
MM
104This is a well-known bug in the bt8x8 driver. For 2.4.26 there is a patch at
105(@url{http://www.mplayerhq.hu/~michael/bttv-420-2.4.26.patch}). This may also
106apply cleanly to other 2.4-series kernels.
7c0dc383 107
87759af9 108@section How do I avoid the ugly aliasing artifacts in bt8x8 captures on Linux?
7c0dc383 109
cacf7199
MM
110Pass 'combfilter=1 lumafilter=1' to the bttv driver. Note though that 'combfilter=1'
111will cause somewhat too strong filtering. A fix is to apply (@url{http://www.mplayerhq.hu/~michael/bttv-comb-2.4.26.patch})
fc3e9202 112or (@url{http://www.mplayerhq.hu/~michael/bttv-comb-2.6.6.patch})
cacf7199 113and pass 'combfilter=2'.
7c0dc383 114
9ba42958 115@section I have a problem with an old version of ffmpeg; where should I report it?
cacf7199 116Nowhere. Upgrade to the latest release or if there is no recent release upgrade
87759af9
DB
117to CVS. You could also try to report it. Maybe you will get lucky and
118become the first person in history to get an answer different from "upgrade
119to CVS".
dd1368db 120
9ba42958 121@section -f jpeg doesn't work.
fc3e9202 122
87759af9 123Try '-f image -img jpeg test%d.jpg'.
fc3e9202 124
cacf7199 125@section Why can I not change the framerate?
73468318 126
9ba42958 127Some codecs, like MPEG-1/2, only allow a small number of fixed framerates.
cacf7199 128Choose a different codec with the -vcodec command line option.
73468318 129
cacf7199 130@section ffmpeg does not work; What is wrong?
9291d591 131
cacf7199
MM
132Try a 'make distclean' in the ffmpeg source directory. If this does not help see
133(@url{ffmpeg-bugreport.html}).
9291d591 134
87759af9 135@section How do I encode XviD or DivX video with ffmpeg?
f62e9435 136
87759af9 137Both XviD and DivX (version 4+) are implementations of the ISO MPEG-4
f62e9435
MM
138standard (note that there are many other coding formats that use this
139same standard). Thus, use '-vcodec mpeg4' to encode these formats. The
c9a08db9 140default fourcc stored in an MPEG-4-coded file will be 'FMP4'. If you want
f62e9435
MM
141a different fourcc, use the '-vtag' option. E.g., '-vtag xvid' will
142force the fourcc 'xvid' to be stored as the video fourcc rather than the
143default.
144
7ff56c72
FB
145@chapter Development
146
cacf7199 147@section Are there examples illustrating how to use the FFmpeg libraries, particularly libavcodec and libavformat ?
a93b9dba 148
cacf7199
MM
149Yes. Read the Developers Guide of the FFmpeg documentation. Alternatively,
150examine the source code for one of the many open source projects that
151already incorporate ffmpeg at (@url{projects.php}).
a93b9dba 152
7ff56c72
FB
153@section Can you support my C compiler XXX ?
154
cacf7199
MM
155No. Only GCC is supported. GCC is ported to most systems available and there
156is no need to pollute the source code with @code{#ifdef}s
7ff56c72
FB
157related to the compiler.
158
988a9f9e 159@section Can I use FFmpeg or libavcodec under Windows ?
7ff56c72 160
988a9f9e
FB
161Yes, but the MinGW tools @emph{must} be used to compile FFmpeg. You
162can link the resulting DLLs with any other Windows program. Read the
be0efc0c
MB
163@emph{Native Windows Compilation} and @emph{Visual C++ compatibility}
164sections in the FFmpeg documentation to find more information.
7ff56c72
FB
165
166@section Can you add automake, libtool or autoconf support ?
167
cacf7199 168No. These tools are too bloated and they complicate the build. Moreover,
7ff56c72
FB
169since only @samp{gcc} is supported they would add little advantages in
170terms of portability.
171
cacf7199 172@section Why not rewrite ffmpeg in object-oriented C++ ?
fbf33e4f 173
87759af9 174ffmpeg is already organized in a highly modular manner and does not need to
cacf7199
MM
175be rewritten in a formal object language. Further, many of the developers
176favor straight C; it works for them. For more arguments on this matter,
177read "Programming Religion" at (@url{http://lkml.org/faq/lkmlfaq-15.html}).
178
179@section Why are the ffmpeg programs devoid of debugging symbols ?
180
181The build process creates ffmpeg_g, ffplay_g, etc. which contain full debug
182information. Those binaries are strip'd to create ffmpeg, ffplay, etc. If
183you need the debug information, used the *_g versions.
fbf33e4f 184
e180129f 185@section I do not like the LGPL, can I contribute code under the GPL instead ?
61a1e081 186
e180129f
DB
187Yes, as long as the code is optional and can easily and cleanly be placed
188under #ifdef CONFIG_GPL without breaking anything. So for example a new codec
189or filter would be OK under GPL while a bugfix to LGPL code would not.
61a1e081 190
e180129f 191@section I want to compile xyz.c alone but my compiler produced many errors.
61a1e081 192
e180129f
DB
193Common code is in its own files in libav* and is used by the individual
194codecs. They will not work without the common parts, you have to compile
195the whole libav*. If you wish, disable some parts with configure switches.
196You can also try to hack it and remove more, but if you had problems fixing
197the compilation failure then you are probably not qualified for this.
61a1e081 198
9fcfac15 199@section Visual C++ produces many errors.
61a1e081 200
9fcfac15
DB
201You need a C compiler (Visual C++ is not compliant to the C standard).
202If you wish - for whatever weird reason - to use Visual C++ for your
203project then you can link the Visual C++ code with libav* as long as
be0efc0c
MB
204you compile the latter with a working C compiler. For more information, see
205the @emph{Visual C++ compatibility} section in the FFmpeg documentation.
61a1e081 206
7ff56c72 207@bye