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 binárních balíků s kodeky, můžete si je stáhnout (apt-get) z jeho domácí stránky. Balení RPM Dominik Mierzejewski udržuje oficiální RPM balíčky MPlayeru pro Fedora Core. Ty jsou dostupné z repozitáře. RPM balíčky pro Mandrake/Mandriva 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í SVN verze MPlayeru. Pokud potřebujete GUI rozhraní, můžete použít xmms-embedded. *BSD MPlayer běží na všech známých BSD verzích. 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 "options 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. Komerční Unix MPlayer byl portován na mnoho komerčních variant Unixu. Jelikož vývojová prostředí na těchto systémech bývají odlišná od těch na svobodných Unixech, budete muset provést ruční úpravy, aby se kompilace povedla. 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. Na UltraSPARCích, MPlayer využívá jejich rozšíření VIS (ekvivalentní MMX), zatím jen v libmpeg2, libvo a libavcodec, ale nikoli v mp3lib. Můžete přehrávat VOB soubor na 400MHz CPU. Budete k tomu potřebovat nainstalovanou mLib. Caveat: Podpora mediaLib je v současnosti vypnutá ve výchozím nastavení MPlayeru kvůli chybovosti. Uživatelé SPARCu překládající MPlayer s podporou mediaLib hlásili tlustý zelený pruh v libavcodecem enkódovaném a dekódovaném videu. Pokud chcete, můžete si ji zapnout: ./configure --enable-mlib Děláte to na vlastní nebezpečí. Uživatelé x86 by nikdy neměli používat mediaLib, jelikož vede k velmi slabému výkonu MPlayeru. Pro kompilaci balíku budete potřebovat GNU make (gmake, /opt/sfw/gmake), jelikož nativní make Solarisu nebude pracovat. Typickou chybou kompilace s make Solarisu namísto GNU make je: % /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen Na Solarisu SPARC, potřebujete GNU C/C++ Compiler; nezáleží na tom, zda je GNU C/C++ compiler konfigurován s nebo bez GNU assembleru. Na Solarisu x86, potřebujete GNU assembler a GNU C/C++ compiler, konfigurovaný pro použití GNU assembleru! Kód MPlayeru na platformě x86 intenzivně používá MMX, SSE a 3DNOW! instrukce, které nemůže být kompilovány Sun assemblerem /usr/ccs/bin/as. Skript configure zkouší zjistit, který assembler je použitý vaším příkazem "gcc" (v případě že autodetekce selže, použijte volbu pro nastavení configure skriptu tak, aby našel GNU "as" na vašem systému). Řešení běžných potíží: Chybová zpráva z configure na systému Solaris x86 s použitím GCC bez GNU assembleru: % configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1... (Řešení: Nainstalujte a použijte gcc konfigurovaný s ) Typická chyba, kterou dostanete při kompilaci pomocí GNU C kompilátoru, který nepoužívá 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 ... MPlayer může zhavarovat (segfault), pokud dekódujete nebo enkódujete video používající win32 kodeky: ... Trying to force audio codec driver family acm... Opening audio decoder: [acm] Win32/ACM decoders sysi86(SI86DSCR): Invalid argument Couldn't install fs segment, expect segfault MPlayer interrupted by signal 11 in module: init_audio_codec ... To díky změně na sysi86() ve verzích Solaris 10 a před-Solaris Nevada b31. V Solaris Nevada b32 to bylo opraveno; Sun však ještě musí portovat opravu do Solaris 10. MPlayer Project upozornil Sun na tento problém a záplata pro Solaris 10 je v současnosti rozpracována. Více informací o této chybě naleznete na: . Díky chybám v Solarisu 8, nemůžete přehrávat DVD disky větší než 4 GB: Ovladač sd(7D) na Solarisu 8 x86 má chybu v přístupu k diskovému bloku >4GB na zařízeních, které mají logical blocksize != DEV_BSIZE (čili CD-ROM a DVD média). Díky 32Bit int overflow, dostanete přístupovou diskovou adresu modulo 4GB (). Tento problém neexistuje ve SPARC verzi Solarisu 8. Podobná chyba je i v kódu systému souborů hsfs(7FS) (AKA ISO9660), hsfs nemusí podporovat oddíly/disky větší než 4GB, ke všem datům je přistupováno modulo 4GB (). Problém hsfs může být odstraněn nainstalováním patche 109764-04 (sparc) / 109765-04 (x86). HP-UX Joe Page hostuje podrobné HP-UX MPlayer HOWTO od Martina Ganssera na jeho domácí stránce. Podle těchto instrukcí by kompilace měla proběhnout bez potíží. Následující informace jsou vytaženy ze zmíněného HOWTO. Potřebujete GCC 3.4.0 nebo pozdější, GNU make 3.80 nebo pozdější a SDL 1.2.7 nebo pozdější. HP cc nevytvoří funkční program, předchozí verze GCC jsou chybové. Pro funkci OpenGL musíte nainstalovat Mesa a video rozhraní gl a gl2 by měly pracovat. Jejich rychlost však může být velmi malá, podle rychlosti CPU. Dobrou náhradou za spíše slabý nativní HP-UX systém je GNU esound. Vytvořte DVD zařízení průzkumem SCSI pomocí: # 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 ... Výstup na obrazovce ukazuje Pioneer DVD-ROM na SCSI adrese 2. Instance karty pro hardwarovou cestu 8/16 je 1. Vytvořte link ze surového zařízení na DVD zařízení. ln -s /dev/rdsk/c<SCSI bus instance>t<SCSI target ID>d<LUN> /dev/<device> Příklad: ln -s /dev/rdsk/c1t2d0 /dev/dvd Níže uvádíme řešení některých běžných problémů: Spadne při startu s hlášením: /usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl To znamená, že funkce .finite(). není dostupná ve standardní HP-UX matematické knihovně. Místo ní je zde .isfinite().. Řešení: Použijte poslední Mesa depot soubor. Spadne při přehrávání s hlášením: /usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0 Řešení: Použijte volbu extralibdir v configure MPlayer havaruje (segfault) s hlášením: Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault Řešení: HP-UX kernel má výchozí velikost zásobníku 8MB(?) na proces.(11.0 a novější 10.20 patche vám umožní zvýšit maxssiz až na 350MB pro 32-bit programy). Musíte zvětšit maxssiz a rekompilovat kernel (a restartovat). Pro tento účel můžete použít SAM. (Když už to budete dělat, ověřte parametr maxdsiz pro maximální množství paměti, které může program použít. Závisí na vašich aplikacích, jestli je výchozích 64MB dost nebo ne.) AIX MPlayer lze úspěšně přeložit na AIX 5.1, 5.2 a 5.3, pomocí GCC 3.3 nebo vyšší. Kompilace MPlayeru na AIX 4.3.3 a nížsích nebyla testována. Velmi doporučujeme kompilovat MPlayer pomocí GCC 3.4 nebo vašší, nebo pokud kompilujete na POWER5, vyžaduje se GCC 4.0. Ujistěte se, že používáte GNU make (/opt/freeware/bin/gmake) pro sestavení MPlayeru, jelikož při použití /usr/ccs/bin/make budete mít problémy. Detekce procesoru je stále nedokončena. Testovány byly následující architektury: 604e POWER3 POWER4 Následující architektury nebyly testovány, ale měly by pracovat: POWER POWER2 POWER5 Zvuk přes Ultimedia Services není podporován, jelikož Ultimedia byla opuštěna v AIX 5.1; tudíš je jedinou možností použití ovladačů AIX Open Sound System (OSS) od 4Front Technologies z http://www.opensound.com/aix.html. 4Front Technologies volně poskytuje OSS ovladače pro AIX 5.1 pro nekomerční použití; zatím však neexistují zvukové ovladače pro AIX 5.2 nebo 5.3. To znamená, že AIX 5.2 a 5.3 nejsou nyní schopny provozovat MPlayer se zvukem. Řešení běžných potíží: Pokud dostanete tuto chybovou hlášku z configure: $ ./configure ... Checking for iconv program ... no No working iconv program found, use --charset=US-ASCII to continue anyway. Messages in the GTK-2 interface will be broken then. To proto, že AIX používá nestandardní názvy znakových sad; proto konverze výstupu MPlayeru do jiné znakové sady není zatím podporována. Řešením je: $ ./configure --charset=noconv QNX Musíte si stáhnout a nainstalovat SDL pro QNX. Pak spusťte MPlayer s volbami a , mělo by to být rychlé. Výstup bude ještě pomalejší než na Linuxu, jelikož QNX má pouze X emulaci, která je velmi pomalá. Windows Ano, MPlayer běží na Windows pod Cygwin a MinGW. Nemá zatím oficiální GUI, ale verze pro příkazový řádek je plně funkční. Měli byste navštívit konferenci MPlayer-cygwin pro pomoc a poslední informace. Oficiální Windows binárky naleznete na download stránce. Instalátor a jednoduché GUI frontendy jsou dostupné z externích zdrojů. Odkazy na ně jsme umístili v sekci Windows na naší stránce s projekty. Pokud se chcete vyhnout použití příkazové řádky, můžete použít malý trik s umístěním zástupce na pracovní plochu, který bude obsahovat v sekci spuštění něco takového: c:\cesta\k\mplayer.exe %1 To nechá MPlayer přehrát jakýkoli film, který je přetažen na zástupce. Přidejte pro celoobrazovkový režim. Nejlepších výsledků dosáhnete použitím nativního DirectX video rozhraní (). Alternativami jsou OpenGL a SDL, ale výkon OpenGL se velmi různí na jednotlivých systémech a o SDL je známo, že na některých systémech drobí video nebo padá. Pokud je obraz rozsypán, zkuste vypnout hardwarovou akceleraci pomocí . Stáhněte si hlavičkové soubory DirectX 7 pro kompilaci výstupního rozhraní DirectX. Navíc budete muset mít nainstalovány DirectX 7 nebo vyšší, aby rozhraní pracovalo. VIDIX nyní pracuje pod Windows jako , ačkoli je stále experimentální a vyžaduje trochu manuálního nastavování. Stáhněte si dhahelper.sys nebo dhahelper.sys (s podporou MTRR) a zkopírujte jej do adresáře vidix/dhahelperwin ve svém stromě se zdrojovými kódy MPlayeru. Otevřete konzoli a přesuňte se do tohoto adresáře. Pak zadejte gcc -o dhasetup.exe dhasetup.c a spusťte dhasetup.exe install jako Administrator. Pak budete muset restartovat. Jakmile budete hotovi, zkopírujte .so soubory z vidix/drivers do adresáře mplayer/vidix relativního k vašemu mplayer.exe. Pro nejlepší výsledky by měl MPlayer používat barevný prostor, který podporuje vaše video karta v hardware. Naneštěstí některé Windows ovladače grafických karet špatně hlásí některé barevné prostory jako podporované v hardware. Chcete-li zjistit které, zkuste mplayer -benchmark -nosound -frames 100 -vf format=barevny_prostor film kde barevny_prostor může být barevný prostor vypsaný volbou . Pokud najdete barevný prostor, který vaše karta zvládá zjevně špatně, zakáže jeho použití. Přidejte si to do vašeho konfig souboru, aby zůstal zakázán natrvalo. Pro Windows máme k dispozici speciální balíčky kodeků na naší download stránce, abyste mohli přehrávat formáty, pro které zatím není nativní podpora. Umístěte kodeky někde do cesty (path), nebo přidejte (případně používate-li Cygwin) do configure. Máme několik zpráv, že Real DLL musí mít práva zápisu pro uživatele, který pouští MPlayer, ale pouze na některých systémech (NT4). Máte-li potíže, zkuste jim přidat právo zápisu. Můžete přehrávat VCD přehráváním .DAT nebo .MPG souborů, které Windows ukazuje na VCD. Pracuje to takto (upravte písmeno disku vaší CD-ROM): mplayer d:/mpegav/avseq01.dat DVD pracují také, upravte na písmeno DVD-ROM mechaniky: mplayer dvd://<titul> -dvd-device d: Cygwin/MinGW terminál je spíše pomalý. Přesměrování výstupu nebo použití volby podle hlášení zvýší výkon na některých systémech. Direct rendering () může rovněž pomoci. Pokud je přehrávání trhané, zkuste . Pokud vám některé z těchto voleb pomohly, měli byste si je zapsat do konfiguračního souboru. Runtime CPU detekce na Windows vypíná podporu SSE kvůli opakovaným a těžko vystopovatelným se SSE souvisejícím pádům. Pokud chcete mít podporu SSE pod Windows, budete muset kompilovat bez runtime CPU detekce. Máte-li Pentium 4 a dojde k pádu při použití RealPlayer kodeků, možná budete muset vypnout podporu hyperthreading. <application>Cygwin</application> Musíte používat Cygwin 1.5.0 nebo vyšší, abyste mohli kompilovat MPlayer. Hlavičkové soubory DirectX musí být rozbaleny do /usr/include/ nebo /usr/local/include/. Instrukce a soubory nutné pro běh SDL pod Cygwin lze nalézt na libsdl stránkách. <application>MinGW</application> Instalace takové verze MinGW, aby bylo lze kompilovat MPlayer byla obtížná, ale nyní pracuje bez dalších úprav. Jen nainstalujte MinGW 3.1.0 nebo vyšší a MSYS 1.0.9 nebo vyšší a zvolte v MSYS postinstall, že je MinGW nainstalováno. Rozbalte DirectX hlavičkové soubory do /mingw/include/. Podpora MOV compressed header vyžaduje zlib, kterou MinGW neobsahuje. Konfigurujte ji s a nainstalujte ji před kompilací MPlayeru. Kompletní instrukce pro překlad MPlayeru a potřebné knihovny naleznete v MPlayer MinGW HOWTO. Mac OS MPlayer nepracuje na Mac OS verzích pod 10, ale měl by být bez úprav kompilovatelný na Mac OS X 10.2 a vyšších. Preferovaná verze kompileru je Apple verze GCC 3.x a vyšších. Základní prostředí pro kompilaci můžete získat instalací Xcode od Apple. Máte-li Mac OS X 10.3.9 nebo pozdější a QuickTime 7 můžete použít výstupní video rozhraní . Naneštěstí toto základní prostředí neumožňuje využít všechny pěkné vlastnosti MPlayeru. Například, budete-li chtít mít zakompilovánu podporu OSD, budete muset mít na svém stroji nainstalovány knihovny fontconfig a freetype. Narozdíl od jiných Unixů, jako je většina variant Linuxu a BSD, OS X nemá balíčkovací systém distribuovaný se systémem. Můžete vybírat minimálně ze dvou: Finku a MacPorts. Oba poskytují zhruba stejné služby (např. mnoho dostupných balíčků, řešení závislostí, schopnost jednoduše přidávat/aktualizovat/odebírat balíčky, atp...). Fink nabízí jak předkompilované binární balíčky, tak možnost kompilovat všechno ze zdrojového kódu, zatímco MacPorts nabízí pouze možnost kompilace ze zdrojového kódu. Autor této příručky zvolil MacPorts z jednoduchého důvodu, že jeho základní nastavení je mnohem lehčí. Pozdější příklady budou založeny na MacPorts. Například pro kompilaci MPlayer s podporou OSD: sudo port install pkgconfig Takto nainstalujete pkg-config, což je systém pro správu knihovních příznaků compile/link. MPlayerův skript configure jej používá pro správnou detekci knihoven. Pak můžete nainstalovat fontconfig podobným způsobem: sudo port install fontconfig Následně můžete pokračovat spuštěním MPlayerova configure skriptu (ověřte proměnné prostředí PKG_CONFIG_PATH a PATH, aby configure našel knihovny instalované pomocí MacPorts): PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure MPlayer OS X GUI Můžete si stáhnout nativní GUI pro MPlayer spolu s předkompilovanými binárkami MPlayeru pro Mac OS X z MPlayerOSX projektu, ale upozorňujeme: tento projekt již není aktivní. Naštěstí byl MPlayerOSX převzat členem MPlayer týmu. Předváděcí verze lze stáhnout z naší download stránky a oficiální verze by měla přijít již brzy. Abyste mohli skompilovat MPlayerOSX ze zdrojového kódu sami, budete potřebovat mplayerosx, main a kopii main SVN modulu jménem main_noaltivec. mplayerosx je GUI nadstavba, main je MPlayer a main_noaltivec je MPlayer přeložený bez podpory AltiVec. Pro stažení SVN modulů použijte: svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main Abyste skompilovali MPlayerOSX budete muset setavit asi toto: Adresář_se_zdrojáky_MPlayeru | |--->main (Zdrojový kód MPlayeru ze Subversion) | |--->main_noaltivec (Zdrojový kód MPlayeru ze Subversion konfigurován s --disable-altivec) | \--->mplayerosx (Zdrojový kód MPlayer OS X ze Subversion) Nejdřív musíte skompilovat main a main_noaltivec. Pro začátek, pro dosažení maximální zpětné kompatibility, nastavte globální proměnnou: export MACOSX_DEPLOYMENT_TARGET=10.3 Pak konfigurujte: Pokud konfigurujete pro G4 nebo pozdější CPU s podporou AltiVec, proveďte následující: ./configure --disable-gl --disable-x11 Pokud konfigurujete pro stroj s G3 bez AltiVec, použijte: ./configure --disable-gl --disable-x11 --disable-altivec Možná budete muset editovat config.mak a změnit -mcpu a -mtune z 74XX na G3. Pokračujte s make pak jděte do adresáře mplayerosx a napište make dist To vytvoří komprimovaný .dmg archiv s binárkou připravenou k použití. Také lze použít projekt Xcode 2.1; starý projekt pro Xcode 1.x již nepracuje.