mirror of https://github.com/mpv-player/mpv
477 lines
18 KiB
XML
477 lines
18 KiB
XML
<?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 a
|
|
<ulink url="ftp://ftp.nerim.net/debian-marillat/index.html">mirror of his homepage</ulink>
|
|
since his
|
|
<ulink url="http://marillat.free.fr/">original homepage</ulink>
|
|
seems to be down.
|
|
</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://greysector.rangers.eu.org/mplayer.html">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
|
|
<systemitem class="library">libavcodec</systemitem>.
|
|
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>
|
|
<para>
|
|
As of OpenBSD 3.4 the hack above is no longer needed.
|
|
</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
|
|
<systemitem class="library">libmpeg2</systemitem>,
|
|
<systemitem class="library">libvo</systemitem>
|
|
and <systemitem class="library">libavcodec</systemitem>, but not in
|
|
<systemitem class="library">mp3lib</systemitem>. You can watch a VOB file
|
|
on a 400MHz CPU. You'll need
|
|
<ulink url="http://www.sun.com/sparc/vis/mediaLib.html"><systemitem class="library">mLib</systemitem></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 <application>MPlayer</application>
|
|
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>
|
|
</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>). Alternatives are OpenGL and SDL, but OpenGL
|
|
performance varies greatly between systems and SDL is known to
|
|
distort sound and video 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. Furthermore you need to have
|
|
DirectX 7 or later installed for the DirectX video output driver to work.
|
|
</para>
|
|
|
|
<para><link linkend="vidix">VIDIX</link> now works under Windows as
|
|
<option>-vo winvidix</option>, although it is still experimental
|
|
and needs a bit of manual setup. Download
|
|
<ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32-beta/dhahelper.sys">dhahelper.sys</ulink>
|
|
and copy it to the
|
|
<filename class="directory">libdha/dhahelperwin</filename> directory in your
|
|
<application>MPlayer</application> source tree.
|
|
Open a console and change to that directory. Then type
|
|
|
|
<screen>gcc -o dhasetup.exe dhasetup.c</screen>
|
|
|
|
and execute
|
|
|
|
<screen>dhasetup.exe install</screen>
|
|
|
|
as Administrator. After that you will have to reboot. When you are
|
|
done, copy the <systemitem class="library">.so</systemitem> files from
|
|
<filename class="directory">vidix/drivers</filename> to the
|
|
<filename class="directory">mplayer/vidix</filename> directory
|
|
relative to your <filename>mplayer.exe</filename>.</para>
|
|
|
|
<para>For best results <application>MPlayer</application> should use a
|
|
colorspace that your video card supports in hardware. Unfortunately many
|
|
Windows graphics drivers wrongly report some colorspaces as supported in
|
|
hardware. To find out which, try
|
|
|
|
<screen>mplayer -benchmark -nosound -frames 100 -vf format=<replaceable>colorspace</replaceable> <replaceable>movie</replaceable></screen>
|
|
|
|
where <replaceable>colorspace</replaceable> can be any colorspace
|
|
printed by the <option>-vf format=fmt=help</option> option. If you
|
|
find a colorspace your card handles particularly bad
|
|
<option>-vf noformat=<replaceable>colorspace</replaceable></option>
|
|
will keep it from being used. Add this to your config file to permanently
|
|
keep it from being used.</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"><replaceable>C:\Windows\system\</replaceable></filename>
|
|
or similar). As a last resort, try putting them in the same directory as
|
|
<application>MPlayer</application>.</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>
|
|
|
|
<para>DVDs also work, adjust <option>-dvd-device</option> for the drive letter
|
|
of your DVD-ROM:</para>
|
|
|
|
<screen>mplayer dvd://<replaceable><title></replaceable> -dvd-device <replaceable>d</replaceable>:</screen>
|
|
|
|
<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#windows">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>
|
|
|
|
</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>MOV compressed header support requires
|
|
<ulink url="http://www.gzip.org/zlib/">zlib</ulink>, which
|
|
<application>MinGW</application> does not provide by default.
|
|
Configure it with <option>--prefix=/mingw</option> and install
|
|
it before compiling <application>MPlayer</application>.</para>
|
|
|
|
</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
|
|
<systemitem class="library">libavcodec</systemitem> 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="hp-ux">
|
|
<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>
|