Mercurial > mplayer.hg
annotate DOCS/codecs.html @ 2240:5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
| author | gabucino |
|---|---|
| date | Wed, 17 Oct 2001 16:36:39 +0000 |
| parents | 69467fef1577 |
| children | b858758fd4db |
| 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 |
| 1682 | 6 <P><B><A NAME=2.1>2.1. Video Formats, Audio & Video Codecs</A></B></P> |
| 1612 | 7 |
| 1682 | 8 <P><B><A NAME=2.1.1>2.1.1. Supported input formats</A></B></P> |
| 1612 | 9 |
| 1682 | 10 <P><B>MPlayer</B> can read/play from the following devices/formats:<BR> |
| 11 <UL> | |
| 12 <LI> VCD (Video CD) directly from CD-ROM or from CDRwin's .bin image file | |
| 2005 | 13 <LI> DVD, directly from your DVD disk, using libdvdread for decryption |
| 1682 | 14 <LI> MPEG 1/2 System Stream (PS/PES/VOB) and Elementary Stream (ES) file |
| 15 formats | |
| 16 <LI> RIFF AVI file format | |
| 1869 | 17 <LI> ASF/WMV 1.0 file format |
| 2153 | 18 <LI> QT/MOV file format with (un)compressed headers (INCOMPLETE!) |
| 19 | |
| 1869 | 20 <LI> supports reading from file, stdin, or network via HTTP |
| 1682 | 21 </UL></P> |
| 1612 | 22 |
| 2153 | 23 <P>Note: about realmedia (.ra/.rm) support read the FAQ!</P> |
| 1612 | 24 |
| 25 | |
| 1682 | 26 <P><B><A NAME=2.1.2>2.1.2. Supported audio & video codecs</A></B></P> |
| 1612 | 27 |
| 1731 | 28 <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 | 29 daily generated list!!!</P> |
| 1612 | 30 |
| 1682 | 31 <P>The most important video codecs:<BR> |
| 32 <UL> | |
| 33 <LI>MPEG1 (VCD) and MPEG2 (DVD) video | |
| 1869 | 34 <LI>DivX ;-), OpenDivX (DivX4) and other MPEG4 variants |
| 35 <LI>Windows Media Video 7 (WMV1) and 8 (WMV2) used in .wmv files | |
| 1682 | 36 <LI>Intel Indeo codecs (3.1,3.2,4.1,5.0) |
| 37 <LI>MJPEG, ASV2 and other hardware formats | |
| 38 </UL></P> | |
| 1612 | 39 |
| 1682 | 40 <P>The most important audio codecs:<BR> |
| 41 <UL> | |
| 1869 | 42 <LI>MPEG layer 2, and layer 3 (MP3) audio (native code, with mmx/sse/3dnow optimization) |
| 43 <LI>AC3 dolby audio (native code, with sse/3dnow optimization) | |
| 44 <LI>Ogg Vorbis audio codec (native lib) | |
| 45 <LI>Voxware audio (using directshow DLL) | |
| 1682 | 46 <LI>alaw, msgsm, pcm and other simple old audio formats |
| 47 </UL></P> | |
| 1612 | 48 |
| 1731 | 49 <P>If you have a codec not listed here, and not supported yet, just read <A |
| 50 HREF="#2.1.4">section 2.1.4</A> to get info about how to help us adding support | |
| 51 for it!</P> | |
| 1612 | 52 |
| 1682 | 53 <P><B><A NAME=2.1.2.1>2.1.2.1. DivX4</A></B></P> |
| 1612 | 54 |
| 1682 | 55 <P>This section contains information about the DivX4 codec of |
| 56 <A HREF="http://www.projectmayo.com">ProjectMayo</A>. Their first available alpha version was the OpenDivX 4.0 | |
| 57 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
|
58 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
|
59 quality of MPEG1/2 movies. Now we use our own.</P> |
| 1612 | 60 |
| 1682 | 61 <P>The new generation of this codec can even decode movies made with the |
| 62 infamous DivX codec! And it's not everything, it's MUCH faster than the | |
| 63 traditional Win32 DivX DLL's. See below for configuration. The only | |
| 64 disadvantage of this codec is that it's currently closed-source. :(</P> | |
| 1612 | 65 |
| 1682 | 66 <P>The codec can be downloaded from the following URL:</P> |
| 67 | |
| 1731 | 68 <P> <A HREF="http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip">http://download2.projectmayo.com/dnload/divx4linux/divx4linux-20010718.zip</A></P> |
| 1612 | 69 |
| 1682 | 70 <P>No automatic installing available at this time, so install it manually, |
| 71 EXACTLY as described here. Unpack it, and copy files to their place:</P> | |
| 1612 | 72 |
| 1682 | 73 <P><CODE>cp libdivxdecore.so.0.0.0 /usr/local/lib/<BR> |
| 74 ln -s /usr/local/lib/libdivxdecore.so.0.0.0 /usr/local/lib/libdivxdecore.so.0<BR> | |
| 75 ln -s /usr/local/lib/libdivxdecore.so.0 /usr/local/lib/libdivxdecore.so<BR> | |
| 76 ldconfig<BR> | |
| 77 cp decore.h /usr/local/include/</CODE></P> | |
| 1612 | 78 |
| 1869 | 79 <P>Note: do NOT forget to add /usr/local/lib to your /etc/ld.so.conf !</P> |
| 1612 | 80 |
| 1682 | 81 <P><B>MPlayer</B> autodetects if DivX4 is (properly) installed, just compile |
| 82 as usual. If it doesn't detect it, you didn't install it exactly as above, | |
| 83 and/or has fucked up config (see last question of 5.1 section).</P> | |
| 84 | |
| 85 <P>Using it is a bit tricky. As it conflicts with the old OpenDivX (it's API is | |
| 86 very similar to OpenDivX's), OpenDivX code is disabled, and the OpenDivX | |
| 87 driver calls this library too.</P> | |
| 88 | |
| 89 <P>Generally we can pinpoint this issue to that you have two options to use | |
| 90 this codec:</P> | |
| 91 | |
| 92 <P><TABLE BORDER=0> | |
| 1987 | 93 <TD> </TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc odivx</TD><TD> </TD> |
| 94 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>using divx4 codec as a new version of OpenDivX. | |
| 1682 | 95 in this case it produces YV12 image in its own buffer, |
| 1987 | 96 and <B>MPlayer</B> (libvo) does colorspace conversion. (<B>RECOMMENDED!</B>)</TD><TR> |
| 97 <TD></TD><TD VALIGN=top><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>-vc divx4</TD><TD></TD> | |
| 98 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>using divx4 codec's colorspace conversion. | |
| 2095 | 99 in this mode, you can use YUY2/UYVY too.</TD></TR> |
| 1682 | 100 </TABLE></P> |
| 1612 | 101 |
| 1682 | 102 <P>The 'odivx' method is usually faster, due to the fact that it transfers |
| 103 image data in YV12 (planar YUV 4:2:0) format, thus requiring much less | |
| 104 bandwidth on the bus. For packed YUV modes (YUY2, UYVY) use the 'divx4' | |
| 105 method. For RGB modes you can choose freely, their speed is same, maybe | |
| 106 differ according to the current bpp.</P> | |
| 107 | |
|
2240
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
108 <P>Note: it supports postprocessing too, but range of values is strange: (TODO UPDATE)</P> |
| 1612 | 109 |
| 1682 | 110 <P><TABLE BORDER=0> |
| 1987 | 111 <TD> </TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>0</TD><TD> </TD> |
| 112 <TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>no postproc</TD><TR> | |
| 113 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>10 .. 20</TD> | |
| 114 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>postprocessing, normal (like level 2 with divxds)</TD><TR> | |
| 115 <TD></TD><TD><FONT face="Verdana, Arial, Helvetica, sans-serif" size=2>30 .. 60</TD> | |
| 116 <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 | 117 </TABLE></P> |
| 1612 | 118 |
| 1682 | 119 <P><B><A NAME=2.1.2.2>2.1.2.2. ffmpeg's DivX/libavcodec</A></B></P> |
| 120 | |
| 121 <P>Beginning with version 0.4.2 , <A HREF="http://ffmpeg.sourceforge.net">ffmpeg</A> contains an <B>opensource</B> DivX codec, | |
| 122 which is compatible with the traditional DivX. <B>MPlayer</B> supports this codec, | |
| 123 and this makes it possible to <B>watch DivX movies on non-x86 platforms!</B> | |
| 124 It was removed from <B>MPlayer</B>'s cvs tree, you have to download it | |
| 125 manually directly from <B>FFmpeg</B>'s tree:</P> | |
| 126 | |
| 127 <P><CODE> | |
| 1987 | 128 cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg login<BR> |
| 1612 | 129 cvs -d:pserver:anonymous@cvs.ffmpeg.sourceforge.net:/cvsroot/ffmpeg co ffmpeg |
| 1682 | 130 </CODE></P> |
| 1612 | 131 |
| 1682 | 132 <P>Note: <I>if you copy with CVS subdirs, next time it's enough to do |
| 133 'cvs update'.</I></P> | |
| 1612 | 134 |
| 1682 | 135 <P>Now, move the newly downloaded ffmpeg source's <B>libavcodec</B> directory, |
| 136 (with all it's subdirectories) to <B>MPlayer</B>'s tree, so it will look | |
| 137 like this:</P> | |
| 1612 | 138 |
| 1682 | 139 <P> <CODE>main/libavcodec</CODE></P> |
| 1612 | 140 |
| 1869 | 141 <P>Symlinking is NOT enough, you have to copy/move it!!!</P> |
| 1668 | 142 |
|
2240
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
143 <P>./configure detects if it can be built. The codec also <B>supports |
|
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
144 postprocessing!</B></P> |
| 1612 | 145 |
| 1682 | 146 <P>In order to use it, refresh your codecs.conf file, and do as the manpage, |
| 147 or the example.conf says (the -vfm option).</P> | |
| 1612 | 148 |
|
2240
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
149 <P>Note: libavcodec contains other codecs as well (for example ffmpeg12), but |
|
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
150 at the moment we mostly focus on ffdivx, and it's unlikely that this will |
|
5d476d03e2b3
ide vmi nagy hulyeseget akartam irni de elfelejtettem
gabucino
parents:
2153
diff
changeset
|
151 change.</P> |
| 1612 | 152 |
| 153 | |
| 1785 | 154 <P><B><A NAME=2.1.2.3>2.1.2.3. Hardware AC3 decoding</A></B></P> |
| 1688 | 155 |
| 156 <P>You'll need an AC3 capable soundcard, with digital out (SP/DIF). The | |
| 157 card's driver must support the AFMT_AC3 format (like SB Live! does). | |
| 158 Connect your AC3 decoder to the SP/DIF output, and use the '-ac hwac3' | |
| 1987 | 159 option. It may or may not work (experimental). (probably won't...)</P> |
| 1688 | 160 |
| 161 | |
| 1682 | 162 <P><B><A NAME=2.1.4>2.1.4. Codec importing howto</A></B></P> |
| 163 | |
| 164 <P><B><A NAME=2.1.4.1>2.1.4.1. VFW codecs</A></B></P> | |
| 165 | |
| 166 <P>VfW (Video for Windows) is the old Video API for Windows. Its codecs have | |
| 167 the .DLL or (rarely) .DRV extension. | |
| 168 If <B>MPlayer</B> fails with your AVI:</P> | |
| 169 | |
| 170 <P> <CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P> | |
| 1612 | 171 |
| 1682 | 172 <P>It means your AVI is encoded with a codec which has the HFYU fourcc (HFYU = |
| 173 HuffYUV codec, DIV3 = DivX Low Motion, etc...). Now that we know this, we'll | |
| 174 have to find out which DLL Windows loads in order to play this file. In our | |
| 175 case, the system.ini contains this (with many others):</P> | |
| 1612 | 176 |
| 1682 | 177 <P> <CODE>VIDC.HFYU=huffyuv.dll</CODE></P> |
| 178 | |
| 179 <P>So we'll need the huffyuv.dll file. Note that the audio codecs are specified | |
| 180 with the MSACM prefix:</P> | |
| 181 | |
| 182 <P> <CODE>msacm.l3acm=L3codeca.acm</CODE></P> | |
| 1612 | 183 |
| 184 | |
| 1682 | 185 <P>This is the MP3 codec. |
| 186 So, now we have all the info needed (fourcc, codec file, sample AVI), submit | |
| 187 your codec support request in mail, and upload these files to the FTP:</P> | |
| 1612 | 188 |
| 1869 | 189 <P> <CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P> |
| 1612 | 190 |
| 191 | |
| 1682 | 192 <P><B><A NAME=2.1.4.2>2.1.4.2. DirectShow codecs</A></B></P> |
| 1612 | 193 |
| 1682 | 194 <P>DirectShow is the newer Video API, which is even worse than its predecessor. |
| 195 Things are harder with DirectShow, since | |
| 196 <UL> | |
| 197 <LI>system.ini doesn't contain the needed information, instead it's stored in | |
| 198 the registry :( | |
| 199 <LI>we'll need the GUID of the codec. | |
| 200 </UL></P> | |
| 1612 | 201 |
| 1682 | 202 <P>So let's search that goddamn registry.. |
| 203 <UL> | |
| 204 <LI>Start 'regedit' | |
| 205 <LI>press ctrl-f, disable the first two checkbox, and enable the third. Type | |
| 206 the fourcc of the codec. (for ex.: TM20) | |
| 207 <LI>you should see a field which contains the path and filename | |
| 208 (for ex. : C:\WINDOWS\SYSTEM\TM20DEC.AX) | |
| 209 <LI>now that we have the file, we'll need the GUID. Try searching again, but | |
| 210 now we'll search for the codec's name, not the fourcc. Its name can be acquired | |
| 211 when Media Player is playing that file, by checking File/Properties/Advanced. | |
| 212 If not, bad luck ;) Try guessing. | |
| 213 (for ex. search for : TrueMotion) | |
| 214 <LI>if found (in registry), there should be a FriendlyName field, and a CLSID | |
| 215 field. Write down that 16 byte of CLSID, this is the GUID required by us. | |
| 216 </UL></P> | |
| 217 | |
| 218 <P>NOTE: if searching fails, try to enable all the checkboxes.. you may have | |
| 219 false hits, but maybe you'll have the right, too...</P> | |
| 220 <P>NOTE: dump that M$ shit.</P> | |
| 1612 | 221 |
| 222 | |
| 1682 | 223 <P>So, now we have all the info needed (fourcc, GUID, codec file, sample AVI), |
| 224 submit your codec support request in mail, and upload these files to the FTP:<BR> | |
| 1869 | 225 ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</P> |
| 1612 | 226 |
| 227 </BODY> | |
| 228 </HTML> |
