comparison DOCS/codecs.html @ 5534:f17a48c860d7

commited hogyishijjak's patch
author gabucino
date Mon, 08 Apr 2002 16:40:52 +0000
parents 28aacc467e13
children 5bb339c33131
comparison
equal deleted inserted replaced
5533:dd78203ea703 5534:f17a48c860d7
18 <P><B><A NAME=2.2.1>2.2.1. Video codecs</A></B></P> 18 <P><B><A NAME=2.2.1>2.2.1. Video codecs</A></B></P>
19 19
20 <P>See <A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">http://www.mplayerhq.hu/DOCS/codecs-status.html</A> for the complete, 20 <P>See <A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">http://www.mplayerhq.hu/DOCS/codecs-status.html</A> for the complete,
21 daily generated list!!!</P> 21 daily generated list!!!</P>
22 22
23 <P>The most important ones above all:<BR> 23 <P>The most important ones above all:</P>
24 <UL> 24 <UL>
25 <LI>MPEG1 (VCD) and MPEG2 (DVD) video</LI> 25 <LI>MPEG1 (VCD) and MPEG2 (DVD) video</LI>
26 <LI>DivX ;-), OpenDivX (DivX4), DivX 5.00, 3ivX and other MPEG4 variants</LI> 26 <LI>DivX ;-), OpenDivX (DivX4), DivX 5.00, 3ivX and other MPEG4 variants</LI>
27 <LI>Windows Media Video 7 (WMV1) and 8 (WMV2) used in .wmv files</LI> 27 <LI>Windows Media Video 7 (WMV1) and 8 (WMV2) used in .wmv files</LI>
28 <LI>Cinepak and Intel Indeo codecs (3.1,3.2,4.1,5.0)</LI> 28 <LI>Cinepak and Intel Indeo codecs (3.1,3.2,4.1,5.0)</LI>
29 <LI>MJPEG, AVID, VCR2, ASV2 and other hardware formats</LI> 29 <LI>MJPEG, AVID, VCR2, ASV2 and other hardware formats</LI>
30 <LI>VIVO 1.0, 2.0, I263 and other h263(+) variants</LI> 30 <LI>VIVO 1.0, 2.0, I263 and other h263(+) variants</LI>
31 <LI>FLI/FLC</LI> 31 <LI>FLI/FLC</LI>
32 <LI>RealVideo 1.0</LI> 32 <LI>RealVideo 1.0</LI>
33 <LI>Various old simple RLE-like formats</LI> 33 <LI>Various old simple RLE-like formats</LI>
34 </UL></P> 34 </UL>
35 35
36 <P>If you have a Win32 codec not listed here, and not supported yet, just read the <A 36 <P>If you have a Win32 codec not listed here which is not supported yet, please read the
37 HREF="#2.2.3">codec importing</A> to get info about how to help us adding support 37 <A HREF="#2.2.3">codec importing HOWTO</A> and help us add support
38 for it!</P> 38 for it!</P>
39 39
40 <P><B><A NAME=2.2.1.1>2.2.1.1. DivX4/DivX5</A></B></P> 40 <P><B><A NAME=2.2.1.1>2.2.1.1. DivX4/DivX5</A></B></P>
41 41
42 <P>This section contains information about the DivX4 codec of 42 <P>This section contains information about the DivX4 codec of
43 <A HREF="http://www.projectmayo.com">ProjectMayo</A>. Their first available alpha version was the OpenDivX 4.0 43 <A HREF="http://www.projectmayo.com">Project Mayo</A>. Their first available alpha version was OpenDivX 4.0
44 alpha 47 and 48. Support for this was/is included in <B>MPlayer</B>, and built by 44 alpha 47 and 48. Support for this was/is included in <B>MPlayer</B>, and built by
45 default. We used to use its postprocessing code to optionally enhance visual 45 default. Earlier, we used its postprocessing code to optionally enhance visual
46 quality of MPEG1/2 movies. Now we use our own.</P> 46 quality of MPEG1/2 movies. Now we use our own.</P>
47 47
48 <P>The new generation of this codec can even decode movies made with the 48 <P>The new generation of this codec is called DivX4Linux and can even decode
49 infamous DivX codec! And it's not everything, it's MUCH faster than the 49 movies made with the infamous DivX codec! In addition it is much faster than the
50 traditional Win32 DivX DLL's (note that libavcodec's decoder is EVEN FASTER, 50 native Win32 DivX DLLs but slower than libavcodec.
51 so the usage of this codec is <B>DISCOURAGED</B> - you need it only for 51 Hence its usage as a decoder is <B>DISCOURAGED</B>. However, it is useful for
52 encoding). See below for configuration. The only disadvantage of this codec is 52 encoding. One disadvantage of this codec is that it is currently closed source.</P>
53 that it's currently closed-source. :(</P> 53
54 54 <P>The codec can be downloaded from one of the following URLs:</P>
55 <P>The codec can be downloaded from the following URL:</P> 55
56 56 <P>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A><BR>
57 <P>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A></P> 57 &nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://divx.com">http://divx.com</A></P>
58
59 <P>If it doesn't work, try :</P>
60
61 <P>&nbsp;&nbsp;&nbsp;&nbsp;<A HREF="http://divx.com">http://divx.com</A></P>
62 58
63 <P>Unpack it, and run <CODE>./install.sh</CODE> as root.</P> 59 <P>Unpack it, and run <CODE>./install.sh</CODE> as root.</P>
64 60
65 <P>Note: do NOT forget to add <CODE>/usr/local/lib</CODE> to your 61 <P>Note: Do NOT forget adding <CODE>/usr/local/lib</CODE> to your
66 <CODE>/etc/ld.so.conf</CODE> and running <CODE>ldconfig</CODE> !</P> 62 <CODE>/etc/ld.so.conf</CODE> and running <CODE>ldconfig</CODE>!</P>
67 63
68 <P><B>MPlayer</B> autodetects if DivX4/DivX5 is (properly) installed, just 64 <P><B>MPlayer</B> autodetects DivX4/DivX5 if it is properly installed, just
69 compile as usual. If it doesn't detect it, you didn't install it exactly as 65 compile as usual. If it does not detect it, you did not install or configure
70 above, and/or has messed up config (see last question of 5.1 section).</P> 66 it correctly.</P>
71 67
72 <P>Using it is a bit tricky. As it conflicts with the old OpenDivX (its API is 68 <P>DivX4Linux conflicts with the old OpenDivX because their APIs are similar but
73 very similar to OpenDivX's), OpenDivX code is disabled, and this (DivX4) 69 incompatible. Therefore you can only have one of them compiled into <B>MPlayer</B>
74 codec will be used to decode old OpenDivX movies.</P> 70 at a time.</P>
75 71
76 <P>Generally we can pinpoint this issue to that you have two options to use 72 <P>DivX4Linux offers an OpenDivX compatibility mode such that you may choose from
77 this codec:</P> 73 the following options when using this codec:</P>
78 74
79 <P><TABLE BORDER=0> 75 <TABLE BORDER=0>
80 <TD>&nbsp;&nbsp;</TD><TD VALIGN=top><FONT CLASS="text">-vc&nbsp;odivx</TD><TD>&nbsp;&nbsp;</TD> 76 <TR><TD>&nbsp;&nbsp;</TD><TD VALIGN=top><CODE>-vc&nbsp;odivx</CODE></TD><TD>&nbsp;&nbsp;</TD>
81 <TD><FONT CLASS="text">using the codec as a new version of OpenDivX. 77 <TD><FONT CLASS="text">Uses the codec in OpenDivX fashion. In this case it
82 in this case it produces YV12 image in its own buffer, 78 produces YV12 images in its own buffer, and <B>MPlayer</B> does colorspace
83 and <B>MPlayer</B> (libvo) does colorspace conversion. (<B>RECOMMENDED!</B>)</TD><TR> 79 conversion via libvo. (<B>RECOMMENDED!</B>)</FONT></TD></TR>
84 <TD></TD><TD VALIGN=top><FONT CLASS="text">-vc&nbsp;divx4</TD><TD></TD> 80 <TR><TD></TD><TD VALIGN=top><CODE>-vc&nbsp;divx4</CODE></TD><TD></TD>
85 <TD><FONT CLASS="text">using the codec's colorspace conversion. 81 <TD><FONT CLASS="text">Uses the colorspace conversion of the codec.
86 in this mode, you can use YUY2/UYVY too.</TD></TR> 82 In this mode you can use YUY2/UYVY, too.</FONT></TD></TR>
87 </TABLE></P> 83 </TABLE>
88 84
89 <P>The 'odivx' method is usually faster, due to the fact that it transfers 85 <P>The <CODE>-vc odivx</CODE> method is usually faster, due to the fact that it transfers
90 image data in YV12 (planar YUV 4:2:0) format, thus requiring much less 86 image data in YV12 (planar YUV 4:2:0) format, thus requiring much less
91 bandwidth on the bus. For packed YUV modes (YUY2, UYVY) use the 'divx4' 87 bandwidth on the bus. For packed YUV modes (YUY2, UYVY) use the <CODE>-vc divx4</CODE>
92 method. For RGB modes you can choose freely, their speed is same, maybe 88 method. For RGB modes the speed is the same, differing at best
93 differ according to the current bpp.</P> 89 according to your current color depth.</P>
94 90
95 <P>NOTE: If your -vo driver supports direct rendering, then -vc divx4 may be 91 <P>NOTE: If your -vo driver supports direct rendering, then <CODE>-vc divx4</CODE> may be
96 faster, or even the fastest solution.</P> 92 faster, or even the fastest solution.</P>
97 93
98 <P>Note: <B>OLD</B> OpenDivX supports postprocessing too (use option 94 <P>Note: <B>OLD</B> OpenDivX supports postprocessing via the
99 <CODE>-oldpp</CODE> to enable using it), but range of values is strange: </P> 95 <CODE>-oldpp</CODE> option, but the range of values is strange:</P>
100 96
101 <P><TABLE BORDER=0> 97 <TABLE BORDER=0>
102 <TD>&nbsp;&nbsp;</TD><TD><FONT CLASS="text">0</TD><TD>&nbsp;&nbsp;</TD> 98 <TR><TD>&nbsp;&nbsp;</TD><TD><FONT CLASS="text">0</FONT></TD><TD>&nbsp;&nbsp;</TD>
103 <TD><FONT CLASS="text">no postproc</TD><TR> 99 <TD><FONT CLASS="text">no postprocessing</FONT></TD></TR>
104 <TD></TD><TD><FONT CLASS="text">10 .. 20</TD> 100 <TR><TD></TD><TD><FONT CLASS="text">10 .. 20</FONT></TD>
105 <TD></TD><TD><FONT CLASS="text">postprocessing, normal (like level 2 with divxds)</TD><TR> 101 <TD></TD><TD><FONT CLASS="text">normal postprocessing (like level 2 with divxds)</FONT></TD></TR>
106 <TD></TD><TD><FONT CLASS="text">30 .. 60</TD> 102 <TR><TD></TD><TD><FONT CLASS="text">30 .. 60</FONT></TD>
107 <TD></TD><TD><FONT CLASS="text">hard prostprocessing, eats many CPU (like level 4 with divxds</TD><TR> 103 <TD></TD><TD><FONT CLASS="text">hard postprocessing, CPU intensive (like level 4 with divxds)</FONT></TD></TR>
108 </TABLE></P> 104 </TABLE>
109 105
110 <P><B><A NAME=2.2.1.2>2.2.1.2. ffmpeg's DivX/libavcodec</A></B></P> 106 <P><B><A NAME=2.2.1.2>2.2.1.2. FFmpeg DivX/libavcodec</A></B></P>
111 107
112 <P>Beginning with version 0.4.2 , 108 <P>Beginning with version 0.4.2,
113 <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> contains an 109 <A HREF="http://ffmpeg.sourceforge.net">FFmpeg</A> contains an
114 <B>opensource</B> DivX codec, which is compatible with the traditional DivX. 110 <B>open source</B> DivX codec, which is compatible with the traditional DivX.
115 <B>MPlayer</B> supports this codec, and this makes it possible to <B>watch 111 <B>MPlayer</B> supports this codec, making it possible to <B>watch
116 DivX/DivX4/DivX5 movies on non-x86 platforms</B>, and gain much faster 112 DivX/DivX4/DivX5 movies on non-x86 platforms</B>. Furthermore it offers higher
117 <B>DivX/DivX4/DivX5</B> decoding speed than the Win32 codecs and the original 113 <B>DivX/DivX4/DivX5</B> decoding speed than the Win32 codecs or the original
118 DivX4 library has!</P> 114 DivX4 library!</P>
119 115
120 <P>It also contains lots of nice codecs, such as RealVideo 1.0, MJPEG, h263, 116 <P>It also contains a lot of nice codecs, such as RealVideo 1.0, MJPEG, h263,
121 h263+, etc.</P> 117 h263+, etc.</P>
122 118
123 <P>If you use MPlayer 119 <P>If you use an <B>MPlayer</B> release you have libavcodec right in the package,
120 just build as usual. If you use <B>MPlayer</B> from CVS you have to extract
121 libavcodec from the FFmpeg CVS tree as FFmpeg 0.4.5 does <B>not</B> work with
122 <B>MPlayer</B>. In order to achieve this do:</P>
123
124 <OL>
125 <LI><CODE>cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login</CODE></LI>
126 <LI><CODE>cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg</CODE></LI>
127 <LI>Move the <CODE>libavcodec</CODE> directory from the FFmpeg sources to the
128 root of the <B>MPlayer</B> CVS tree. It should look like this:
129 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>main/libavcodec</CODE></P>
130 Symlinking is <B>not</B> enough, you have to copy/move it!!!</LI>
131 <LI>Compile. Configure should detect problems before compilation.</LI>
132 </OL>
133
134
135 <P>The codec also <B>supports postprocessing!</B></P>
136
137 <P>With FFmpeg and my Matrox G400, I can view even the highest resolution DivX
138 movies without dropped frames on my K6/2 500.</P>
139
140
141 <P><B><A NAME=2.2.1.3>2.2.1.3. XAnim codecs</A></B></P>
142
143 <P>Foreword:<BR>
144 Be advised that the XAnim binary codecs are packaged with a piece of text
145 claiming to be a legally binding software license which, besides other
146 restrictions, forbids the user to use the codecs in conjunction with any
147 program other than XAnim. However, the XAnim author has yet to bring legal
148 action against anyone for codec-related issues.
149 </P>
150
151 <P><B>MPlayer</B> is capable of employing the XAnim codecs for decoding. Follow
152 the instructions to enable them:</P>
124 153
125 <UL> 154 <UL>
126 <LI>from release : then you have libavcodec right in the package, just 155 <LI>Download the codecs you wish to use from the
127 build <B>MPlayer</B> as usual.</LI>
128 <LI>from CVS : you have to download it manually directly from <B>FFmpeg</B>'s
129 CVS tree (ffmpeg 0.4.5 version will NOT work with mplayer!):
130
131 <P><CODE>
132 cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login<BR>
133 cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg
134 </CODE></P>
135
136 <P>Note: <I>if you copy with CVS subdirs, next time it's enough to do
137 'cvs update'.</I></P>
138 <P>Now, move the newly downloaded ffmpeg source's <B>libavcodec</B> directory,
139 (with all it's subdirectories) to <B>MPlayer</B>'s tree, so it will look
140 like this:</P>
141
142 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>main/libavcodec</CODE></P>
143
144 <P>Symlinking is NOT enough, you have to copy/move it!!!</P>
145
146 </LI>
147 </UL>
148 </P>
149
150 <P>Then compile. configure detects if it's alright, and can be compiled. The
151 codec also <B>supports postprocessing!</B></P>
152
153 <P>With ffmpeg and my Matrox G400, I can view even the highest resolution DivX
154 movies on my K6/2 500, without dropped frames.</P>
155
156
157 <P><B><A NAME=2.2.1.3>2.2.1.3. XAnim codecs</A></B></P>
158
159 <P>Foreword:
160 Be advised that the XAnim binary codecs are packaged with a piece of text
161 claiming to be a legally binding software license which, among other
162 absurdities, forbids the user to use the codecs in conjunction with any
163 program other than XAnim. As the XAnim author has yet to bring legal
164 action against anyone for codec-related issues, the MPlayer developers
165 don't lose too much sleep over this and you probably shouldn't, either.
166 </P>
167
168 <P>So yes, <B>MPlayer</B> can use XAnim's codecs for decoding. It's very
169 easy to enable them:</P>
170
171 <P>
172 <UL>
173 <LI>download the codecs you wish to use from the
174 <A HREF="http://xanim.va.pubnix.com">XAnim site</A>. The <B>3ivx</B> codec 156 <A HREF="http://xanim.va.pubnix.com">XAnim site</A>. The <B>3ivx</B> codec
175 isn't there, so download it from the <A HREF="http://www.3ivx.com">3ivx site</A>.</LI> 157 is not there, but at the <A HREF="http://www.3ivx.com">3ivx site</A>.</LI>
176 158
177 <LI>use the <CODE>--with-xanimlibdir</CODE> option to tell configure where 159 <LI>Use the <CODE>--with-xanimlibdir</CODE> option to tell configure where
178 it can find the xanim codecs. By default, it checks them at 160 to find the XAnim codecs. By default, it looks for them at
179 <CODE>/usr/local/lib/xanim/mods, /usr/lib/xanim/mods and /usr/lib/xanim</CODE>. 161 <CODE>/usr/local/lib/xanim/mods, /usr/lib/xanim/mods and /usr/lib/xanim</CODE>.
180 Alternatively you can set the environment variable <I>XANIM_MOD_DIR</I> to 162 Alternatively you can set the environment variable <I>XANIM_MOD_DIR</I> to
181 the dir of the XAnim codecs.</LI> 163 the directory of the XAnim codecs.</LI>
182 164
183 <LI>rename/symlink the filenames by cutting out the architecture stuff, so they will 165 <LI>Rename/symlink the files, cutting out the architecture stuff, so they will
184 have filenames like these : <CODE>vid_cvid.xa, vid_h263.xa, vid_iv50.xa</CODE> 166 have filenames like these: <CODE>vid_cvid.xa, vid_h263.xa, vid_iv50.xa</CODE>
185 167
186 </UL> 168 </UL>
187 </P> 169
188 170 <P>XAnim is video codec family number 10, so you may want to use the <CODE>-vfm 10</CODE>
189 <P>They are video codec family number 10, so you may want to use <CODE>-vfm 10</CODE>
190 option to tell <B>MPlayer</B> to use them if possible.</P> 171 option to tell <B>MPlayer</B> to use them if possible.</P>
191 172
192 <P>Tested codecs are: <B>Indeo 3.2</B>, <B>4.1</B>, <B>5.0</B>, <B>CVID</B>, <B>3ivX</B>, <B>h263</B>.</P> 173 <P>Tested codecs include: <B>Indeo 3.2</B>, <B>4.1</B>, <B>5.0</B>, <B>CVID</B>, <B>3ivX</B>, <B>h263</B>.</P>
193 174
194 175
195 <P><B><A NAME=2.2.1.4>2.2.1.4. VIVO video</A></B></P> 176 <P><B><A NAME=2.2.1.4>2.2.1.4. VIVO video</A></B></P>
196 177
197 <P><B>MPlayer</B> can play Vivo (1.0 and 2.0) videos. The most suitable codec 178 <P><B>MPlayer</B> can play Vivo (1.0 and 2.0) videos. The most suitable codec
198 for 1.0 files is FFmpeg's H263 decoder, you can use it with the <CODE>-vc 179 for 1.0 files is FFmpeg's H263 decoder, you can use it with the <CODE>-vc
199 ffh263</CODE> option (default) (you'll need the newest libavcodec !). For 2.0 files, use 180 ffh263</CODE> option (default) (requires up-to-date libavcodec). For 2.0 files, use
200 the <CODE>ivvideo.dll</CODE> Win32 DLL file (from <A 181 the <CODE>ivvideo.dll</CODE> Win32 DLL file (from <A
201 HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/ivvideo.dll">here</A>), 182 HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/ivvideo.dll">here</A>),
202 and install it under <CODE>/usr/lib/win32</CODE> or wherever you store the 183 and install it under <CODE>/usr/lib/win32</CODE> or wherever you store the
203 Win32 codecs. This latter codec doesn't support YV12 nor YUY2 only BGR modes, 184 Win32 codecs. This latter codec does not support YV12 nor YUY2 only BGR modes,
204 thus usable only with the X11 and OpenGL outputs. Hopefully ffh263 will support 185 restricting it to the X11 and OpenGL outputs. Hopefully ffh263 will support
205 VIVO 2.0 files in the future.</P> 186 VIVO 2.0 files in the future.</P>
206 187
207 188
208 <P><B><A NAME=2.2.1.5>2.2.1.5. MPEG 1/2 video</A></B></P> 189 <P><B><A NAME=2.2.1.5>2.2.1.5. MPEG 1/2 video</A></B></P>
209 190
210 <P>MPEG1 and MPEG2 are decoded with the native library <B>libmpeg2</B>. 191 <P>MPEG1 and MPEG2 are decoded by the multiplatform native <B>libmpeg2</B> library,
211 Its source code is included in <B>MPlayer</B>, and of course it is multiplatform. 192 whose source code is included in <B>MPlayer</B>.
212 We handle buggy MPEG 1/2 video files by catching sig11 (segmentation fault), 193 We handle buggy MPEG 1/2 video files by catching sig11 (segmentation fault),
213 and quickly reinitializing the codec, and continue exactly from where the failure 194 and quickly reinitializing the codec, continuing exactly from where the failure
214 did occur. 195 occurred.
215 No speed decrease is measurable.</P> 196 This recovery technique has no measurable speed penalty.</P>
216 197
217 198
218 <P><B><A NAME=2.2.1.6>2.2.1.6. MS Video1</A></B></P> 199 <P><B><A NAME=2.2.1.6>2.2.1.6. MS Video1</A></B></P>
219 200
220 <P>This is a very old and very bad codec of Microsoft. In the past it was 201 <P>This is a very old and very bad codec from Microsoft. In the past it was
221 decoded with the <CODE>msvidc32.dll</CODE> Win32 codec, now we have our own 202 decoded with the <CODE>msvidc32.dll</CODE> Win32 codec, now we have our own
222 open-source implementation (by <A HREF="mailto:melanson@pcisys.net">Mike 203 open source implementation (by <A HREF="mailto:melanson@pcisys.net">Mike
223 Melanson</A>).</P> 204 Melanson</A>).</P>
224 205
225 206
226 <P><B><A NAME=2.2.1.7>2.2.1.7. Cinepak CVID</A></B></P> 207 <P><B><A NAME=2.2.1.7>2.2.1.7. Cinepak CVID</A></B></P>
227 208
228 <P><B>MPlayer</B> now has its own opensource, multiplatform Cinepak decoder. 209 <P><B>MPlayer</B> uses its own open source, multiplatform Cinepak decoder by
229 Supports YUV outputs, thus hardware scaling if video output driver allows. 210 default. It supports YUV outputs, so that hardware scaling is possible if the
230 Used by default.</P> 211 video output driver permits it.</P>
231 212
232 213
233 <P><B><A NAME=2.2.1.8>2.2.1.8. RealVideo</A></B></P> 214 <P><B><A NAME=2.2.1.8>2.2.1.8. RealVideo</A></B></P>
234 215
235 <P>Currently ONLY the RealVideo 1.0 (fourcc RV10) codec is supported, through 216 <P>Currently <B>only</B> the RealVideo 1.0 (fourcc RV10) codec is supported through
236 ffmpeg. Sadly, no new RealMedia files come with this one, only with the newer 217 FFmpeg. Sadly, new RealMedia files come with the newer and closed source RV20 and
237 RV20 and RV30 codecs which are closed-source. Their future support is 218 RV30 codecs instead. Their future support is unlikely :(</P>
238 unlikely :(</P>
239 219
240 220
241 <P><B><A NAME=2.2.1.9>2.2.1.9. XViD</A></B></P> 221 <P><B><A NAME=2.2.1.9>2.2.1.9. XViD</A></B></P>
242 222
243 <P><B>XViD</B> is another development from good old OpenDivX (first 223 <P><B>XViD</B> is another development from the OpenDivX group (their first
244 development was DivX4).</P> 224 development was DivX4).</P>
245 225
246 <P><B>Advantages</B> : 226 <P><B>Advantages:</B></P>
247 <UL> 227 <UL>
248 <LI>opensource</LI> 228 <LI>open source</LI>
249 <LI>its API is compatible with DivX4 so it's easy to add support for 229 <LI>its API is compatible with DivX4 so adding support for
250 it</LI> 230 it is easy</LI>
251 <LI>2-pass encoding support</LI> 231 <LI>2-pass encoding support</LI>
252 <LI>nice encoding quality, higher speed than DivX4 (you can optimize it for 232 <LI>nice encoding quality, higher speed than DivX4 (you can optimize it for
253 your box while compiling)</LI> 233 your box while compiling)</LI>
254 </UL> 234 </UL>
255 </P> 235
256 236 <P><B>Disadvantages:</B></P>
257 <P><B>Disadvantages</B> :
258 <UL> 237 <UL>
259 <LI>currently it doesn't properly <B>decode</B> all DivX/DivX4 files (but who cares, we can play them using libavcodec)</LI> 238 <LI>currently it does not properly <B>decode</B> all DivX/DivX4 files (no problem as libavcodec can play them)</LI>
260 <LI>you have to choose between DivX4 <B>OR</B> XViD support at 239 <LI>you have to choose between DivX4 <B>OR</B> XViD support at
261 compiletime</LI> 240 compiletime</LI>
262 <LI>under development</LI> 241 <LI>under development</LI>
263 </UL> 242 </UL>
264 </P> 243
265 244 <P><B>Installation:</B> It is currently available only from CVS. Here are the
266 <P><B>Installation</B> : it's currently available only in CVS. Here are the 245 download and installation instructions:</P>
267 downloading and installation instructions :<BR> 246 <OL>
268 &nbsp;&nbsp;<CODE>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid 247 <LI><CODE>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login</CODE></LI>
269 login</CODE><BR> 248 <LI><CODE>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore</CODE></LI>
270 &nbsp;&nbsp;<CODE>cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co 249 <LI><CODE>cd xvidcore/build/generic</CODE></LI>
271 xvidcore</CODE><BR> 250 <LI>Edit <CODE>Makefile.linux</CODE> to fit your needs.</LI>
272 &nbsp;&nbsp;<CODE>cd xvidcore/build/generic</CODE><BR> 251 <LI><CODE>make -f Makefile.linux</CODE></LI>
273 &nbsp;&nbsp;<CODE>Edit Makefile.linux to fit your needs</CODE><BR> 252 <LI>Get <CODE>encore2.h</CODE> and <CODE>decore.h</CODE> from the DivX4Linux
274 &nbsp;&nbsp;<CODE>make -f Makefile.linux</CODE><BR> 253 package, and copy them to <CODE>/usr/local/include/</CODE>.</LI>
275 &nbsp;&nbsp;Get encore2.h and decore.h from Divx4linux package, and copy them to <CODE>/usr/local/include/</CODE><BR> 254 <LI>Recompile <B>MPlayer</B> with <CODE>--with-xvidcore=/path/to/libcore.a</CODE>.</LI>
276 &nbsp;&nbsp;<CODE>recompile <B>MPlayer</B> with 255 </OL>
277 --with-xvidcore=/path/to/libcore.a</CODE><BR>
278 </P>
279 256
280 257
281 <P><B><A NAME=2.2.2>2.2.2. Audio codecs</A></B></P> 258 <P><B><A NAME=2.2.2>2.2.2. Audio codecs</A></B></P>
282 259
283 <P>The most important audio codecs above all :<BR> 260 <P>The most important audio codecs above all:<BR></P>
284 <UL> 261 <UL>
285 <LI>MPEG layer 2, and layer 3 (MP3) audio (<B>native</B> code, with MMX/SSE/3DNow! optimization)</LI> 262 <LI>MPEG layer 2, and layer 3 (MP3) audio (<B>native</B> code, with MMX/SSE/3DNow! optimization)</LI>
286 <LI>MPEG layer 1 audio (<B>native</B> code, with libavcodec)</LI> 263 <LI>MPEG layer 1 audio (<B>native</B> code, with libavcodec)</LI>
287 <LI>AC3 Dolby audio (<B>native</B> code, with MMX/SSE/3DNow! optimization)</LI> 264 <LI>AC3 Dolby audio (<B>native</B> code, with MMX/SSE/3DNow! optimization)</LI>
288 <LI>Ogg Vorbis audio codec (<B>native</B> lib)</LI> 265 <LI>Ogg Vorbis audio codec (<B>native</B> library)</LI>
289 <LI>Voxware audio (using DirectShow DLL)</LI> 266 <LI>Voxware audio (using DirectShow DLL)</LI>
290 <LI>alaw, msgsm, pcm and other simple old audio formats</LI> 267 <LI>alaw, msgsm, pcm and other simple old audio formats</LI>
291 <LI>VIVO audio (g723, Vivo Siren)</LI> 268 <LI>VIVO audio (g723, Vivo Siren)</LI>
292 <LI>RealAudio: DNET (low bitrate AC3)</LI> 269 <LI>RealAudio: DNET (low bitrate AC3)</LI>
293 </UL></P> 270 </UL>
294 271
295 272
296 <P><B><A NAME=2.2.2.1>2.2.2.1. Software AC3 decoding</A></B></P> 273 <P><B><A NAME=2.2.2.1>2.2.2.1. Software AC3 decoding</A></B></P>
297 274
298 <P>This is the default decoder used for files with AC3 audio.</P> 275 <P>This is the default decoder used for files with AC3 audio.</P>
299 276
300 <P>The AC3 decoder can create output audio mixes for 2, 4, or 6 277 <P>The AC3 decoder can create audio output mixes for 2, 4, or 6
301 speakers. When configured for 6 speakers, this decoder provides 278 speakers. When configured for 6 speakers, this decoder provides
302 separate output of all the AC3 channels to the soundcard driver, 279 separate output of all the AC3 channels to the sound driver,
303 allowing the full "surround sound" experience without the external AC3 280 allowing for full "surround sound" experience without the external AC3
304 decoder required to use the hwac3 codec.</P> 281 decoder required to use the hwac3 codec.</P>
305 282
306 <P>Use the <CODE>-channels</CODE> option to select the number of output channels. 283 <P>Use the <CODE>-channels</CODE> option to select the number of output channels.
307 Use <CODE>-channels 2</CODE> for a stereo downmix. For a 4 channel downmix (Left 284 Use <CODE>-channels 2</CODE> for a stereo downmix. For a 4 channel downmix (Left
308 Front, Right Front, Left Surround and Right Surround outputs), use 285 Front, Right Front, Left Surround and Right Surround outputs), use
309 <CODE>-channels 4</CODE>. In this case, any Centre channel will be mixed 286 <CODE>-channels 4</CODE>. In this case, any center channel will be mixed
310 equally to the front channels. Lastly, "-channels 6" will output all the AC3 287 equally to the front channels. <CODE>-channels 6</CODE> will output all the AC3
311 channels as they are encoded - in the order Left, Right, Left Surround, Right 288 channels as they are encoded - in the order Left, Right, Left Surround, Right
312 Surround, Centre and LFE.</P> 289 Surround, Center and LFE.</P>
313 290
314 <P>The default number of output channels is 2.</P> 291 <P>The default number of output channels is 2.</P>
315 292
316 <P>To use more than 2 output channels, you'll need to be using OSS, 293 <P>To use more than 2 output channels, you will need to use OSS, and have a sound
317 and to have a soundcard driver that supports the appropriate number of 294 card that supports the appropriate number of output channels via the
318 output channels via the SNDCTL_DSP_CHANNELS ioctl. For example, a 295 SNDCTL_DSP_CHANNELS ioctl. An example of a suitable driver is emu10k1 (used by
319 version of the emu10k1 driver (used with the SB Live cards) newer than 296 Soundblaster Live! cards) from August 2001 or newer (ALSA CVS is also supposed to
320 August 2001 should be suitable (I heard newest ALSA CVS supports this too).</P> 297 work).</P>
321 298
322 299
323 <P><B><A NAME=2.2.2.2>2.2.2.2. Hardware AC3 decoding</A></B></P> 300 <P><B><A NAME=2.2.2.2>2.2.2.2. Hardware AC3 decoding</A></B></P>
324 301
325 <P>You'll need an AC3 capable soundcard, with digital out (SP/DIF). The 302 <P>You need an AC3 capable sound card, with digital out (SP/DIF). The
326 card's driver must properly support the AFMT_AC3 format (like C-Media does). 303 card's driver must properly support the AFMT_AC3 format (C-Media does).
327 Connect your AC3 decoder to the SP/DIF output, and use the '-ac hwac3' 304 Connect your AC3 decoder to the SP/DIF output, and use the <CODE>-ac hwac3</CODE>
328 option. It may or may not work (experimental). It will work with C-Media 305 option. It is experimental but known to work with C-Media cards and Soundblaster
329 cards, and with SB Live! + ALSA driver. It won't work with Live!'s OSS 306 Live! + ALSA (but not OSS) drivers.</P>
330 driver!</P>
331 307
332 308
333 <P><B><A NAME=2.2.2.3>2.2.2.3. libmad support</A></B></P> 309 <P><B><A NAME=2.2.2.3>2.2.2.3. libmad support</A></B></P>
334 310
335 <P><A HREF="http://mad.sourceforge.net">libmad</A> is a multiplatform MPEG audio 311 <P><A HREF="http://mad.sourceforge.net">libmad</A> is a multiplatform MPEG audio
336 decoding library. If you don't know why is it good, you probably don't need it.</P> 312 decoding library. It does not handle broken files well, and it sometimes has
337 313 problems with seeking.</P>
338 <P>It doesn't handle broken files well, and sometimes has problems with seeking.</P>
339 314
340 <P>To enable support, compile with the <CODE>--enable-mad</CODE> configure 315 <P>To enable support, compile with the <CODE>--enable-mad</CODE> configure
341 option.</P> 316 option.</P>
342 317
343 318
344 <P><B><A NAME=2.2.2.4>2.2.2.4. VIVO audio</A></B></P> 319 <P><B><A NAME=2.2.2.4>2.2.2.4. VIVO audio</A></B></P>
345 320
346 <P>The audio codec used in VIVO files depends on whether it's a VIVO/1.0 or 321 <P>The audio codec used in VIVO files depends on whether it is a VIVO/1.0 or
347 VIVO/2.0 file. VIVO/1.0 files have <B>g.723</B> audio, and VIVO/2.0 files 322 VIVO/2.0 file. VIVO/1.0 files have <B>g.723</B> audio, and VIVO/2.0 files
348 have <B>Vivo Siren</B>. Both is <U>supported</U>. You can grab the g.723/Siren 323 have <B>Vivo Siren</B> audio. Both are supported. You can grab the g.723/Siren
349 Win32 DLL from 324 Win32 DLL from
350 <A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/vivog723.acm">here</A>, 325 <A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/vivog723.acm">here</A>,
351 then copy it into the <CODE>/usr/lib/win32</CODE> directory, or respectively.</P> 326 then copy it into the <CODE>/usr/lib/win32</CODE> directory.</P>
352 327
353 328
354 <P><B><A NAME=2.2.2.5>2.2.2.5. RealAudio</A></B></P> 329 <P><B><A NAME=2.2.2.5>2.2.2.5. RealAudio</A></B></P>
355 330
356 <P>Currently the only supported one is the DNET codec. Actually it's a 331 <P>Currently the only supported one is the DNET codec. Actually it is a
357 low-bitrate version of the well-known AC3 codec. It can be found either in 332 low-bitrate version of the well known AC3 codec. It can be found in both
358 old and new RealMedia movies.</P> 333 old and new RealMedia movies.</P>
359 334
360 335
361 <P><B><A NAME=2.2.3>2.2.3. Win32 codec importing howto</A></B></P> 336 <P><B><A NAME=2.2.3>2.2.3. Win32 codec importing HOWTO</A></B></P>
362 337
363 <P><B><A NAME=2.2.3.1>2.2.3.1. VFW codecs</A></B></P> 338 <P><B><A NAME=2.2.3.1>2.2.3.1. VFW codecs</A></B></P>
364 339
365 <P>VfW (Video for Windows) is the old Video API for Windows. Its codecs have 340 <P>VFW (Video for Windows) is the old Video API for Windows. Its codecs have
366 the .DLL or (rarely) .DRV extension. 341 the .DLL or (rarely) .DRV extension.
367 If <B>MPlayer</B> fails with your AVI:</P> 342 If <B>MPlayer</B> fails at playing your AVI with this kind of message:</P>
368 343
369 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P> 344 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P>
370 345
371 <P>It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU = 346 <P>It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU =
372 HuffYUV codec, DIV3 = DivX Low Motion, etc...). Now that we know this, we'll 347 HuffYUV codec, DIV3 = DivX Low Motion, etc...). Now that you know this, you
373 have to find out which DLL Windows loads in order to play this file. In our 348 have to find out which DLL Windows loads in order to play this file. In our
374 case, the system.ini contains this (with many others):</P> 349 case, the <CODE>system.ini</CODE> contains this information in a line that reads:</P>
375 350
376 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>VIDC.HFYU=huffyuv.dll</CODE></P> 351 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>VIDC.HFYU=huffyuv.dll</CODE></P>
377 352
378 <P>So we'll need the huffyuv.dll file. Note that the audio codecs are specified 353 <P>So you need the <CODE>huffyuv.dll</CODE> file. Note that the audio codecs are
379 with the MSACM prefix:</P> 354 specified by the MSACM prefix:</P>
380 355
381 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>msacm.l3acm=L3codeca.acm</CODE></P> 356 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>msacm.l3acm=L3codeca.acm</CODE></P>
382 357
383 358
384 <P>This is the MP3 codec. 359 <P>This is the MP3 codec.
385 So, now we have all the info needed (fourcc, codec file, sample AVI), submit 360 Now that you have all the necessary information (fourcc, codec file, sample AVI),
386 your codec support request in mail, and upload these files to the FTP:</P> 361 submit your codec support request by mail, and upload these files to the FTP site:</P>
387 362
388 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P> 363 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P>
389 364
390 365
391 <P><B><A NAME=2.2.3.2>2.2.3.2. DirectShow codecs</A></B></P> 366 <P><B><A NAME=2.2.3.2>2.2.3.2. DirectShow codecs</A></B></P>
392 367
393 <P>DirectShow is the newer Video API, which is even worse than its predecessor. 368 <P>DirectShow is the newer Video API, which is even worse than its predecessor.
394 Things are harder with DirectShow, since 369 Things are harder with DirectShow, since</P>
395 <UL> 370 <UL>
396 <LI>system.ini doesn't contain the needed information, instead it's stored in 371 <LI><CODE>system.ini</CODE> does not contain the needed information, instead it
397 the registry :( 372 is stored in the registry and
398 <LI>we'll need the GUID of the codec. 373 <LI>we need the GUID of the codec.
399 </UL></P> 374 </UL>
400 375
401 <P>So let's search that goddamn registry.. 376 <P>Take a deep breath and start searching the registry...</P>
402 <UL> 377 <UL>
403 <LI>Start 'regedit' 378 <LI>Start <CODE>regedit</CODE>.
404 <LI>press ctrl-f, disable the first two checkbox, and enable the third. Type 379 <LI>Press <CODE>Ctrl-f</CODE>, disable the first two checkboxes, and enable the
405 the fourcc of the codec. (for ex.: TM20) 380 third. Type in the fourcc of the codec (e.g. TM20).
406 <LI>you should see a field which contains the path and filename 381 <LI>You should see a field which contains the path and the filename
407 (for ex. : C:\WINDOWS\SYSTEM\TM20DEC.AX) 382 (e.g. <CODE>C:\WINDOWS\SYSTEM\TM20DEC.AX</CODE>).
408 <LI>now that we have the file, we'll need the GUID. Try searching again, but 383 <LI>Now that you have the file, we need the GUID. Try searching again, but
409 now we'll search for the codec's name, not the fourcc. Its name can be acquired 384 now search for the codec's name, not the fourcc. Its name can be acquired
410 when Media Player is playing that file, by checking File/Properties/Advanced. 385 when Media Player is playing the file, by checking File-&gt;Properties-&gt;Advanced.
411 If not, bad luck ;) Try guessing. 386 If not, you are out of luck. Try guessing (e.g. search for TrueMotion).
412 (for ex. search for : TrueMotion) 387 <LI>If the GUID is found you should see a FriendlyName and a CLSID
413 <LI>if found (in registry), there should be a FriendlyName field, and a CLSID 388 field. Write down the 16 byte CLSID, this is the GUID we need.
414 field. Write down that 16 byte of CLSID, this is the GUID required by us. 389 </UL>
415 </UL></P> 390
416 391 <P>NOTE: If searching fails, try enabling all the checkboxes. You may have
417 <P>NOTE: if searching fails, try to enable all the checkboxes.. you may have 392 false hits, but you may get lucky...</P>
418 false hits, but maybe you'll have the right, too...</P> 393
419 <P>NOTE: dump that M$ shit.</P> 394 <P>Now that you have all the necessary information (fourcc, GUID, codec file,
420 395 sample AVI), submit your codec support request by mail, and upload these files
421 396 to the FTP site:</P>
422 <P>So, now we have all the info needed (fourcc, GUID, codec file, sample AVI), 397
423 submit your codec support request in mail, and upload these files to the FTP:<BR> 398 <P>&nbsp;&nbsp;&nbsp;&nbsp;<CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P>
424 ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</P>
425 399
426 </BODY> 400 </BODY>
427 </HTML> 401 </HTML>