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