Mercurial > mplayer.hg
annotate DOCS/xml/en/codecs.xml @ 21521:b210a229fbcb
General reformatting round:
- fix some " -> "
- reindent with more consistency
- visual markup of <sect?> tags
- break overly long lines
- add missing <replaceable> tags in examples
- cola truck standing by
author | torinthiel |
---|---|
date | Fri, 08 Dec 2006 11:38:06 +0000 |
parents | 6833a38146bb |
children | f551403d82a9 |
rev | line source |
---|---|
20535 | 1 <?xml version="1.0" encoding="utf-8"?> |
10913
49b1a67e7381
Add revision keyword to english xml files, to ease translation synchronization
lumag
parents:
10869
diff
changeset
|
2 <!-- $Revision$ --> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
3 <chapter id="codecs"> |
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
4 <title>Codecs</title> |
9675 | 5 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
6 <sect1 id="video-codecs"> |
9675 | 7 <title>Video codecs</title> |
8 | |
9 <para> | |
19681 | 10 The <ulink url="../../codecs-status.html">codec status table</ulink> is a |
11 complete list of all supported codecs, regenerated daily. | |
12 Some binary codecs for use with MPlayer are available in the | |
13 <ulink url="http://www.mplayerhq.hu/design7/dload.html#binary_codecs">download section</ulink> | |
14 of our homepage. | |
9675 | 15 </para> |
16 | |
17 <para> | |
18 The most important ones above all: | |
19 </para> | |
20 | |
21 <itemizedlist> | |
22 <listitem><simpara> | |
14024 | 23 <emphasis role="bold">MPEG-1</emphasis> (<emphasis role="bold">VCD</emphasis>) and |
24 <emphasis role="bold">MPEG-2</emphasis> (<emphasis role="bold">DVD</emphasis>) video | |
21521 | 25 </simpara></listitem> |
9675 | 26 <listitem><simpara> |
20355 | 27 native decoders for <emphasis role="bold">all DivX variants, |
28 3ivX, M$ MPEG-4</emphasis> v1, v2 and other MPEG-4 variants | |
21521 | 29 </simpara></listitem> |
9675 | 30 <listitem><simpara> |
31 native decoder for <emphasis role="bold">Windows Media Video 7/8</emphasis> | |
32 (<emphasis role="bold">WMV1/WMV2</emphasis>), and Win32 DLL decoder | |
33 for <emphasis role="bold">Windows Media Video 9</emphasis> | |
21521 | 34 (<emphasis role="bold">WMV3</emphasis>), |
35 both used in <filename>.wmv</filename> files | |
36 </simpara></listitem> | |
9675 | 37 <listitem><simpara> |
38 native <emphasis role="bold">Sorenson 1 (SVQ1)</emphasis> decoder | |
21521 | 39 </simpara></listitem> |
9675 | 40 <listitem><simpara> |
10132 | 41 native <emphasis role="bold">Sorenson 3 (SVQ3)</emphasis> decoder |
21521 | 42 </simpara></listitem> |
9675 | 43 <listitem><simpara> |
44 <emphasis role="bold">3ivx</emphasis> v1, v2 decoder | |
21521 | 45 </simpara></listitem> |
9675 | 46 <listitem><simpara> |
21521 | 47 Cinepak and <emphasis role="bold">Intel Indeo</emphasis> codecs |
48 (3.1,3.2,4.1,5.0) | |
49 </simpara></listitem> | |
9675 | 50 <listitem><simpara> |
51 <emphasis role="bold">MJPEG</emphasis>, AVID, VCR2, ASV2 and other hardware | |
52 formats | |
21521 | 53 </simpara></listitem> |
9675 | 54 <listitem><simpara> |
21521 | 55 VIVO 1.0, 2.0, I263 and other <emphasis role="bold">H.263(+)</emphasis> |
56 variants | |
57 </simpara></listitem> | |
9675 | 58 <listitem><simpara> |
59 FLI/FLC | |
21521 | 60 </simpara></listitem> |
9675 | 61 <listitem><simpara> |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11758
diff
changeset
|
62 <emphasis role="bold">RealVideo 1.0 & 2.0</emphasis> from |
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11758
diff
changeset
|
63 <systemitem class="library">libavcodec</systemitem>, and |
21521 | 64 <emphasis role="bold">RealVideo 3.0 & 4.0</emphasis> codecs using |
65 RealPlayer libraries | |
66 </simpara></listitem> | |
9675 | 67 <listitem><simpara> |
68 native decoder for HuffYUV | |
21521 | 69 </simpara></listitem> |
9675 | 70 <listitem><simpara> |
71 Various old simple RLE-like formats | |
21521 | 72 </simpara></listitem> |
9675 | 73 </itemizedlist> |
74 | |
75 <para> | |
76 If you have a Win32 codec not listed here which is not supported yet, | |
14061 | 77 please read the <link linkend="codec-importing">codec importing HOWTO</link> |
9675 | 78 and help us add support for it. |
79 </para> | |
80 | |
21521 | 81 <!-- ********** --> |
9675 | 82 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
83 <sect2 id="ffmpeg" xreflabel="FFmpeg/libavcodec"> |
11107 | 84 <title>FFmpeg/libavcodec</title> |
9675 | 85 |
86 <para> | |
20335 | 87 <ulink url="http://ffmpeg.org">FFmpeg</ulink> contains |
88 <systemitem class="library">libavcodec</systemitem>, the leading | |
89 open source video and audio codec library. It is capable | |
90 of decoding most multimedia formats, usually at higher speeds | |
20666 | 91 than the alternatives, and aims to add support for |
20335 | 92 the rest of them eventually. It is the default decoder for |
93 the majority of codecs that <application>MPlayer</application> | |
94 supports. Encoding is also possible for some formats and | |
95 supported in <application>MEncoder</application>. | |
11089 | 96 </para> |
97 | |
98 <para> | |
20687
558608ebde11
Better wording, especially if hyperlinks are not visible
torinthiel
parents:
20686
diff
changeset
|
99 For a complete list of supported |
558608ebde11
Better wording, especially if hyperlinks are not visible
torinthiel
parents:
20686
diff
changeset
|
100 <ulink url="http://ffmpeg.org/ffmpeg-doc.html#SEC19">video</ulink> |
558608ebde11
Better wording, especially if hyperlinks are not visible
torinthiel
parents:
20686
diff
changeset
|
101 and <ulink url="http://ffmpeg.org/ffmpeg-doc.html#SEC20">audio</ulink> |
558608ebde11
Better wording, especially if hyperlinks are not visible
torinthiel
parents:
20686
diff
changeset
|
102 codecs please visit the FFmpeg homepage. |
10132 | 103 </para> |
104 | |
105 <para> | |
20335 | 106 <application>MPlayer</application> contains |
107 <systemitem class="library">libavcodec</systemitem>. | |
20689 | 108 Just run <filename>./configure</filename> and compile. |
18601
802ec5d54662
</para> tag was accidently deleted and caused compile error
kraymer
parents:
18599
diff
changeset
|
109 </para> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
110 </sect2> |
9675 | 111 |
21521 | 112 <!-- ********** --> |
9675 | 113 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
114 <sect2 id="xvid"> |
20860 | 115 <title>Xvid</title> |
9675 | 116 |
117 <para> | |
20860 | 118 <ulink url="http://www.xvid.org">Xvid</ulink> is a free software MPEG-4 ASP |
15871 | 119 compliant video codec, which features two pass encoding and full MPEG-4 ASP |
15709 | 120 support, making it a lot more efficient than the well-known DivX codec. |
121 It yields very good video quality and good performance due to CPU | |
122 optimizations for most modern processors. | |
123 </para> | |
21521 | 124 |
15709 | 125 <para> |
126 It began as a forked development of the OpenDivX codec. | |
127 This happened when ProjectMayo changed OpenDivX to closed source | |
20355 | 128 DivX4, and the non-ProjectMayo people working on OpenDivX got angry, |
20860 | 129 then started Xvid. So both projects have the same origin. |
9675 | 130 </para> |
131 | |
20335 | 132 <para> |
20860 | 133 Note that Xvid is not necessary to decode Xvid-encoded video. |
20335 | 134 <systemitem class="library">libavcodec</systemitem> is used by |
135 default as it offers better speed. | |
136 </para> | |
137 | |
9675 | 138 <procedure> |
20860 | 139 <title>Installing <systemitem class="library">Xvid</systemitem></title> |
9675 | 140 <para> |
15709 | 141 Like most open source software, it is available in two flavors: |
142 <ulink url="http://www.xvid.org/downloads.html">official releases</ulink> | |
143 and the CVS version. | |
144 The CVS version is usually stable enough to use, as most of the time it | |
145 features fixes for bugs that exist in releases. | |
20860 | 146 Here is what to do to make <systemitem class="library">Xvid</systemitem> |
15709 | 147 CVS work with <application>MEncoder</application> (you need at least |
16067
f9ffda85aeee
the the auto* tools should be inside an <application></application> tag
gpoirier
parents:
15915
diff
changeset
|
148 <application>autoconf</application> 2.50, |
f9ffda85aeee
the the auto* tools should be inside an <application></application> tag
gpoirier
parents:
15915
diff
changeset
|
149 <application>automake</application> and <application>libtool</application>): |
9675 | 150 </para> |
151 <step><para> | |
152 <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login</screen> | |
21521 | 153 </para></step> |
9675 | 154 <step><para> |
155 <screen>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore</screen> | |
156 </para></step> | |
157 <step><para> | |
158 <screen>cd xvidcore/build/generic</screen> | |
21521 | 159 </para></step> |
9675 | 160 <step><para> |
9720
5cd40fe6ba7e
Updated XviD CVS instructions by Dmitry Baryshkov <lumag@qnc.ru>.
diego
parents:
9683
diff
changeset
|
161 <screen>./bootstrap.sh</screen> |
21521 | 162 </para></step> |
9675 | 163 <step><para> |
9720
5cd40fe6ba7e
Updated XviD CVS instructions by Dmitry Baryshkov <lumag@qnc.ru>.
diego
parents:
9683
diff
changeset
|
164 <screen>./configure</screen> |
5cd40fe6ba7e
Updated XviD CVS instructions by Dmitry Baryshkov <lumag@qnc.ru>.
diego
parents:
9683
diff
changeset
|
165 You may have to add some options (examine the output of |
13223
4d3536e69177
- <screen> -> <command>, improves readibility and sense.
wight
parents:
13222
diff
changeset
|
166 <command>./configure --help</command>). |
21521 | 167 </para></step> |
9675 | 168 <step><para> |
9720
5cd40fe6ba7e
Updated XviD CVS instructions by Dmitry Baryshkov <lumag@qnc.ru>.
diego
parents:
9683
diff
changeset
|
169 <screen>make && make install</screen> |
21521 | 170 </para></step> |
9720
5cd40fe6ba7e
Updated XviD CVS instructions by Dmitry Baryshkov <lumag@qnc.ru>.
diego
parents:
9683
diff
changeset
|
171 <step><para> |
5cd40fe6ba7e
Updated XviD CVS instructions by Dmitry Baryshkov <lumag@qnc.ru>.
diego
parents:
9683
diff
changeset
|
172 If you specified <option>--enable-divxcompat</option>, |
5cd40fe6ba7e
Updated XviD CVS instructions by Dmitry Baryshkov <lumag@qnc.ru>.
diego
parents:
9683
diff
changeset
|
173 copy <filename>../../src/divx4.h</filename> to |
9675 | 174 <filename class="directory">/usr/local/include/</filename>. |
21521 | 175 </para></step> |
9675 | 176 <step><para> |
177 Recompile <application>MPlayer</application> with | |
12000 | 178 <option>--with-xvidlibdir=<replaceable>/path/to/</replaceable>libxvidcore.a</option> |
20312
acab67264bf9
capitalization fixes, add missing dots to sentences
kraymer
parents:
19681
diff
changeset
|
179 <option>--with-xvidincdir=<replaceable>/path/to/</replaceable>xvid.h</option>. |
21521 | 180 </para></step> |
9675 | 181 </procedure> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
182 </sect2> |
9675 | 183 |
21521 | 184 <!-- ********** --> |
9675 | 185 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
186 <sect2 id="codec-x264"> |
20684
9076064494eb
A bunch of missing <systemitem class="library"> tags
torinthiel
parents:
20683
diff
changeset
|
187 <title><systemitem class="library">x264</systemitem></title> |
15326 | 188 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
189 <sect3 id="codec-x264-whatis"> |
20684
9076064494eb
A bunch of missing <systemitem class="library"> tags
torinthiel
parents:
20683
diff
changeset
|
190 <title>What is <systemitem class="library">x264</systemitem>?</title> |
21521 | 191 |
15326 | 192 <para> |
21521 | 193 <ulink url="http://developers.videolan.org/x264.html"><systemitem class="library">x264</systemitem></ulink> |
194 is a library for creating H.264 video streams. | |
195 It is not 100% complete, but currently it has at least some kind | |
196 of support for most of the H.264 features which impact quality. | |
197 There are also many advanced features in the H.264 specification | |
198 which have nothing to do with video quality per se; many of these | |
199 are not yet implemented in <systemitem class="library">x264</systemitem>. | |
15326 | 200 </para> |
201 | |
202 <itemizedlist> | |
203 <title>Encoder features</title> | |
204 <listitem><para>CAVLC/CABAC</para></listitem> | |
205 <listitem><para>Multi-references</para></listitem> | |
21521 | 206 <listitem><para> |
207 Intra: all macroblock types (16x16, 8x8, and 4x4 with all predictions) | |
208 </para></listitem> | |
209 <listitem><para> | |
210 Inter P: all partitions (from 16x16 down to 4x4) | |
211 </para></listitem> | |
212 <listitem><para> | |
213 Inter B: partitions from 16x16 down to 8x8 (including SKIP/DIRECT) | |
214 </para></listitem> | |
215 <listitem><para> | |
216 Ratecontrol: constant quantizer, constant bitrate, single or multipass ABR, | |
217 optional VBV | |
218 </para></listitem> | |
15326 | 219 <listitem><para>Scene cut detection</para></listitem> |
220 <listitem><para>Adaptive B-frame placement</para></listitem> | |
21521 | 221 <listitem><para> |
222 B-frames as references / arbitrary frame order | |
223 </para></listitem> | |
17273 | 224 <listitem><para>8x8 and 4x4 adaptive spatial transform</para></listitem> |
225 <listitem><para>Lossless mode</para></listitem> | |
226 <listitem><para>Custom quantization matrices</para></listitem> | |
227 <listitem><para>Parallel encoding of multiple slices</para></listitem> | |
21152 | 228 <listitem><para>Interlacing</para></listitem> |
15326 | 229 </itemizedlist> |
21521 | 230 </sect3> |
15326 | 231 |
232 | |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
233 <sect3 id="codec-h264-whatis"> |
15326 | 234 <title>What is H.264?</title> |
21521 | 235 |
15326 | 236 <para> |
21521 | 237 H.264 is one name for a new digital video codec jointly developed |
238 by the ITU and MPEG. | |
239 It can also be correctly referred to by the cumbersome names of | |
240 "ISO/IEC 14496-10" or "MPEG-4 Part 10". | |
241 More frequently, it is referred to as "MPEG-4 AVC" or just "AVC". | |
15326 | 242 </para> |
21521 | 243 |
15326 | 244 <para> |
21521 | 245 Whatever you call it, H.264 may be worth trying because it can typically match |
246 the quality of MPEG-4 ASP with 5%-30% less bitrate. | |
247 Actual results will depend on both the source material and the encoder. | |
248 The gains from using H.264 do not come for free: Decoding H.264 | |
249 streams seems to have steep CPU and memory requirements. | |
250 For instance, on a 1733 MHz Athlon, a DVD-resolution 1500kbps H.264 | |
251 video requires around 35% CPU to decode. | |
252 By comparison, decoding a DVD-resolution 1500kbps MPEG-4 ASP stream | |
253 requires around 10% CPU. | |
254 This means that decoding high-definition streams is almost out of | |
255 the question for most users. | |
256 It also means that even a decent DVD rip may sometimes stutter on | |
257 processors slower than 2.0 GHz or so. | |
15326 | 258 </para> |
21521 | 259 |
15326 | 260 <para> |
21521 | 261 At least with <systemitem class="library">x264</systemitem>, |
262 encoding requirements are not much worse than what you are used to | |
263 with MPEG-4 ASP. | |
264 For instance, on a 1733 MHz Athlon a typical DVD encode would run | |
265 at 5-15fps. | |
15326 | 266 </para> |
21521 | 267 |
15326 | 268 <para> |
21521 | 269 This document is not intended to explain the details of H.264, |
270 but if you are interested in a brief overview, you may want to read | |
271 <ulink url="http://www.cdt.luth.se/~peppar/kurs/smd151/spie04-h264OverviewPaper.pdf">The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions</ulink>. | |
15326 | 272 </para> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
273 </sect3> |
15326 | 274 |
21521 | 275 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
276 <sect3 id="codec-x264-playback"> |
21521 | 277 <title>How can I play H.264 videos with |
278 <application>MPlayer</application>?</title> | |
279 | |
15326 | 280 <para> |
21521 | 281 <application>MPlayer</application> uses |
282 <systemitem class="library">libavcodec</systemitem>'s H.264 decoder. | |
283 <systemitem class="library">libavcodec</systemitem> has had at | |
284 least minimally usable H.264 decoding since around July 2004, | |
285 however major changes and improvements have been implemented since | |
286 that time, both in terms of more functionalities supported and in | |
287 terms of improved CPU usage. | |
288 Just to be certain, it is always a good idea to use a recent Subversion | |
289 checkout. | |
15326 | 290 </para> |
21521 | 291 |
15326 | 292 <para> |
21521 | 293 If you want a quick and easy way to know whether there have been |
294 recent changes to <systemitem class="library">libavcodec</systemitem>'s | |
295 H.264 decoding, you might keep an eye on | |
296 <ulink url="http://svn.mplayerhq.hu/ffmpeg/trunk/libavcodec/h264.c?view=log">FFmpeg Subversion repository's web interface</ulink>. | |
15326 | 297 </para> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
298 </sect3> |
15326 | 299 |
21521 | 300 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
301 <sect3 id="codec-x264-encode"> |
21521 | 302 <title>How can I encode videos using <application>MEncoder</application> |
303 and <systemitem class="library">x264</systemitem>?</title> | |
304 | |
15326 | 305 <para> |
21521 | 306 If you have the subversion client installed, the latest x264 |
307 sources can be gotten with this command: | |
308 <screen>svn co svn://svn.videolan.org/x264/trunk x264</screen> | |
309 <application>MPlayer</application> sources are updated whenever | |
310 an <systemitem class="library">x264</systemitem> API change | |
311 occurs, so it is always suggested to use | |
312 <application>MPlayer</application> from Subversion as well. | |
313 Perhaps this situation will change when and if an | |
314 <systemitem class="library">x264</systemitem> "release" occurs. | |
315 Meanwhile, <systemitem class="library">x264</systemitem> should | |
316 be considered very unstable, in the sense that its programming | |
317 interface is subject to change. | |
15326 | 318 </para> |
21521 | 319 |
15326 | 320 <para> |
21521 | 321 <systemitem class="library">x264</systemitem> is built and |
322 installed in the standard way: | |
323 <screen>./configure && make && sudo make install</screen> | |
324 This installs libx264.a in /usr/local/lib and x264.h is placed in | |
325 /usr/local/include. | |
15326 | 326 |
21521 | 327 With the <systemitem class="library">x264</systemitem> library |
328 and header placed in the standard locations, building | |
329 <application>MPlayer</application> with | |
330 <systemitem class="library">x264</systemitem> support is easy. | |
331 Just run the standard: | |
332 <screen>./configure && make && sudo make install</screen> | |
333 The <filename>./configure</filename> script will autodetect that you have | |
334 satisfied the requirements for <systemitem class="library">x264</systemitem>. | |
15326 | 335 </para> |
336 </sect3> | |
9675 | 337 </sect2> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
338 </sect1> |
9675 | 339 |
21521 | 340 |
341 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> | |
342 | |
9675 | 343 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
344 <sect1 id="audio-codecs"> |
9675 | 345 <title>Audio codecs</title> |
346 | |
347 <itemizedlist> | |
348 <title>The most important audio codecs above all:</title> | |
349 <listitem><simpara> | |
11342 | 350 MPEG layer 1/2/3 (MP1/2/3) audio (<emphasis role="bold">native</emphasis> |
9675 | 351 code, with MMX/SSE/3DNow! optimization) |
21521 | 352 </simpara></listitem> |
9675 | 353 <listitem><simpara> |
21521 | 354 Windows Media Audio 7 and 8 (AKA WMAv1 and WMAv2) |
355 (<emphasis role="bold">native</emphasis> code, with | |
11822
359eaf957bf1
Add <systemitem class="library"> tags to libavcodec and a few others.
diego
parents:
11758
diff
changeset
|
356 <link linkend="ffmpeg"><systemitem class="library">libavcodec</systemitem></link>) |
21521 | 357 </simpara></listitem> |
9675 | 358 <listitem><simpara> |
359 Windows Media Audio 9 (WMAv3) (using DMO DLL) | |
21521 | 360 </simpara></listitem> |
9675 | 361 <listitem><simpara> |
362 AC3 Dolby audio (<emphasis role="bold">native</emphasis> code, with | |
363 MMX/SSE/3DNow! optimization) | |
21521 | 364 </simpara></listitem> |
9675 | 365 <listitem><simpara> |
13532 | 366 AC3 passing through sound card hardware |
21521 | 367 </simpara></listitem> |
9675 | 368 <listitem><simpara> |
11342 | 369 AAC |
21521 | 370 </simpara></listitem> |
11342 | 371 <listitem><simpara> |
9675 | 372 Ogg Vorbis audio codec (<emphasis role="bold">native</emphasis> library) |
21521 | 373 </simpara></listitem> |
9675 | 374 <listitem><simpara> |
375 RealAudio: DNET (low bitrate AC3), Cook, Sipro and ATRAC3 | |
21521 | 376 </simpara></listitem> |
9675 | 377 <listitem><simpara> |
378 QuickTime: Qualcomm and QDesign audio codecs | |
21521 | 379 </simpara></listitem> |
9675 | 380 <listitem><simpara> |
381 VIVO audio (g723, Vivo Siren) | |
21521 | 382 </simpara></listitem> |
9675 | 383 <listitem><simpara> |
384 Voxware audio (using DirectShow DLL) | |
21521 | 385 </simpara></listitem> |
9675 | 386 <listitem><simpara> |
387 alaw and ulaw, various gsm, adpcm and pcm formats and other simple old | |
388 audio codecs | |
21521 | 389 </simpara></listitem> |
18060
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
390 <listitem><simpara> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
391 Adaptive Multi-Rate (AMR) speech codecs |
21521 | 392 </simpara></listitem> |
9675 | 393 </itemizedlist> |
394 | |
21521 | 395 <!-- ********** --> |
9675 | 396 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
397 <sect2 id="swac3"> |
9675 | 398 <title>Software AC3 decoding</title> |
399 | |
400 <para> | |
401 This is the default decoder used for files with AC3 audio. | |
402 </para> | |
403 | |
404 <para> | |
405 The AC3 decoder can create audio output mixes for 2, 4, or 6 speakers. | |
406 When configured for 6 speakers, this decoder provides separate output of | |
407 all the AC3 channels to the sound driver, allowing for full "surround | |
408 sound" experience without the external AC3 decoder required to use the | |
409 hwac3 codec. | |
410 </para> | |
411 | |
412 <para> | |
413 Use the <option>-channels</option> option to select the number of output | |
414 channels. Use <option>-channels 2</option> for a stereo downmix. For a 4 | |
415 channel downmix (Left Front, Right Front, Left Surround and Right Surround | |
416 outputs), use <option>-channels 4</option>. In this case, any center | |
21521 | 417 channel will be mixed equally to the front channels. |
418 <option>-channels 6</option> will output all the AC3 channels as they are | |
419 encoded - in the order Left, Right, Left Surround, Right Surround, Center and | |
420 LFE. | |
9675 | 421 </para> |
422 | |
423 <para> | |
424 The default number of output channels is 2. | |
425 </para> | |
426 | |
427 <para> | |
428 To use more than 2 output channels, you will need to use OSS, and have a | |
429 sound card that supports the appropriate number of output channels via the | |
430 SNDCTL_DSP_CHANNELS ioctl. An example of a suitable driver is emu10k1 | |
431 (used by Soundblaster Live! cards) from August 2001 or newer (ALSA CVS is | |
432 also supposed to work). | |
433 </para> | |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
434 </sect2> |
9675 | 435 |
21521 | 436 <!-- ********** --> |
9675 | 437 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
438 <sect2 id="hwac3"> |
9675 | 439 <title>Hardware AC3 decoding</title> |
21521 | 440 |
9675 | 441 <para> |
12369 | 442 You need an AC3 capable sound card, with digital out (S/PDIF). The card's |
9675 | 443 driver must properly support the AFMT_AC3 format (C-Media does). Connect |
12369 | 444 your AC3 decoder to the S/PDIF output, and use the <option>-ac |
9675 | 445 hwac3</option> option. It is experimental but known to work with C-Media |
446 cards and Soundblaster Live! + ALSA (but not OSS) drivers and DXR3/Hollywood+ | |
447 MPEG decoder cards. | |
448 </para> | |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
449 </sect2> |
9675 | 450 |
21521 | 451 <!-- ********** --> |
9675 | 452 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
453 <sect2 id="libmad"> |
20684
9076064494eb
A bunch of missing <systemitem class="library"> tags
torinthiel
parents:
20683
diff
changeset
|
454 <title><systemitem class="library">libmad</systemitem> support</title> |
9675 | 455 |
456 <para> | |
20684
9076064494eb
A bunch of missing <systemitem class="library"> tags
torinthiel
parents:
20683
diff
changeset
|
457 <ulink url="http://www.underbit.com/products/mad/"><systemitem class="library">libmad</systemitem></ulink> |
9076064494eb
A bunch of missing <systemitem class="library"> tags
torinthiel
parents:
20683
diff
changeset
|
458 is a multiplatform, integer (internally 24bit PCM) only |
9675 | 459 MPEG audio decoding library. It does not handle broken files well, and it |
11342 | 460 sometimes has problems with seeking, but it may perform better on FPU-less |
21521 | 461 (such as <link linkend="arm">ARM</link>) |
462 platform than <systemitem class="library">mp3lib</systemitem>. | |
9675 | 463 </para> |
464 | |
465 <para> | |
21521 | 466 If you have a proper installation of |
467 <systemitem class="library">libmad</systemitem>, | |
468 <filename>./configure</filename> will notice and support for MPEG audio | |
469 decoding via <systemitem class="library">libmad</systemitem> will be built | |
470 automatically. | |
9675 | 471 </para> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
472 </sect2> |
9675 | 473 |
21521 | 474 <!-- ********** --> |
475 | |
17432 | 476 <sect2 id="hwmpa"> |
477 <title>Hardware MPEG audio codec</title> | |
478 | |
479 <para> | |
21521 | 480 This codec (selected by <option>-ac hwmpa</option>) passes through MPEG audio |
481 packets to hardware decoders, such as the ones found in full-featured DVB cards | |
17432 | 482 and DXR2 adapters. |
483 Don't use it in combination with any other audio output device | |
484 (such as OSS and ALSA) that isn't able to decode it (you will hear | |
485 only white noise). | |
486 </para> | |
487 </sect2> | |
488 | |
21521 | 489 <!-- ********** --> |
9675 | 490 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
491 <sect2 id="aac"> |
9802 | 492 <title>AAC codec</title> |
21521 | 493 |
9802 | 494 <para> |
495 AAC (Advanced Audio Coding) is an audio codec sometimes found in MOV and MP4 | |
496 files. An open source decoder called FAAD is available from | |
10766 | 497 <ulink url="http://www.audiocoding.com"/>. |
14658 | 498 <application>MPlayer</application> includes a CVS snapshot of libfaad 2.1 |
499 beta, so you do not need to get it separately. | |
9802 | 500 </para> |
11031 | 501 |
502 <para> | |
503 If you use gcc 3.2 which fails to compile our internal FAAD or want to use | |
504 the external library for some other reason, download the library from the | |
14113 | 505 <ulink url="http://www.audiocoding.com/modules/mydownloads/">download page</ulink> |
21521 | 506 and pass <option>--enable-faad-external</option> |
507 to <filename>./configure</filename>. | |
11031 | 508 You do not need all of faad2 to decode AAC files, libfaad is enough. Build |
509 it like this: | |
510 <screen> | |
511 cd faad2/ | |
14700 | 512 sh bootstrap |
11031 | 513 ./configure |
514 cd libfaad | |
515 make | |
516 make install | |
517 </screen> | |
518 Binaries are not available from audiocoding.com, but you can (apt-)get Debian | |
21521 | 519 packages from |
520 <ulink url="http://www.debian-multimedia.org/">Christian Marillat's homepage</ulink>, | |
521 Mandrake/Mandriva RPMs from the <ulink url="http://plf.zarb.org">P.L.F</ulink> | |
522 and RedHat RPMs from <ulink url="http://greysector.rangers.eu.org/">Grey Sector</ulink>. | |
11031 | 523 </para> |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
524 </sect2> |
9802 | 525 |
21521 | 526 <!-- ********** --> |
527 | |
18060
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
528 <sect2 id="amr"> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
529 <title>AMR codecs</title> |
21521 | 530 |
18060
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
531 <para> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
532 Adaptive Multi-Rate speech codec is used in third generation (3G) mobile |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
533 phones. |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
534 Reference implementation is available from |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
535 <ulink url="http://www.3gpp.org">The 3rd Generation Partnership Project</ulink> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
536 (free for private use). |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
537 </para> |
21521 | 538 |
18060
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
539 <para> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
540 To enable support, download the sources for |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
541 <ulink url="http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26104-610.zip">AMR-NB</ulink> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
542 and |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
543 <ulink url="http://www.3gpp.org/ftp/Specs/latest/Rel-6/26_series/26204-600.zip">AMR-WB</ulink> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
544 codecs, put them in the directory where you unpacked the |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
545 <application>MPlayer</application> source and run the following commands: |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
546 <screen> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
547 unzip 26104-610.zip |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
548 unzip 26104-610_ANSI_C_source_code.zip |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
549 mv c-code libavcodec/amr_float |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
550 unzip 26204-600.zip |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
551 unzip 26204-600_ANSI-C_source_code.zip |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
552 mv c-code libavcodec/amrwb_float |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
553 </screen> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
554 After that, follow the usual <application>MPlayer</application> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
555 <link linkend="features">build procedure</link>. |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
556 </para> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
557 </sect2> |
cbc29633fbee
AMR codecs support info, patch by Rathann, with slight alteration by me.
gpoirier
parents:
17432
diff
changeset
|
558 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
559 </sect1> |
9675 | 560 |
21521 | 561 |
562 <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> | |
563 | |
9675 | 564 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
565 <sect1 id="codec-importing"> |
9675 | 566 <title>Win32 codecs importing HOWTO</title> |
567 | |
568 <!-- TODO: a short paragraph of text would be nice here... --> | |
569 | |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
570 <sect2 id="vfw-codecs"> |
9675 | 571 <title>VFW codecs</title> |
572 | |
573 <para> | |
574 VFW (Video for Windows) is the old Video API for Windows. Its codecs have | |
575 the <filename>.DLL</filename> or (rarely) <filename>.DRV</filename> | |
576 extension. If <application>MPlayer</application> fails at playing your AVI | |
577 with this kind of message: | |
578 <screen>UNKNOWN video codec: HFYU (0x55594648)</screen> | |
579 It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU = | |
580 HuffYUV codec, DIV3 = DivX Low Motion, etc.). Now that you know this, you | |
581 have to find out which DLL Windows loads in order to play this file. In our | |
582 case, the <filename>system.ini</filename> contains this information in a | |
583 line that reads: | |
584 <programlisting>VIDC.HFYU=huffyuv.dll</programlisting> | |
585 </para> | |
586 | |
587 <para> | |
588 So you need the <filename>huffyuv.dll</filename> file. Note that the audio | |
589 codecs are specified by the MSACM prefix: | |
590 <programlisting>msacm.l3acm=L3codeca.acm</programlisting> | |
591 </para> | |
592 | |
593 <para> | |
594 This is the MP3 codec. Now that you have all the necessary information | |
595 (fourcc, codec file, sample AVI), submit your codec support request by | |
596 mail, and upload these files to the FTP site: | |
21521 | 597 <systemitem role="url">ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable><codecname></replaceable>/</systemitem> |
9675 | 598 </para> |
599 | |
600 <note><para>On Windows NT/2000/XP search for this info in the registry, | |
601 e.g. search for "VIDC.HFYU". To find out how to do this, look at | |
602 the old DirectShow method below. | |
603 </para></note> | |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
604 </sect2> |
9675 | 605 |
21521 | 606 <!-- ********** --> |
9675 | 607 |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
608 <sect2 id="dshow-codecs"> |
9675 | 609 <title>DirectShow codecs</title> |
610 | |
611 <para> | |
612 DirectShow is the newer Video API, which is even worse than its predecessor. | |
613 Things are harder with DirectShow, since | |
614 <itemizedlist> | |
615 <listitem><simpara> | |
616 <filename>system.ini</filename> does not contain the needed information, | |
617 instead it is stored in the registry and | |
21521 | 618 </simpara></listitem> |
9675 | 619 <listitem><simpara> |
620 we need the GUID of the codec. | |
21521 | 621 </simpara></listitem> |
9675 | 622 </itemizedlist> |
623 </para> | |
624 | |
625 <procedure> | |
626 <title>New Method:</title> | |
627 <para> | |
628 Using <application>Microsoft GraphEdit</application> (fast) | |
629 </para> | |
630 <step><para> | |
631 Get <application>GraphEdit</application> from either DirectX SDK or | |
20322 | 632 <ulink url="http://doom9.net">doom9</ulink>. |
21521 | 633 </para></step> |
9675 | 634 <step><para> |
635 Start <command>graphedit.exe</command>. | |
21521 | 636 </para></step> |
9675 | 637 <step><para> |
638 From the menu select Graph -> Insert Filters. | |
21521 | 639 </para></step> |
9675 | 640 <step><para> |
20322 | 641 Expand item <systemitem>DirectShow Filters</systemitem>. |
21521 | 642 </para></step> |
9675 | 643 <step><para> |
644 Select the right codec name and expand item. | |
21521 | 645 </para></step> |
9675 | 646 <step><para> |
647 In the entry <systemitem>DisplayName</systemitem> look at the text in | |
648 winged brackets after the backslash and write it down (five dash-delimited | |
649 blocks, the GUID). | |
21521 | 650 </para></step> |
9675 | 651 <step><para> |
21521 | 652 The codec binary is the file specified in the |
653 <systemitem>Filename</systemitem> entry. | |
654 </para></step> | |
9675 | 655 </procedure> |
656 | |
21521 | 657 <note><para> |
9675 | 658 If there is no <systemitem>Filename</systemitem> and |
659 <systemitem>DisplayName</systemitem> contains something like | |
660 <systemitem>device:dmo</systemitem>, then it is a DMO-Codec. | |
21521 | 661 </para></note> |
9675 | 662 |
663 <procedure> | |
664 <title>Old Method:</title> | |
665 <para> | |
666 Take a deep breath and start searching the registry... | |
667 </para> | |
668 <step><para> | |
669 Start <command>regedit</command>. | |
21521 | 670 </para></step> |
9675 | 671 <step><para> |
672 Press <keycap>Ctrl</keycap>+<keycap>F</keycap>, disable the first two | |
673 checkboxes, and enable the third. Type in the fourcc of the codec (e.g. | |
674 <userinput>TM20</userinput>). | |
21521 | 675 </para></step> |
9675 | 676 <step><para> |
677 You should see a field which contains the path and the filename (e.g. | |
678 <filename>C:\WINDOWS\SYSTEM\TM20DEC.AX</filename>). | |
21521 | 679 </para></step> |
9675 | 680 <step><para> |
681 Now that you have the file, we need the GUID. Try searching again, but | |
682 now search for the codec's name, not the fourcc. Its name can be acquired | |
683 when Media Player is playing the file, by checking | |
684 <guimenu>File</guimenu> -> <guisubmenu>Properties</guisubmenu> -> | |
685 <guimenuitem>Advanced</guimenuitem>. | |
686 If not, you are out of luck. Try guessing (e.g. search for TrueMotion). | |
21521 | 687 </para></step> |
9675 | 688 <step><para> |
689 If the GUID is found you should see a <guilabel>FriendlyName</guilabel> | |
690 and a <guilabel>CLSID</guilabel> field. Write down the 16 byte CLSID, | |
691 this is the GUID we need. | |
21521 | 692 </para></step> |
9675 | 693 </procedure> |
694 | |
21521 | 695 <note><para> |
9675 | 696 If searching fails, try enabling all the checkboxes. You may have |
697 false hits, but you may get lucky... | |
21521 | 698 </para></note> |
9675 | 699 |
700 <para> | |
701 Now that you have all the necessary information (fourcc, GUID, codec file, | |
702 sample AVI), submit your codec support request by mail, and upload these files | |
703 to the FTP site: | |
21521 | 704 <systemitem role="url">ftp://upload.mplayerhq.hu/MPlayer/incoming/<replaceable><codecname></replaceable>/</systemitem> |
9675 | 705 </para> |
14004
3d698ac7ec9a
Explain what you need to read to add a codec yourself, patch by
diego
parents:
13977
diff
changeset
|
706 |
3d698ac7ec9a
Explain what you need to read to add a codec yourself, patch by
diego
parents:
13977
diff
changeset
|
707 <para> |
3d698ac7ec9a
Explain what you need to read to add a codec yourself, patch by
diego
parents:
13977
diff
changeset
|
708 If you want to add a codec yourself, read |
3d698ac7ec9a
Explain what you need to read to add a codec yourself, patch by
diego
parents:
13977
diff
changeset
|
709 <ulink url="http://www.mplayerhq.hu/MPlayer/DOCS/tech/codecs.conf.txt">DOCS/tech/codecs.conf.txt</ulink>. |
3d698ac7ec9a
Explain what you need to read to add a codec yourself, patch by
diego
parents:
13977
diff
changeset
|
710 </para> |
3d698ac7ec9a
Explain what you need to read to add a codec yourself, patch by
diego
parents:
13977
diff
changeset
|
711 |
9675 | 712 </sect2> |
713 </sect1> | |
17321
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
714 |
7f9fcf5245a0
Improve overall structure by adding a few top-level chapters so that
diego
parents:
17273
diff
changeset
|
715 </chapter> |