1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
|
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision$ -->
<chapter id="ports" xreflabel="Ports">
<title>Ports</title>
<sect1 id="linux">
<title>Linux</title>
<para>
The main development platform is Linux on x86, although
<application>MPlayer</application> works on many other Linux ports.
Binary packages of <application>MPlayer</application> are available from several
sources. However, <emphasis role="bold">none of these packages are supported</emphasis>.
Report problems to the authors, not to us.
</para>
<sect2 id="debian">
<title>Debian packaging</title>
<para>
To build a Debian package, run the following command in the
<application>MPlayer</application> source directory:
<screen>fakeroot debian/rules binary</screen>
As root you can then install the <filename>.deb</filename> package as usual:
<screen>dpkg -i ../mplayer_<replaceable>version</replaceable>.deb</screen>
</para>
<para>
Christian Marillat has been making unofficial Debian
<application>MPlayer</application>, <application>MEncoder</application> and
font packages for a while, you can (apt-)get them from his
<ulink url="http://marillat.free.fr/">homepage</ulink>.
</para>
</sect2>
<sect2 id="rpm">
<title>RPM packaging</title>
<para>
Dominik Mierzejewski created and maintains official Red Hat RPM packages of
<application>MPlayer</application>. They are available from his
<ulink url="http://www.piorunek.pl/~dominik/linux/pkgs/mplayer/">homepage</ulink>.
</para>
<para>
Mandrake RPM packages are available from the <ulink url="http://plf.zarb.org/">P.L.F.</ulink>.
SuSE used to include a crippled version of <application>MPlayer</application>
in their distribution. They have removed it in their latest releases. You can
get working RPMs from
<ulink url="http://packman.links2linux.de/?action=128">links2linux.de</ulink>.
</para>
</sect2>
<sect2 id="arm">
<title>ARM</title>
<para>
<application>MPlayer</application> works on Linux PDAs with ARM CPU e.g. Sharp Zaurus,
Compaq Ipaq. The easiest way to obtain <application>MPlayer</application> is to get it
from one of the <ulink url="http://www.openzaurus.org">OpenZaurus</ulink> package feeds. If
you want to compile it yourself, you should look at the
<ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">MPlayer</ulink>
and the
<ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</ulink>
directory in the OpenZaurus distribution buildroot. These always have the latest
Makefile and patches used for building a CVS <application>MPlayer</application> with libavcodec.
If you need a GUI frontend, you can use xmms-embedded.
</para>
</sect2>
</sect1>
<sect1 id="bsd">
<title>*BSD</title>
<para>
<application>MPlayer</application> runs on FreeBSD, OpenBSD, NetBSD,
BSD/OS and Darwin. There are ports/pkgsrc/fink/etc versions of <application>MPlayer</application>
available that are probably easier to use than our raw sources.
</para>
<para>
To build <application>MPlayer</application> you will need GNU make
(gmake - native BSD make will not work) and a recent version of binutils.
</para>
<para>
If <application>MPlayer</application> complains about not finding <filename>/dev/cdrom</filename>
or <filename>/dev/dvd</filename>, create an appropriate symbolic link:
<screen>ln -s /dev/<replaceable>your_cdrom_device</replaceable> /dev/cdrom</screen>
</para>
<para>
To use Win32 DLLs with <application>MPlayer</application> you will need to
re-compile the kernel with "<envar>option USER_LDT</envar>"
(unless you run FreeBSD-CURRENT,
where this is the default).
</para>
<sect2 id="freebsd">
<title>FreeBSD</title>
<para>
If your CPU has SSE, recompile your kernel with
"<envar>options CPU_ENABLE_SSE</envar>" (FreeBSD-STABLE or kernel
patches required).
</para>
</sect2>
<sect2 id="openbsd">
<title>OpenBSD</title>
<para>
Due to limitations in different versions of gas (relocation vs MMX), you
will need to compile in two steps: First make sure that the non-native as
is first in your <envar>$PATH</envar> and do a <command>gmake -k</command>, then
make sure that the native version is used and do <command>gmake</command>.
</para>
</sect2>
<sect2 id="darwin">
<title>Darwin</title>
<para>
See the <link linkend="macos">Mac OS</link> section.
</para>
</sect2>
</sect1>
<sect1 id="solaris">
<title>Sun Solaris</title>
<para>
<application>MPlayer</application> should work on Solaris 2.6 or newer.
</para>
<para>
On <emphasis role="bold">UltraSPARCs</emphasis>, <application>MPlayer</application>
takes advantage of their <emphasis role="bold">VIS</emphasis> extensions
(equivalent to MMX), currently only in <emphasis>libmpeg2</emphasis>, <emphasis>libvo</emphasis>
and <emphasis>libavcodec</emphasis>, but not in mp3lib. You can watch a VOB file
on a 400MHz CPU. You'll need
<ulink url="http://www.sun.com/sparc/vis/mediaLib.html">mLib</ulink> installed.
</para>
<para>
To build the package you will need GNU <application>make</application>
(<filename>gmake</filename>, <filename>/opt/sfw/gmake</filename>), native
Solaris make will not work. Typical error you get when building with
Solaris' make instead of GNU make:
<screen>
% /usr/ccs/bin/make
make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
</screen>
</para>
<para>
On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter if
GNU C/C++ compiler is configured with or without the GNU assembler.
</para>
<para>
On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler,
configured to use the GNU assembler! The mplayer code on the x86 platform
makes heavy use of MMX, SSE and 3DNOW! instructions that cannot be compiled
using Sun's assembler <filename>/usr/ccs/bin/as</filename>.
</para>
<para>The <filename>configure</filename> script tries to find out, which
assembler program is used by your "gcc" command (in case the autodetection
fails, use the <option>--as=<replaceable>/wherever/you/have/installed/gnu-as</replaceable></option>
option to tell the <filename>configure</filename> script where it can find GNU
"as" on your system).
</para>
<para>
Error message from <filename>configure</filename> on a Solaris x86 system using
GCC without GNU assembler:
<screen>
% configure
...
Checking assembler (/usr/ccs/bin/as) ... , failed
Please upgrade(downgrade) binutils to 2.10.1...
</screen>
(Solution: Install and use a gcc configured with <option>--with-as=gas</option>)
</para>
<para>
Typical error you get when building with a GNU C compiler that does not use GNU as:
<screen>
% gmake
...
gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
-fomit-frame-pointer -I/usr/local/include -o mplayer.o mplayer.c
Assembler: mplayer.c
"(stdin)", line 3567 : Illegal mnemonic
"(stdin)", line 3567 : Syntax error
... more "Illegal mnemonic" and "Syntax error" errors ...
</screen>
</para>
<para>
Due to bugs in Solaris 8, you may not be able to play DVD discs larger than 4 GB:
</para>
<itemizedlist>
<listitem><para>
The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk block >4GB
on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM and DVD media).
Due to a 32Bit int overflow, a disk address modulo 4GB is accessed
(<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22516"/>).
This problem does not exist in the SPARC version of Solaris 8.
</para></listitem>
<listitem><para>
A similar bug is present in the hsfs(7FS) filesystem code (aka ISO9660),
hsfs may not not support partitions/disks larger than 4GB, all data is
accessed modulo 4GB
(<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22592"/>).
The hsfs problem can be fixed by installing patch 109764-04 (sparc) / 109765-04 (x86).
</para></listitem>
</itemizedlist>
<para>
On Solaris with an UltraSPARC CPU, you can get some extra speed by using the
CPU's VIS instructions for certain time consuming operations. VIS acceleration
can be used in <application>MPlayer</application> by calling functions in Sun's
<ulink url="http://www.sun.com/sparc/vis/mediaLib.html">mediaLib</ulink>.
</para>
<para>
VIS accelerated operations from mediaLib are used for mpeg2 video decoding
and for color space conversion in the video output drivers.
</para>
</sect1>
<sect1 id="irix">
<title>Silicon Graphics Irix</title>
<para>
You can either try to install the GNU install program, and (if you did
not put it in your global path) then point to the location with:
<screen>./configure --with-install=<replaceable>/path/and/name/of/install</replaceable></screen>
</para>
<para>
Or you can use the default install delivered with IRIX 6.5 in which case
you will have to edit the <filename>Makefile</filename> by hand a little bit.
Change the following two lines:
<programlisting>
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1
$(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf
</programlisting>
to:
<programlisting>
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/
$(INSTALL) -m 644 codecs.conf $(CONFDIR)/
</programlisting>
And then do (from within the <application>MPlayer</application> source dir):
<screen>cp DOCS/mplayer.1 . ; cp etc/codecs.conf .</screen>
and then go on with building and installing.
</para>
</sect1>
<sect1 id="qnx">
<title>QNX</title>
<para>
Works. You'll need to download SDL for QNX, and install it. Then run
<application>MPlayer</application> with <option>-vo sdl:photon</option>
and <option>-ao sdl:nto</option> options, and it should be fast.
</para>
<para>
The <option>-vo x11</option> output will be even slower than on Linux,
since QNX has only X <emphasis>emulation</emphasis> which is VERY slow. Use SDL.
</para>
</sect1>
<sect1 id="windows">
<title>Windows</title>
<para>Yes, <application>MPlayer</application> runs on Windows under
<ulink url="http://www.cygwin.com/"><application>Cygwin</application></ulink> and
<ulink url="http://www.mingw.org/"><application>MinGW</application></ulink>.
It does not have a GUI yet, but the command line version is almost completely
functional. <ulink url="../../tech/patches.txt">Patches</ulink> are always welcome.
You should check out the
<ulink url="http://mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">mplayer-cygwin</ulink>
mailing list for help and latest information.</para>
<para>Best results are achieved with the native DirectX video output driver
(<option>-vo directx</option>) and the native Windows waveout audio driver
(<option>-ao win32</option>) as OpenGL does not work and SDL is known to
distort sound and image or crash on some systems. If the image is
distorted, try turning off hardware acceleration with
<option>-vo directx:noaccel</option>. Download
<ulink url="http://www.videolan.org/vlc/dx7headers.tgz">DirectX 7 header files</ulink>
to compile the DirectX video output driver.</para>
<para>You can use Win32 codecs and Real Win32 codecs (not Real Linux codecs)
if you want to. Put the codecs somewhere in your path or pass
<option>--with-codecsdir=<replaceable>c:/path/to/your/codecs</replaceable></option> (alternatively
<option>--with-codecsdir=<replaceable>/path/to/your/codecs</replaceable></option> only on
<application>Cygwin</application>) to <filename>configure</filename>. We
have had some reports that Real DLLs need to be writable by the user running
<application>MPlayer</application>, but only on some systems. Try making
them writable if you have problems. QuickTime DLLs also work, but you will
have to put them in your Windows system directory
(<filename class="directory">C:\Windows\system\</filename> or similar).</para>
<para>The <application>Cygwin</application>/<application>MinGW</application>
console is rather slow. Redirecting output or using the
<option>-quiet</option> option has been reported to improve performance on
some systems. Direct rendering (<option>-dr</option>) may also help.
You can prevent OSD flicker through double buffering with the
<option>-double</option> option. If playback is jerky, try
<option>-autosync 100</option>. If some of these options help you, you
may want to put them in your config file.</para>
<para>Sascha Sommer releases official Windows binaries from time to time,
Joey Parrish makes unofficial Windows packages complete with installer.
Look for these in the Windows section of
<ulink url="http://www.mplayerhq.hu/homepage/projects.html">our projects page</ulink>.</para>
<sect2 id="cygwin">
<title><application>Cygwin</application></title>
<para><application>Cygwin</application> versions prior to 1.5.0 do
not include <filename>inttypes.h</filename>. Put this
<ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32-beta/contrib/inttypes.h">inttypes.h</ulink>
in <filename class="directory">/usr/include/</filename> in order to
make <application>MPlayer</application> compile.</para>
<para>DirectX header files need to be extracted to <filename class="directory">/usr/include/</filename> or
<filename class="directory">/usr/local/include/</filename>.</para>
<para>Instructions and files for making SDL run under
<application>Cygwin</application> can be found on the
<ulink url="http://www.libsdl.org/extras/win32/cygwin/">libsdl site</ulink>.</para>
<para>You can play VCDs by playing the <filename>.DAT</filename> or <filename>.MPG</filename> files
that Windows exposes on VCDs. It works like this (adjust for the drive letter
of your CD-ROM):</para>
<screen>mplayer <replaceable>d:/mpegav/avseq01.dat</replaceable></screen>
<screen>mplayer <replaceable>/cygdrive/d/MPEG2/AVSEQ01.MPG</replaceable></screen>
<para>DVDs also work, adjust <option>-dvd-device</option> for the drive letter
of your DVD-ROM:</para>
<screen>mplayer dvd://<title> -dvd-device '\\.\d:'</screen>
</sect2>
<sect2 id="mingw">
<title><application>MinGW</application></title>
<para>Installing a version of <application>MinGW</application> that could
compile <application>MPlayer</application> used to be quite tricky, but it
works out of the box now. Just install <application>MinGW</application>
3.1.0 or later and MSYS 1.0.9 or later and tell the MSYS postinstall that
<application>MinGW</application> is installed.</para>
<para>If you use a version of <application>MinGW</application> before 3.1.0,
you need to replace <filename>/mingw/include/sys/types.h</filename> with this
<ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32-beta/contrib/types.h"><filename>types.h</filename></ulink>.</para>
<para>Extract DirectX header files to <filename class="directory">/mingw/include/</filename>.</para>
<para>VCDs and DVDs work almost like <application>Cygwin</application> (adjust
for the drive letter of your CD-ROM/DVD-ROM):</para>
<screen>mplayer <replaceable>d:/mpegav/avseq01.dat</replaceable></screen>
<screen>mplayer <replaceable>/d/MPEG2/AVSEQ01.MPG</replaceable></screen>
<screen>mplayer dvd://<title> -dvd-device /d/</screen>
</sect2>
</sect1>
<sect1 id="macos">
<title>Mac OS</title>
<para>
Only Mac OS X 10.2 and up is supported by the "raw"
<application>MPlayer</application> source. Feel free to make support for older
Mac OS versions and send patches!
</para>
<para>
Apple's modified GCC 3.x is preferred for compiling
<application>MPlayer</application> especially when using libavcodec as Apple's
modified GCC 2.95.x doesn't support C99 syntax well.
</para>
<para>
One can get an Aqua GUI for <application>MPlayer</application> together with
compiled <application>MPlayer</application> binaries for Mac OS X from the
<ulink url="http://mplayerosx.sf.net/">MPlayerOSX</ulink> project.
</para>
</sect1>
<sect1 id="hpux">
<title>HP UX</title>
<para>
Martin Gansser maintains a valuable
<ulink url="http://cloud.prohosting.com/patos/docs/mplayer_on_hpux11.htm">HOWTO</ulink>
about building <application>MPlayer</application> on HP-UX. It even has a FAQ
section!
</para>
<para>
Anyway, our "raw" <application>MPlayer</application> source is used to compile
on HP-UX without flaws.
</para>
</sect1>
<sect1 id="amiga">
<title>Amiga/MorphOS (GeekGadgets)</title>
<para>
Nicholas Det at Genesi has done a big and powerful port of <application>MPlayer
</application> for MorphOS. Sadly it's based on the 0.90 series.
</para>
<para>
Get if from <ulink url="http://www.morphzone.org/">MorphZone</ulink>:
<itemizedlist>
<listitem><para>
<ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=90">
<application>MPlayer</application> 0.91 binary</ulink>
</para></listitem>
<listitem><para>
<ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=91">
<application>MPlayer</application> 0.91 source</ulink>
</para></listitem>
<listitem><para>
<ulink url="http://www.morphzone.org/modules/mydownloads/singlefile.php?lid=912">
<application>MEncoder</application> 0.91 binary</ulink>
</para></listitem>
</itemizedlist>
</para>
</sect1>
</chapter>
|