Mercurial > mplayer.hg
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> <A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A><BR> |
57 <P> <A HREF="http://avifile.sourceforge.net">http://avifile.sourceforge.net</A></P> | 57 <A HREF="http://divx.com">http://divx.com</A></P> |
58 | |
59 <P>If it doesn't work, try :</P> | |
60 | |
61 <P> <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> </TD><TD VALIGN=top><FONT CLASS="text">-vc odivx</TD><TD> </TD> | 76 <TR><TD> </TD><TD VALIGN=top><CODE>-vc odivx</CODE></TD><TD> </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 divx4</TD><TD></TD> | 80 <TR><TD></TD><TD VALIGN=top><CODE>-vc 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> </TD><TD><FONT CLASS="text">0</TD><TD> </TD> | 98 <TR><TD> </TD><TD><FONT CLASS="text">0</FONT></TD><TD> </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> <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> <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 <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 <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 <CODE>cd xvidcore/build/generic</CODE><BR> | 251 <LI><CODE>make -f Makefile.linux</CODE></LI> |
273 <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 <CODE>make -f Makefile.linux</CODE><BR> | 253 package, and copy them to <CODE>/usr/local/include/</CODE>.</LI> |
275 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 <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> <CODE>UNKNOWN video codec: HFYU (0x55594648)</CODE></P> | 344 <P> <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> <CODE>VIDC.HFYU=huffyuv.dll</CODE></P> | 351 <P> <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> <CODE>msacm.l3acm=L3codeca.acm</CODE></P> | 356 <P> <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> <CODE>ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/</CODE></P> | 363 <P> <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->Properties->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> <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> |