Porty Linux Hlavní vývojovou platformou je Linux na x86, ačkoli MPlayer pracuje na mnoha jiných portech Linuxu. Binární balíčky MPlayeru jsou dostupné z několika zdrojů. Nicméně není žádný z těchto balíčků podporován. Hlaste tedy problémy jejich autorům, nikoli nám. Vytvoření balíčku pro Debian Pro vytvoření balíčku pro Debian spusťte následující příkaz v adresáři se zdrojovým kódem MPlayeru: fakeroot debian/rules binary Pokud chcete předat nějaké volby pro configure, můžete nastavit proměnnou prostředí DEB_BUILD_OPTIONS. Například, pokud chcete GUI a podporu OSD menu, měli byste použít: DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary Rovněž můžete předat některé proměnné do Makefile. Například, pokud chcete kompilovat pomocí gcc 3.4 i v případě, že to není výchozí kompilátor: CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary K vyčistění zdrojového stromu spusťte následující příkaz: fakeroot debian/rules clean Jako root můžete nainstalovat .deb balíček obvyklým způsobem: dpkg -i ../mplayer_version.deb Christian Marillat vytvářel jistou dobu neoficiální Debianí balíčky MPlayeru, MEncoderu a našich bitmapových fontů, můžete si je stáhnout (apt-get) z jeho domácí stránky. Balení RPM Dominik Mierzejewski vytvořil a udržuje oficiální Red Hat RPM balíčky MPlayeru. Tz jsou dostupné z jeho domácí stránky. RPM balíčky pro Mandrake jsou dostupné z P.L.F.. SuSE zařadilo do své distribuce zmrzačenou verzi MPlayeru. V posledních verzích ji odstranili. Funkční RPM naleznete na links2linux.de. ARM MPlayer pracuje na Linuxových PDA s ARM CPU např. Sharp Zaurus, Compaq Ipaq. Nejjednodušší způsob jak si opatřit MPlayer je, stáhnout si jej z některého OpenZaurus balíčkového kanálu. Pokud si jej chcete skompilovat sami, měli byste nahlédnout do adresáře mplayer a libavcodec v buildroot OpenZaurus distribuce. Zde mají vždy poslední Makefile a patche používané pro sestavení CVS verze MPlayeru s libavcodecem. Pokud potřebujete GUI rozhraní, můžete použít xmms-embedded. *BSD MPlayer běží na FreeBSD, OpenBSD, NetBSD, BSD/OS a Darwinu. Existují portované/pkgsrc/fink/atd verze MPlayeru, které lze pravděpodobně snadněji použít, než naše surové zdrojové kódy. K sestavení MPlayeru budete potřebovat GNU make (gmake - nativní BSD make nebude pracovat) a současnou verzi binutils. Pokud si MPlayer stěžuje, že nemůže najít /dev/cdrom nebo /dev/dvd, vytvořte příslušný symbolický link: ln -s /dev/vaše_cdrom_zařízení /dev/cdrom Chcete-li používat Win32 DLL v MPlayeru, budete muset rekompilovat jádro s volbou "USER_LDT" (pokud nepoužíváte FreeBSD-CURRENT, kde je to výchozí). FreeBSD Pokud váš procesor má SSE, rekompilujte jádro s volbami "CPU_ENABLE_SSE" (vyžaduje FreeBSD-STABLE nebo patche do jádra). OpenBSD Vzhledem k omezením v různých verzích gas (GNU assembleru – pozn. překl.) (relokace vs MMX), budete muset kompilovat ve dvou krocích: Nejprve se ujistěte že je nenativní as jako první ve vaší $PATH a proveďte gmake -k, pak zajistěte, aby se použila nativní verze a proveďte gmake. Od OpenBSD 3.4 není již výše uvedená metoda potřeba. Darwin Viz sekce Mac OS. Sun Solaris MPlayer by měl běžet na Solarisu 2.6 nebo novějším. Použijte SUN audio rozhraní pomocí volby pro přehrávání zvuku. On UltraSPARCs, MPlayer takes advantage of their VIS extensions (equivalent to MMX), currently only in libmpeg2, libvo and libavcodec, but not in mp3lib. You can watch a VOB file on a 400MHz CPU. You'll need mLib installed. To build the package you will need GNU make (gmake, /opt/sfw/gmake), native Solaris make will not work. Typical error you get when building with Solaris' make instead of GNU make: % /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen 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. 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 /usr/ccs/bin/as. The configure script tries to find out, which assembler program is used by your "gcc" command (in case the autodetection fails, use the option to tell the configure script where it can find GNU "as" on your system). Error message from configure on a Solaris x86 system using GCC without GNU assembler: % configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1... (Solution: Install and use a gcc configured with ) Typical error you get when building with a GNU C compiler that does not use GNU as: % 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 ... Due to bugs in Solaris 8, you may not be able to play DVD discs larger than 4 GB: 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 (). This problem does not exist in the SPARC version of Solaris 8. 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 (). The hsfs problem can be fixed by installing patch 109764-04 (sparc) / 109765-04 (x86). Silicon Graphics Irix 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: ./configure --with-install=/path/and/name/of/install Or you can use the default install delivered with IRIX 6.5 in which case you will have to edit the Makefile by hand a little bit. Change the following two lines: $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf to: $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ $(INSTALL) -m 644 codecs.conf $(CONFDIR)/ And then do (from within the MPlayer source dir): cp DOCS/mplayer.1 . ; cp etc/codecs.conf . and then go on with building and installing. HP-UX Joe Page hosts a detailed HP-UX MPlayer HOWTO by Martin Gansser on his homepage. With these instructions the build should work out of the box. The following information is taken from this HOWTO. You need GCC 3.4.0 or later, GNU make 3.80 or later and SDL 1.2.7 or later. HP cc will not produce a working program, prior GCC versions are buggy. For OpenGL functionality you need to install Mesa and the gl and gl2 video output drivers should work, speed may be very bad, depending on the CPU speed, though. A good replacement for the rather poor native HP-UX sound system is GNU esound. Create the DVD device scan the SCSI bus with: # ioscan -fn Class I H/W Path Driver S/W State H/W Type Description ... ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI target 3 8/16/5.2 tgt CLAIMED DEVICE disk 4 8/16/5.2.0 sdisk CLAIMED DEVICE PIONEER DVD-ROM DVD-305 /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0 target 4 8/16/5.7 tgt CLAIMED DEVICE ctl 1 8/16/5.7.0 sctl CLAIMED DEVICE Initiator /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0 ... The screen output shows a Pioneer DVD-ROM at SCSI address 2. The card instance for hardware path 8/16 is 1. Create a link from the raw device to the DVD device. # ln -s /dev/rdsk/c<SCSI bus instance>t<SCSI target ID>d<LUN> /dev/<device> Example: # ln -s /dev/rdsk/c1t2d0 /dev/dvd Below are solutions for some common problems: Crash at Start with the following error message: /usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl This means that the function .finite(). is not available in the standard HP-UX math library. Instead there is .isfinite().. Solution: Use the latest Mesa depot file. Crash at playback with the following error message: /usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0 Solution: Use the extralibdir option of configure MPlayer segfaults with a message like this: Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault Solution: The HP-UX kernel has a default stack size of 8MB(?) per process.(11.0 and newer 10.20 patches let you increase maxssiz up to 350MB for 32-bit programs). You need to extend maxssiz and recompile the kernel (and reboot). You can use SAM to do this. (While at it, check out the maxdsiz parameter for the maximum amount of data a program can use. It depends on your applications, if the default of 64MB is enough or not.) QNX Works. You'll need to download SDL for QNX, and install it. Then run MPlayer with and options, and it should be fast. The output will be even slower than on Linux, since QNX has only X emulation which is VERY slow. Use SDL. Windows Yes, MPlayer runs on Windows under Cygwin and MinGW. It does not have a GUI yet, but the command line version is almost completely functional. Patches are always welcome. You should check out the mplayer-cygwin mailing list for help and latest information. Best results are achieved with the native DirectX video output driver () and the native Windows waveout audio driver (). 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 . Download DirectX 7 header files 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. VIDIX now works under Windows as , although it is still experimental and needs a bit of manual setup. Download dhahelper.sys or dhahelper.sys (with MTRR support) and copy it to the libdha/dhahelperwin directory in your MPlayer source tree. Open a console and change to that directory. Then type gcc -o dhasetup.exe dhasetup.c and execute dhasetup.exe install as Administrator. After that you will have to reboot. When you are done, copy the .so files from vidix/drivers to the mplayer/vidix directory relative to your mplayer.exe. For best results MPlayer 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 mplayer -benchmark -nosound -frames 100 -vf format=colorspace movie where colorspace can be any colorspace printed by the option. If you find a colorspace your card handles particularly bad will keep it from being used. Add this to your config file to permanently keep it from being used. There are special codec packages for Windows available on our codecs page to allow playing formats for which there is no native support yet. Put the codecs somewhere in your path or pass (alternatively only on Cygwin) to configure. We have had some reports that Real DLLs need to be writable by the user running MPlayer, but only on some systems (NT4). Try making them writable if you have problems. You can play VCDs by playing the .DAT or .MPG files that Windows exposes on VCDs. It works like this (adjust for the drive letter of your CD-ROM): mplayer d:/mpegav/avseq01.dat DVDs also work, adjust for the drive letter of your DVD-ROM: mplayer dvd://<title> -dvd-device d: The Cygwin/MinGW console is rather slow. Redirecting output or using the option has been reported to improve performance on some systems. Direct rendering () may also help. You can prevent OSD flicker through double buffering with the option. If playback is jerky, try . If some of these options help you, you may want to put them in your config file. 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 our projects page. <application>Cygwin</application> You need to run Cygwin 1.5.0 or later in order to compile MPlayer. DirectX header files need to be extracted to /usr/include/ or /usr/local/include/. Instructions and files for making SDL run under Cygwin can be found on the libsdl site. <application>MinGW</application> Installing a version of MinGW that could compile MPlayer used to be quite tricky, but it works out of the box now. Just install MinGW 3.1.0 or later and MSYS 1.0.9 or later and tell the MSYS postinstall that MinGW is installed. Extract DirectX header files to /mingw/include/. MOV compressed header support requires zlib, which MinGW does not provide by default. Configure it with and install it before compiling MPlayer. Mac OS Only Mac OS X 10.2 and up is supported by the "raw" MPlayer source. Feel free to make support for older Mac OS versions and send patches! Apple's modified GCC 3.x is preferred for compiling MPlayer especially when using libavcodec as Apple's modified GCC 2.95.x doesn't support C99 syntax well. One can get an Aqua GUI for MPlayer together with compiled MPlayer binaries for Mac OS X from the MPlayerOSX project. Amiga/MorphOS (GeekGadgets) Nicholas Det at Genesi has done a big and powerful port of MPlayer for MorphOS. Sadly it's based on the 0.90 series. Get if from MorphZone: MPlayer 0.91 binary MPlayer 0.91 source MEncoder 1.0pre3 binary