Mercurial > mplayer.hg
annotate DOCS/codecs.html @ 3174:4164be267d0f
misinfo fixed (notified by Al3x. At least 65535 times:)
| author | gabucino |
|---|---|
| date | Wed, 28 Nov 2001 06:35:26 +0000 |
| parents | 27986f4dcd30 |
| children | ef38487113b1 |
| rev | line source |
|---|---|
| 1612 | 1 <HTML> |
| 1712 | 2 <BODY BGCOLOR=WHITE> |
| 1704 | 3 |
| 4 <FONT face="Verdana, Arial, Helvetica, sans-serif" size=2> | |
| 1612 | 5 |
| 2745 | 6 <P><B><A NAME=2.2>2.2. Supported codecs</A></B></P> |
| 1612 | 7 |
| 8 | |
| 2745 | 9 <P><B><A NAME=2.2.1>2.2.1. Video codecs</A></B></P> |
| 1612 | 10 |
| 1731 | 11 <P>See <A HREF="http://www.mplayerhq.hu/DOCS/codecs-status.html">http://www.mplayerhq.hu/DOCS/codecs-status.html</A> for the complete, |
| 1869 | 12 daily generated list!!!</P> |
| 1612 | 13 |
| 2745 | 14 <P>The most important ones above all:<BR> |
| 1682 | 15 <UL> |
| 2290 | 16 <LI>MPEG1 (VCD) and MPEG2 (DVD) video</LI> |
| 2690 | 17 <LI>DivX ;-), OpenDivX (DivX4), 3ivx and other MPEG4 variants</LI> |
| 2290 | 18 <LI>Windows Media Video 7 (WMV1) and 8 (WMV2) used in .wmv files</LI> |
| 19 <LI>Intel Indeo codecs (3.1,3.2,4.1,5.0)</LI> | |
| 20 <LI>MJPEG, ASV2 and other hardware formats</LI> | |
| 2690 | 21 <LI>XAnim codecs</LI> |
| 2745 | 22 <LI>VIVO</LI> |
| 1682 | 23 </UL></P> |
| 1612 | 24 |
| 2745 | 25 <P>If you have a Win32 codec not listed here, and not supported yet, just read the <A |
| 26 HREF="#2.2.3">codec importing</A> to get info about how to help us adding support | |
| 1731 | 27 for it!</P> |
| 1612 | 28 |
| 2745 | 29 <P><B><A NAME=2.2.1.1>2.2.1.1. DivX4</A></B></P> |
| 1612 | 30 |
| 1682 | 31 <P>This section contains information about the DivX4 codec of |
| 32 <A HREF="http://www.projectmayo.com">ProjectMayo</A>. Their first available alpha version was the OpenDivX 4.0 | |
| 33 alpha 47 and 48. Support for this was/is included in <B>MPlayer</B>, and built by | |
|
2240
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
34 default. We used to use its postprocessing code to optionally enhance visual |
|
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
35 quality of MPEG1/2 movies. Now we use our own.</P> |
| 1612 | 36 |
| 1682 | 37 <P>The new generation of this codec can even decode movies made with the |
| 38 infamous DivX codec! And it's not everything, it's MUCH faster than the | |
| 39 traditional Win32 DivX DLL's. See below for configuration. The only | |
| 40 disadvantage of this codec is that it's currently closed-source. :(</P> | |
| 1612 | 41 |
| 1682 | 42 <P>The codec can be downloaded from the following URL:</P> |
| 43 | |
| 1731 | 44 <P> <A HREF="http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip">http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip</A></P> |
| 1612 | 45 |
| 2684 | 46 <P>Unpack it, and run <CODE>./install.sh</CODE> as root.</P> |
| 1612 | 47 |
| 1869 | 48 <P>Note: do NOT forget to add /usr/local/lib to your /etc/ld.so.conf !</P> |
| 1612 | 49 |
| 1682 | 50 <P><B>MPlayer</B> autodetects if DivX4 is (properly) installed, just compile |
| 51 as usual. If it doesn't detect it, you didn't install it exactly as above, | |
| 52 and/or has fucked up config (see last question of 5.1 section).</P> | |
| 53 | |
| 54 <P>Using it is a bit tricky. As it conflicts with the old OpenDivX (it's API is | |
| 55 very similar to OpenDivX's), OpenDivX code is disabled, and the OpenDivX | |
| 56 driver calls this library too.</P> | |
| 57 | |
| 58 <P>Generally we can pinpoint this issue to that you have two options to use | |
| 59 this codec:</P> | |
| 60 | |
| 61 <P><TABLE BORDER=0> | |
| 1987 | 62 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc odivx</TD><TD> </TD> |
| 63 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>using divx4 codec as a new version of OpenDivX. | |
| 1682 | 64 in this case it produces YV12 image in its own buffer, |
| 1987 | 65 and <B>MPlayer</B> (libvo) does colorspace conversion. (<B>RECOMMENDED!</B>)</TD><TR> |
| 66 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc divx4</TD><TD></TD> | |
| 67 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>using divx4 codec's colorspace conversion. | |
| 2095 | 68 in this mode, you can use YUY2/UYVY too.</TD></TR> |
| 1682 | 69 </TABLE></P> |
| 1612 | 70 |
| 1682 | 71 <P>The 'odivx' method is usually faster, due to the fact that it transfers |
| 72 image data in YV12 (planar YUV 4:2:0) format, thus requiring much less | |
| 73 bandwidth on the bus. For packed YUV modes (YUY2, UYVY) use the 'divx4' | |
| 74 method. For RGB modes you can choose freely, their speed is same, maybe | |
| 75 differ according to the current bpp.</P> | |
| 76 | |
|
2240
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
77 <P>Note: it supports postprocessing too, but range of values is strange: (TODO UPDATE)</P> |
| 1612 | 78 |
| 1682 | 79 <P><TABLE BORDER=0> |
| 1987 | 80 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>0</TD><TD> </TD> |
| 81 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>no postproc</TD><TR> | |
| 82 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>10 .. 20</TD> | |
| 83 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>postprocessing, normal (like level 2 with divxds)</TD><TR> | |
| 84 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>30 .. 60</TD> | |
| 85 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>hard prostprocessing, eats many CPU (like level 4 with divxds</TD><TR> | |
| 1682 | 86 </TABLE></P> |
| 1612 | 87 |
| 2745 | 88 <P><B><A NAME=2.2.1.2>2.2.1.2. ffmpeg's DivX/libavcodec</A></B></P> |
| 1682 | 89 |
| 90 <P>Beginning with version 0.4.2 , <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> contains an <B>opensource</B> DivX codec, | |
| 91 which is compatible with the traditional DivX. <B>MPlayer</B> supports this codec, | |
| 2290 | 92 and this makes it possible to <B>watch DivX/DivX4 movies on non-x86 platforms</B>, |
| 93 and gain much faster <B>DivX/DivX4</B> decoding speed than the Win32 codecs and | |
| 94 the original DivX4 library has!<BR> | |
| 1682 | 95 It was removed from <B>MPlayer</B>'s cvs tree, you have to download it |
| 96 manually directly from <B>FFmpeg</B>'s tree:</P> | |
| 97 | |
| 98 <P><CODE> | |
| 1987 | 99 cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login<BR> |
| 1612 | 100 cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg |
| 1682 | 101 </CODE></P> |
| 1612 | 102 |
| 1682 | 103 <P>Note: <I>if you copy with CVS subdirs, next time it's enough to do |
| 104 'cvs update'.</I></P> | |
| 1612 | 105 |
| 1682 | 106 <P>Now, move the newly downloaded ffmpeg source's <B>libavcodec</B> directory, |
| 107 (with all it's subdirectories) to <B>MPlayer</B>'s tree, so it will look | |
| 108 like this:</P> | |
| 1612 | 109 |
| 1682 | 110 <P> <CODE>main/libavcodec</CODE></P> |
| 1612 | 111 |
| 1869 | 112 <P>Symlinking is NOT enough, you have to copy/move it!!!</P> |
| 1668 | 113 |
| 3140 | 114 <P>Then compile. configure detects if it's alright, and can be compiled. The |
| 115 codec also <B>supports postprocessing!</B></P> | |
| 1612 | 116 |
| 1682 | 117 <P>In order to use it, refresh your codecs.conf file, and do as the manpage, |
| 118 or the example.conf says (the -vfm option).</P> | |
| 1612 | 119 |
| 2290 | 120 <P>To achieve the <B>greatest speed</B> on my K6, I remove the |
| 121 <CODE>ffmpeg12</CODE> section from codecs.conf (this codec isn't optimized, and | |
| 122 libmpeg2 is twice as fast), and place <CODE>vfm=5</CODE> in my config file. | |
| 123 Then <B>MPlayer</B> always uses <B>ffdivx/ffodivx</B> to decode | |
| 124 <B>DivX/DivX4</B> files, and libmpeg2 for MPEG1/2 . With this and my Matrox G400, I can view even the | |
| 125 highest resolution DivX/DivX4 movies on my K6/2 500, without framedrop.</P> | |
| 1612 | 126 |
| 127 | |
| 2745 | 128 <P><B><A NAME=2.2.1.3>2.2.1.3. XAnim codecs</A></B></P> |
| 2411 | 129 |
| 130 <P>Foreword: using (some) XAnim codecs with other program than XAnim, is | |
| 131 <B><I>ILLEGAL</I></B>. It is <B>YOUR</B> responsibility to read its license, | |
| 132 and do accordingly. The authors of <B>MPlayer</B> can't be held responsible for | |
| 133 any unlawful act of the user.</P> | |
| 134 | |
| 135 <P>So yes, <B>MPlayer</B> can use XAnim's codecs for decoding. It's very | |
| 136 easy to enable them:</P> | |
| 137 | |
| 138 <P> | |
| 139 <UL> | |
| 140 <LI>download the codecs you wish to use from the | |
| 141 <A HREF="http://xanim.va.pubnix.com">XAnim site</A>. The <B>3ivx</B> codec | |
| 142 isn't there, so download it from the <A HREF="http://www.3ivx.com">3ivx site</A>.</LI> | |
| 143 | |
| 2664 | 144 <LI>use the <CODE>--with-xanimlibdir</CODE> option to tell configure where |
|
2848
33c32f3d9f1f
many small updates, fixes (some/more to be completed soon)
gabucino
parents:
2745
diff
changeset
|
145 it can find the xanim codecs. By default, it checks them at <CODE>/</CODE> (...) .</LI> |
| 3163 | 146 |
| 147 <LI>rename the filenames by cutting out the architecture stuff, so they will | |
| 148 have filenames like these : <CODE>vid_cvid.xa, vid_h263.xa, vid_iv50.xa</CODE> | |
| 149 | |
| 2411 | 150 </UL> |
| 151 </P> | |
| 152 | |
| 153 <P>They are video codec family number 10, so you may want to use <CODE>-vfm 10</CODE> | |
| 154 option to tell <B>MPlayer</B> to use them if possible.</P> | |
| 155 | |
| 156 <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> | |
| 157 | |
| 2452 | 158 |
| 2745 | 159 <P><B><A NAME=2.2.1.4>2.2.1.4. VIVO video</A></B></P> |
| 160 | |
| 2855 | 161 <P><B>MPlayer</B> can play Vivo (1.0 and 2.0) videos. The most suitable codec |
| 3027 | 162 for 1.0 files is FFmpeg's H263 decoder, you can use it with the <CODE>-vc |
| 163 ffh263</CODE> option (you'll need the newest libavcodec !). For 2.0 files, use | |
|
3174
4164be267d0f
misinfo fixed (notified by Al3x. At least 65535 times:)
gabucino
parents:
3163
diff
changeset
|
164 the <CODE>ivvideo.dll</CODE> Win32 DLL file (from <A |
| 3027 | 165 HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/ivvideo.dll">here</A>), |
| 2855 | 166 and install it under <CODE>/usr/lib/win32</CODE> or wherever you store the |
| 167 Win32 codecs. This latter codec doesn't support YV12 nor YUY2 only BGR modes, | |
|
3174
4164be267d0f
misinfo fixed (notified by Al3x. At least 65535 times:)
gabucino
parents:
3163
diff
changeset
|
168 thus usable only with the X11 and OpenGL outputs. Hopefully ffh263 will support |
|
4164be267d0f
misinfo fixed (notified by Al3x. At least 65535 times:)
gabucino
parents:
3163
diff
changeset
|
169 VIVO 2.0 files in the future.</P> |
| 2855 | 170 |
| 2745 | 171 |
| 172 <P><B><A NAME=2.2.1.5>2.2.1.5. MPEG 1/2 video</A></B></P> | |
| 173 | |
| 174 <P>MPEG1 and MPEG2 are decoded with the native library <B>libmpeg2</B>. | |
| 175 Its source code is included in <B>MPlayer</B>, and of course is multiplatform. | |
| 176 We handle buggy MPEG1/2 video files by checking for what signature does | |
| 177 libmpeg2 return, and when it gives sig11 (segmentation fault), we quickly | |
| 178 reinitialize the codec, and continue exactly from where the failure did occur. | |
| 179 No speed decrease is measurable.</P> | |
| 180 | |
| 181 | |
| 2855 | 182 <P><B><A NAME=2.2.1.6>2.2.1.6. MS Video1</A></B></P> |
| 183 | |
| 184 <P>This is a very old and very bad codec of Microsoft. In the past it was | |
| 185 decoded with the <CODE>msvidc32.dll</CODE> Win32 codec, now we have our own | |
| 186 open-source implementation (by <A HREF="mailto:melanson@pcisys.net">Mike | |
| 187 Melanson</A>).</P> | |
| 188 | |
| 189 | |
| 3163 | 190 <P><B><A NAME=2.2.1.7>2.2.1.7. Cinepak CVID</A></B></P> |
| 191 | |
| 192 <P>The best way to view Cinepak videos with <B>MPlayer</B>, is using | |
| 193 the XAnim codec <CODE>vid_cvid.xa</CODE>, because it supports YV12, YUY2 | |
| 194 outputs, in contrary to the Win32 codec which supports only RGB.</P> | |
| 195 | |
| 196 | |
| 2745 | 197 <P><B><A NAME=2.2.2>2.2.2. Audio codecs</A></B></P> |
| 198 | |
| 199 <P>The most important audio codecs above all :<BR> | |
| 200 <UL> | |
| 201 <LI>MPEG layer 2, and layer 3 (MP3) audio (<B>native</B> code, with MMX/SSE/3DNow! optimization)</LI> | |
| 202 <LI>MPEG layer 1 audio (<B>native</B> code, with libavcodec)</LI> | |
| 203 <LI>AC3 Dolby audio (<B>native</B> code, with SSE/3DNow! optimization)</LI> | |
| 204 <LI>Ogg Vorbis audio codec (<B>native</B> lib)</LI> | |
| 205 <LI>Voxware audio (using DirectShow DLL)</LI> | |
| 206 <LI>alaw, msgsm, pcm and other simple old audio formats</LI> | |
| 207 </UL></P> | |
| 208 | |
| 209 | |
| 210 <P><B><A NAME=2.2.2.1>2.2.2.1. Hardware AC3 decoding</A></B></P> | |
| 211 | |
| 212 <P>You'll need an AC3 capable soundcard, with digital out (SP/DIF). The | |
| 213 card's driver must support the AFMT_AC3 format (like SB Live! does). | |
| 214 Connect your AC3 decoder to the SP/DIF output, and use the '-ac hwac3' | |
| 215 option. It may or may not work (experimental). (probably won't...)</P> | |
| 216 | |
| 217 | |
| 218 <P><B><A NAME=2.2.2.2>2.2.2.2. libmad support</A></B></P> | |
| 2452 | 219 |
| 220 <P><A HREF="http://mad.sourceforge.net">libmad</A> is a multiplatform MPEG audio | |
| 221 decoding library. If you don't know why is it good, you probably don't need it.</P> | |
| 222 | |
| 223 <P>To enable support, compile with the <CODE>--enable-mad</CODE> configure | |
| 224 option.</P> | |
| 225 | |
| 226 | |
| 2855 | 227 <P><B><A NAME=2.2.2.3>2.2.2.3. VIVO audio</A></B></P> |
| 228 | |
| 2865 | 229 <P>The audio codec used in VIVO files depends on whether it's a VIVO/1.0 or |
| 230 VIVO/2.0 file. VIVO/1.0 files have <B>g.723</B> audio, and VIVO/2.0 files | |
| 231 have <B>Vivo Siren</B>. Currently none of them is supported, but you can | |
| 232 grab the g.723 codec from | |
| 2855 | 233 <A HREF="http://www.mplayerhq.hu/MPlayer/samples/drivers32/vivog723.acm">here</A>, |
| 234 then copy it into the <CODE>/usr/lib/win32</CODE> directory, or respectively.</P> | |
| 235 | |
| 236 | |
| 2745 | 237 <P><B><A NAME=2.2.3>2.2.3. Win32 codec importing howto</A></B></P> |
| 1682 | 238 |
| 2745 | 239 <P><B><A NAME=2.2.3.1>2.2.3.1. VFW codecs</A></B></P> |
| 1682 | 240 |
| 241 <P>VfW (Video for Windows) is the old Video API for Windows. Its codecs have | |
| 242 the .DLL or (rarely) .DRV extension. | |
| 243 If <B>MPlayer</B> fails with your AVI:</P> | |
| 244 | |
| 245 <P> <CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P> | |
| 1612 | 246 |
| 1682 | 247 <P>It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU = |
| 248 HuffYUV codec, DIV3 = DivX Low Motion, etc...). Now that we know this, we'll | |
| 249 have to find out which DLL Windows loads in order to play this file. In our | |
| 250 case, the system.ini contains this (with many others):</P> | |
| 1612 | 251 |
| 1682 | 252 <P> <CODE>VIDC.HFYU=huffyuv.dll</CODE></P> |
| 253 | |
| 254 <P>So we'll need the huffyuv.dll file. Note that the audio codecs are specified | |
| 255 with the MSACM prefix:</P> | |
| 256 | |
| 257 <P> <CODE>msacm.l3acm=L3codeca.acm</CODE></P> | |
| 1612 | 258 |
| 259 | |
| 1682 | 260 <P>This is the MP3 codec. |
| 261 So, now we have all the info needed (fourcc, codec file, sample AVI), submit | |
| 262 your codec support request in mail, and upload these files to the FTP:</P> | |
| 1612 | 263 |
| 1869 | 264 <P> <CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P> |
| 1612 | 265 |
| 266 | |
| 2745 | 267 <P><B><A NAME=2.2.3.2>2.2.3.2. DirectShow codecs</A></B></P> |
| 1612 | 268 |
| 1682 | 269 <P>DirectShow is the newer Video API, which is even worse than its predecessor. |
| 270 Things are harder with DirectShow, since | |
| 271 <UL> | |
| 272 <LI>system.ini doesn't contain the needed information, instead it's stored in | |
| 273 the registry :( | |
| 274 <LI>we'll need the GUID of the codec. | |
| 275 </UL></P> | |
| 1612 | 276 |
| 1682 | 277 <P>So let's search that goddamn registry.. |
| 278 <UL> | |
| 279 <LI>Start 'regedit' | |
| 280 <LI>press ctrl-f, disable the first two checkbox, and enable the third. Type | |
| 281 the fourcc of the codec. (for ex.: TM20) | |
| 282 <LI>you should see a field which contains the path and filename | |
| 283 (for ex. : C:\WINDOWS\SYSTEM\TM20DEC.AX) | |
| 284 <LI>now that we have the file, we'll need the GUID. Try searching again, but | |
| 285 now we'll search for the codec's name, not the fourcc. Its name can be acquired | |
| 286 when Media Player is playing that file, by checking File/Properties/Advanced. | |
| 287 If not, bad luck ;) Try guessing. | |
| 288 (for ex. search for : TrueMotion) | |
| 289 <LI>if found (in registry), there should be a FriendlyName field, and a CLSID | |
| 290 field. Write down that 16 byte of CLSID, this is the GUID required by us. | |
| 291 </UL></P> | |
| 292 | |
| 293 <P>NOTE: if searching fails, try to enable all the checkboxes.. you may have | |
| 294 false hits, but maybe you'll have the right, too...</P> | |
| 295 <P>NOTE: dump that M$ shit.</P> | |
| 1612 | 296 |
| 297 | |
| 1682 | 298 <P>So, now we have all the info needed (fourcc, GUID, codec file, sample AVI), |
| 299 submit your codec support request in mail, and upload these files to the FTP:<BR> | |
| 1869 | 300 ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</P> |
| 1612 | 301 |
| 302 </BODY> | |
| 303 </HTML> |
