1<?xml version="1.0" encoding="utf-8"?>
2<!-- in sync with r23271 -->
3<!-- missing cosmetic commit 21537 -->
4<chapter id="ports" xreflabel="Ports">
5  <title>Portierungen</title>
6
7  <sect1 id="linux">
8    <title>Linux</title>
9    <para>
10      Die Hauptentwicklungsplattform ist Linux auf x86, obwohl
11      <application>MPlayer</application> auf vielen anderen Linux-Portierungen
12      funktioniert.
13      Binary Packages von <application>MPlayer</application> stehen auf mehreren Quellen
14      zur Verfügung. Jedoch wird <emphasis role="bold">keines dieser Packages unterstützt</emphasis>.
15      Melde den Autoren die Probleme, nicht uns.
16    </para>
17
18    <sect2 id="debian">
19      <title>Debian-Packaging</title>
20      <para>
21        Um ein Debian-Package zu bauen, führe folgenden Befehl im Source-Verzeichnis von
22        <application>MPlayer</application> aus:
23
24        <screen>fakeroot debian/rules binary</screen>
25
26        Wenn du eigene Optionen an configure übergeben willst, kannst du die Umgebungsvariable
27        <envar>DEB_BUILD_OPTIONS</envar> einrichten. Zum Beispiel, wenn du die
28        GUI- und OSD-Menü-Unterstützung willst, die du gerne nutzen würdest:
29
30        <screen>DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary</screen>
31
32        Du kannst auch einige Variablen an Makefile übergeben. Zum Beispiel, wenn du
33        mit gcc 3.4 compilieren willst, auch wenn er nicht der Standard-Compiler ist:
34
35        <screen>CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary</screen>
36
37        Um den Sourcetree aufzuräumen, führe folgenden Befehl aus:
38
39        <screen>fakeroot debian/rules clean</screen>
40
41        Als root kannst du dann das <filename>.deb</filename>-Package wie immer installieren:
42
43        <screen>dpkg -i ../mplayer_<replaceable>version</replaceable>.deb</screen>
44      </para>
45
46      <para>
47        Christian Marillat hatte eine Weile lang inoffizielle Debian-Packages von
48        <application>MPlayer</application>, <application>MEncoder</application> und
49        unseren Binärcodecpaketen erstellt, du kannst sie von
50        <ulink url="http://www.debian-multimedia.org/">seiner Homepage</ulink>
51        mit apt-get herunterladen.
52      </para>
53    </sect2>
54
55    <sect2 id="rpm">
56      <title>RPM-Packaging</title>
57      <para>
58        Dominik Mierzejewski entwarf und wartet die inoffiziellen RPM-Packages von
59        <application>MPlayer</application> für Red Hat und Fedora Core. Sie sind von
60        seinem <ulink url="http://rpm.greysector.net/mplayer/">Repository</ulink>
61        verfügbar.
62      </para>
63
64      <para>
65        Mandrake/Mandriva RPM-Packages stehen auf <ulink url="http://plf.zarb.org/">P.L.F.</ulink>
66        zur Verfügung.
67        SuSE verwendet eine verkrüppelte Version von <application>MPlayer</application>
68        in seiner Distribution. Diese haben sie aus ihren neuesten Releases entfernt. Du
69        bekommst funktionierende RPMs auf
70        <ulink url="http://packman.links2linux.de/?action=128">links2linux.de</ulink>.
71      </para>
72    </sect2>
73
74    <sect2 id="arm">
75      <title>ARM</title>
76      <para>
77        <application>MPlayer</application> läuft auf Linux PDAs mit ARM CPU, z.B. Sharp Zaurus,
78        Compaq Ipaq. Der einfachste Weg, sich <application>MPlayer</application> zu besorgen ist,
79        sich ihn von einer der
80        <ulink url="http://www.openzaurus.org">OpenZaurus</ulink> Package Feeds zu holen. Falls
81        du ihn dir selbst compilieren willst, solltest du im
82        <ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/mplayer?nav=index.html|src/.|src/packages">mplayer</ulink>-
83        und im
84        <ulink url="http://openzaurus.bkbits.net:8080/buildroot/src/packages/libavcodec?nav=index.html|src/.|src/packages">libavcodec</ulink>-Verzeichnis
85        der OpenZaurus Distribution Buildroot nachsehen. Diese haben stets die neueste
86        Makefile und Patches, die zum Erstellen eines SVN-<application>MPlayer</application>
87        verwendet werden.
88        Brauchst du ein GUI-Frontend, kannst du xmms-embedded nutzen.
89      </para>
90    </sect2>
91  </sect1>
92
93  <sect1 id="bsd">
94    <title>*BSD</title>
95    <para>
96      <application>MPlayer</application> läuft auf allen bekannten BSD-Derivaten.
97      Es stehen ports/pkgsrc/fink/etc-Versionen des <application>MPlayer</application>
98      bereit, die möglicherweise leichter anzuwenden sind als unsere Originalquellen.
99    </para>
100
101    <para>
102      Um <application>MPlayer</application> zu erstellen, brauchst du GNU make
103      (gmake - natives BSD make wird nicht funktionieren) und eine aktuelle Version
104      der binutils.
105    </para>
106
107    <para>
108      Beschwert sich <application>MPlayer</application>, er könne <filename>/dev/cdrom</filename>
109      oder <filename>/dev/dvd</filename> nicht finden, erstelle einen geeigneten symbolischen Link:
110      <screen>ln -s /dev/<replaceable>dein_cdrom_geraet</replaceable> /dev/cdrom</screen>
111    </para>
112
113    <para>
114      Um Win32-DLLs mit <application>MPlayer</application> zu nutzen, musst du
115      den Kernel mit "<envar>option USER_LDT</envar>" recompilieren
116      (es sei denn du lässt FreeBSD-CURRENT laufen, wobei dies die
117      Standard-Einstellung ist).
118    </para>
119
120
121    <sect2 id="freebsd">
122      <title>FreeBSD</title>
123      <para>
124        Besitzt deine CPU SSE, recompiliere deinen Kernel mit
125        "<envar>options CPU_ENABLE_SSE</envar>" (FreeBSD-STABLE oder
126        Kernel-Patches erforderlich).
127      </para>
128    </sect2>
129
130    <sect2 id="openbsd">
131      <title>OpenBSD</title>
132      <para>
133        Aufgrund von Einschränkungen in verschiedenen Versionen von GAS (der GNU Assembler,
134        Relocation vs MMX), wirst du in zwei Schritten compilieren müssen: Stell als
135        erstes sicher, dass der nicht-native zuvor in deinem <envar>$PATH</envar> liegt und
136        führe ein <command>gmake -k</command> aus. Sorge dann dafür, dass die native Version
137        benutzt wird, und führe <command>gmake</command> aus.
138      </para>
139      <para>
140        Ab OpenBSD 3.4 ist der oben beschriebene Hack nicht länger nötig.
141      </para>
142    </sect2>
143
144    <sect2 id="darwin">
145      <title>Darwin</title>
146      <para>
147        Siehe Abschnitt <link linkend="macos">Mac OS</link>.
148      </para>
149    </sect2>
150  </sect1>
151
152  <sect1 id="unix">
153    <title>Kommerzielles Unix</title>
154
155    <para>
156      <application>MPlayer</application> wurde auf einige kommerzielle
157      Unix-Varianten portiert. Seit die Entwicklungsumgebungen auf diesen Systemen
158      dahin tendieren, verschieden von denen freier Unixes zu sein, musst du möglicherweise
159      einige manuelle Anpassungen vornehmen, um das Build lauffähig zu bekommen.
160    </para>
161
162    <sect2 id="solaris">
163      <title>Solaris</title>
164      <para>
165        <application>MPlayer</application> sollte auf Solaris 2.6 oder neuer funktionieren.
166        Verwende den Audio-Treiber von SUN mit der Option <option>-ao sun</option> für
167        den Sound.
168      </para>
169
170      <para>
171        Auf <emphasis role="bold">UltraSPARCs</emphasis>, profitiert
172        <application>MPlayer</application> von deren
173        <emphasis role="bold">VIS</emphasis>-Erweiterungen (äquivalent zu MMX), zur Zeit
174        nur in
175        <systemitem class="library">libmpeg2</systemitem>,
176        <systemitem class="library">libvo</systemitem>
177        und <systemitem class="library">libavcodec</systemitem>, jedoch nicht in
178        <systemitem class="library">mp3lib</systemitem>. Du kannst dir eine VOB-Datei
179        auf einer 400MHz CPU ansehen. Dazu muss
180        <ulink url="http://www.sun.com/sparc/vis/mediaLib.html"><systemitem class="library">mLib</systemitem></ulink>
181        installiert sein.
182      </para>
183
184      <para><emphasis role="bold">Vorbehalt:</emphasis></para>
185      <itemizedlist>
186        <listitem><para><emphasis role="bold">mediaLib</emphasis> wird in
187            <application>MPlayer</application> momentan aufgrund Fehlerhaftigkeit
188            per Voreinstellung <emphasis role="bold">deaktiviert</emphasis>. SPARC-Benutzer,
189            die MPlayer mit mediaLib-Unterstützung bauen, haben große grüne Farbstiche
190            gemeldet bei Video, das mit libavcodec en- und decodiert wurde.
191            Du kannst es, wenn du möchtest, aktivieren mit:
192            <screen> $ ./configure --enable-mlib </screen>
193            Du tust dies auf eigenes Risiko. x86-Benutzer sollten mediaLib
194            <emphasis role="bold">niemals</emphasis> benutzen, da dies zu sehr schlechter
195            Performance von MPlayer führt.
196          </para></listitem>
197      </itemizedlist>
198
199      <para>
200        Um das Package zu erstellen, brauchst du GNU <application>make</application>
201        (<filename>gmake</filename>, <filename>/opt/sfw/gmake</filename>), das native
202        Solaris make wird nicht funktionieren. Ein typischer Fehler, den du bekommst, wenn
203        du mit einem make von Solaris arbeitest statt mit einem GNU make:
204<screen>% /usr/ccs/bin/make
205make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen</screen>
206      </para>
207
208      <para>
209        Auf Solaris SPARC, brauchst du den GNU C/C++ Compiler; es spielt keine Rolle, ob
210        der GNU C/C++ Compiler mit oder ohne dem GNU Assembler compiliert ist.
211      </para>
212
213      <para>
214        Auf Solaris x86 brauchst du den GNU Assembler und den GNU C/C++ Compiler
215        so konfiguriert, dass er den GNU Assembler verwendet! Der
216        <application>MPlayer</application>-Code auf der x86-Plattform macht starken
217        Gebrauch von MMX-, SSE- und 3DNOW!-Instruktionen, die nicht compiliert werden
218        können, wenn man den Assembler von Sun <filename>/usr/ccs/bin/as</filename>
219        verwendet.
220      </para>
221
222      <para>
223        Das <filename>configure</filename>-Script versucht herauszufinden, welches
224        Assembler-Programm von deinem "gcc"-Befehl genutzt wird (falls die
225        automatische Erkennung fehlschlägt, nimm die Option
226        <option>--as=<replaceable>/pfad/zum/installierten/gnu-as</replaceable></option>,
227        um dem <filename>configure</filename>-Script zu zeigen, wo es GNU "as" auf
228        deinem System finden kann).
229      </para>
230
231      <para>Lösung für gebräuchliche Probleme:</para>
232      <itemizedlist>
233        <listitem><para>
234            Fehlermeldung von <filename>configure</filename> auf einem Solaris x86 System,
235            wenn man GCC ohne GNU Assembler anwendet:
236<screen>% configure
237...
238Checking assembler (/usr/ccs/bin/as) ... , failed
239Please upgrade(downgrade) binutils to 2.10.1...</screen>
240            (Lösung: Installiere und verwende einen gcc, konfiguriert mit
241            <option>--with-as=gas</option>)
242          </para>
243
244          <para>
245            Ein typischer Fehler, den du bekommst, wenn du mit einem GNU C Compiler arbeitest, der
246            GNU "as" nicht verwendet:
247<screen>% gmake
248...
249gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
250-fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
251Assembler: mplayer.c
252"(stdin)", line 3567 : Illegal mnemonic
253"(stdin)", line 3567 : Syntax error
254... more "Illegal mnemonic" and "Syntax error" errors ...</screen>
255          </para>
256        </listitem>
257
258        <listitem>
259          <para>
260            <application>MPlayer</application> kann eine Schutzverletzung auslösen, wenn
261            mit win32codecs decodiert und encodiert wird:
262<screen>...
263Trying to force audio codec driver family acm...
264Opening audio decoder: [acm] Win32/ACM decoders
265sysi86(SI86DSCR): Invalid argument
266Couldn't install fs segment, expect segfault
267
268
269MPlayer interrupted by signal 11 in module: init_audio_codec
270...</screen>
271            Das liegt an einer Änderung an sysi86() in Solaris 10 und prä-Solaris Nevada b31-Releases.
272            Bei Solaris Nevada b32 wurde dieser Fehler behoben; trotzdem, Sun muss diese Lösung noch immer
273            nach Solaris 10 rückportieren. Das MPlayer-Projekt hat Sun auf das Problem hingewiesen, und ein Patch
274            für Solaris 10 ist gerade in Vorbereitung. Weitere Informationen über diesen Fehler können hier gefunden werden:
275            <ulink
276                  url="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6308413"/>.
277          </para>
278        </listitem>
279
280        <listitem>
281          <para>
282            Aufgrund von Bugs in Solaris 8 kann es dazu kommen, dass du keine DVD-Disks
283            größer 4 GB abspielen kannst:
284          </para>
285
286          <itemizedlist>
287            <listitem>
288              <para>
289                Der sd(7D)-Treiber auf Solaris 8 x86 hat einen Bug, wenn er auf einen Diskblock >4GB
290                auf einem Gerät zugreift, das eine logische blocksize != DEV_BSIZE verwendet (z.B.
291                CD-ROM- und DVD-Medien).
292                Wegen eines 32Bit int Overflows wird auf eine Disk-Adresse modulo 4GB zugegriffen
293                (<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22516"/>).
294                Dieses Problem existiert nicht in der SPARC-Version von Solaris 8.
295              </para>
296            </listitem>
297
298            <listitem>
299              <para>
300                Ein ähnlicher Bug is präsent im Dateisystem-Code (AKA ISO9660) von hsfs(7FS),
301                hsfs unterstützt keine Partitionen/Disks größer als 4GB, auf alle Daten wird
302                modulo 4GB zugegriffen
303                (<ulink url="http://groups.yahoo.com/group/solarisonintel/message/22592"/>).
304                Dieses hsfs-Problem kann  durch die Installation von Patch 109764-04 (sparc) / 109765-04 (x86)
305                gefixt werden.
306              </para>
307            </listitem>
308          </itemizedlist>
309        </listitem>
310      </itemizedlist>
311    </sect2>
312
313
314    <sect2 id="hp-ux">
315      <title>HP-UX</title>
316      <para>
317        Joe Page unterhält ein detailliertes HP-UX
318        <application>MPlayer</application>-<ulink url="http://users.rcn.com/joepage/mplayer_on_hpux11.htm">HOWTO</ulink>
319        von Martin Gansser auf seiner Homepage. Mit diesen Instruktionen sollte das bauen
320        hervorragend funktionieren. Die folgende Information wurde aus diesem HOWTO übernommen.
321      </para>
322
323      <para>
324        Du benötigst GCC 3.4.0 oder neuer, GNU make 3.80 oder neuer und SDL 1.2.7 oder neuer.
325        HP cc wird kein lauffähiges Programm produzieren, frühere GCC-Versionen sind fehlerhaft.
326        Für OpenGL-Funktionalität musst du Mesa installieren, und die gl- und
327        gl2-Video-Ausgabetreiber sollten funktionieren, wenngleich die Geschwindigkeit sehr
328        mies sein kann, abhängig von der CPU-Geschwindigkeit. Ein guter Ersatz für das eher armselige,
329        native HP-UX-Soundsystem ist GNU esound.
330      </para>
331
332      <para>
333        Erzeuge das DVD-Gerät,
334        scanne den SCSI-Bus mit:
335      </para>
336
337<screen># ioscan -fn
338
339Class          I            H/W   Path          Driver    S/W State    H/W Type        Description
340...
341ext_bus 1    8/16/5      c720  CLAIMED INTERFACE  Built-in SCSI
342target  3    8/16/5.2    tgt   CLAIMED DEVICE
343disk    4    8/16/5.<emphasis role="bold">2</emphasis>.<emphasis role="bold">0</emphasis>  sdisk CLAIMED DEVICE     <emphasis role="bold">PIONEER DVD-ROM DVD-305</emphasis>
344/dev/dsk/c1t2d0 <emphasis role="bold">/dev/rdsk/c1t2d0</emphasis>
345target  4    8/16/5.7    tgt   CLAIMED DEVICE
346ctl     <emphasis role="bold">1</emphasis>    8/16/5.7.0  sctl  CLAIMED DEVICE     Initiator
347/dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
348...</screen>
349
350      <para>
351        Die Bildschirmausgabe zeigt ein Pioneer DVD-ROM an SCSI-Adresse 2.
352        Die Karteninstanz für den Hardwarepfad 8/16 ist 1.
353      </para>
354
355      <para>
356        Erstelle einen Link von deinem Originalgerät zum DVD-Gerät.
357      </para>
358
359      <screen># ln -s /dev/rdsk/c<replaceable>&lt;SCSI-Bus-Instanz&gt;</replaceable>t<replaceable>&lt;SCSI Ziel-ID&gt;</replaceable>d<replaceable>&lt;LUN&gt;</replaceable> /dev/<replaceable>&lt;geraet&gt;</replaceable></screen>
360
361      <para>
362        Beispiel:
363      </para>
364
365      <screen># ln -s /dev/rdsk/c1t2d0 /dev/dvd</screen>
366
367      <para>
368        Unten stehen lösungen für einige verbreitete Probleme:
369      </para>
370
371      <itemizedlist>
372        <listitem>
373          <para>
374            Absturz beim Start mit folgender Fehlermeldung:
375            <screen>/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl</screen>
376          </para>
377
378          <para>
379            Dies bedeutet, dass die Funktion <systemitem>.finite().</systemitem> nicht
380            in der Standard-Bibliothek HP-UX math zur Verfügung steht.
381            Statt dessen gibt es <systemitem>.isfinite().</systemitem>.
382            Lösung: Benutze die neueste Mesa-Depotdatei.
383          </para>
384        </listitem>
385
386        <listitem>
387          <para>
388            Absturz beim Playback mit folgender Fehlermeldung:
389            <screen>/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0</screen>
390          </para>
391
392          <para>
393            Lösung: Benutze die Option extralibdir von configure
394            <option>--extra-ldflags="/usr/lib -lrt"</option>
395          </para>
396        </listitem>
397
398        <listitem>
399          <para>
400            MPlayer produziert eine Schutzverletzung (segfault) mit einer Meldung wie dieser:
401<screen>Pid 10166 received a SIGSEGV for stack growth failure.
402Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
403Segmentation fault</screen>
404          </para>
405
406          <para>
407            Lösung:
408            Der HP-UX-Kernel hat eine Standard-Stackgröße von 8MB(?) pro Prozess. (11.0- und
409            neuere 10.20-Patches lassen dich <systemitem>maxssiz</systemitem> bis auf
410            350MB für 32bit-Programme erhöhen). Du musst <systemitem>maxssiz</systemitem>
411            erweitern und den Kernel recompilieren (und neu starten). Dazu kannst du SAM
412            verwenden. (Überprüfe während des Neustarts den
413            <systemitem>maxdsiz</systemitem>-Parameter für die maximale Anzahl Daten,
414            die ein Programm nutzen darf. Er hängt von deiner Anwendung ab, ob der
415            Standard von 64MB ausreicht oder nicht.)
416          </para>
417        </listitem>
418      </itemizedlist>
419
420    </sect2>
421
422    <sect2 id="aix">
423      <title>AIX</title>
424      <para>
425        <application>MPlayer</application> wird erfolgreich auf AIX 5.1,
426        5.2 und 5.3 erzeugt, verwendet man GCC 3.3 oder höher. Das Erzeugen von
427        <application>MPlayer</application> auf AIX 4.3.3 und darunter wurde nicht
428        getestet. Es wird dringend empfohlen, <application>MPlayer</application>
429        mit GCC 3.4 oder höher zu erzeugen, oder es wird, falls du auf POWER5
430        arbeitest, GCC 4.0 benötigt.
431      </para>
432
433      <para>
434        Stelle sicher, dass du GNU make
435        (<filename>/opt/freeware/bin/gmake</filename>) zum bauen von
436        <application>MPlayer</application> nutzt, da du auf Probleme stossen wirst,
437        wenn du <filename>/usr/ccs/bin/make</filename> anwendest.
438      </para>
439
440      <para>
441        Die CPU-Erkennung ist noch in Arbeit.
442        Die folgenden Architekturen wurden getestet:
443      </para>
444
445      <itemizedlist>
446        <listitem><para>604e</para></listitem>
447        <listitem><para>POWER3</para></listitem>
448        <listitem><para>POWER4</para></listitem>
449      </itemizedlist>
450
451      <para>
452        Folgende Architekturen wurden nicht getestet, sollten jedoch trotzdem funktionieren:
453      </para>
454      <itemizedlist>
455        <listitem><para>POWER</para></listitem>
456        <listitem><para>POWER2</para></listitem>
457        <listitem><para>POWER5</para></listitem>
458      </itemizedlist>
459
460      <para>
461        Sound über die Ultimedia Services wird nicht unterstützt, da Ultimedia in
462        AIX 5.1 weggelassen wurde; deshalb ist die einzige Option, die Treiber des
463        AIX Open Sound System (OSS) von 4Front Technologies auf
464        <ulink url="http://www.opensound.com/aix.html"/> zu verwenden.
465        4Front Technologies stellt die OSS-Treiber für AIX 5.1 für den nicht-kommerziellen Gebrauch
466        frei zur Verfügung; wie auch immer, momentan gibt es keine
467        Soundausgabetreiber für AIX 5.2 oder 5.3. Dies bedeutet, dass
468        <emphasis role="bold">AIX 5.2 und 5.3 momentan keine MPlayer-Tonausgabe beherrschen.</emphasis>
469      </para>
470
471      <para>Lösung für gebräuchliche Probleme:</para>
472
473      <itemizedlist>
474        <listitem>
475          <para>
476            Wenn du folgende Fehlermeldung von <filename>configure</filename> erhältst:
477<screen>$ ./configure
478  ...
479  Checking for iconv program ... no
480  No working iconv program found, use
481  --charset=US-ASCII to continue anyway.
482  Messages in the GTK-2 interface will be broken then.</screen>
483
484            Das liegt daran, dass AIX Namen für Zeichensätze benutzt, die nicht dem Standard entsprechen;
485            daher wird die Konvertierung von MPlayer-Ausgaben zu anderen Zeichensätzen momentan nicht
486            unterstützt. Die Lösung besteht darin, folgendes zu tun:
487            <screen>$ ./configure --charset=noconv</screen>
488          </para>
489        </listitem>
490      </itemizedlist>
491
492    </sect2>
493
494    <sect2 id="qnx">
495      <title>QNX</title>
496      <para>
497        Du musst SDL für QNX herunterladen und installieren. Dann starte
498        <application>MPlayer</application> mit den Optionen
499        <option>-vo sdl:driver=photon</option> und <option>-ao sdl:nto</option>,
500        es sollte schnell laufen.
501      </para>
502
503      <para>
504        Der Output mit <option>-vo x11</option> wird etwas langsamer sein als unter Linux,
505        da QNX nur X-<emphasis>Emulation</emphasis> besitzt, was sehr langsam ist.
506      </para>
507    </sect2>
508  </sect1>
509
510
511  <sect1 id="windows">
512    <title>Windows</title>
513
514    <para>
515      Ja, <application>MPlayer</application> läuft auf Windows unter
516      <ulink url="http://www.cygwin.com/"><application>Cygwin</application></ulink> und
517      <ulink url="http://www.mingw.org/"><application>MinGW</application></ulink>.
518      Es besitzt noch kein offizielles GUI, aber die Befehlszeilen-Version
519      ist voll funktionstüchtig. Du solltest die
520      <ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-cygwin/">MPlayer-cygwin</ulink>
521      Mailing-Liste für Hilfe und für neueste Informationen hernehmen.
522      Offizielle Windows-Binaries können auf der
523      <ulink url="http://www.mplayerhq.hu/design7/dload.html">Download-Seite</ulink>
524      gefunden werden.
525      Installationspakete und einfache GUI-Frontends stehen auf externen Quellen bereit,
526      wir haben sie in der Windows-Sektion unserer
527      <ulink url="http://www.mplayerhq.hu/design7/projects.html#windows">Projektseite</ulink>
528      zusammengestellt.
529    </para>
530
531    <para>
532      Wenn du die Verwendung der Befehlszeile vermeiden willst, hilft der
533      simple Trick, eine Verknüpfung auf deinem Desktop zu erstellen, der einen
534      ähnlichen Ausführungsabschnitt wie folgenden enthält:
535      <screen><replaceable>c:\pfad\zur\</replaceable>mplayer.exe %1</screen>
536      Dies lässt <application>MPlayer</application> jeden Film abspielen, der
537      über der Verknüpfung fallen gelassen wird.
538      Füge <option>-fs</option> für den Vollbildmodus hinzu.
539    </para>
540
541    <para>
542      Die besten Ergebnisse werden mit dem nativen DirectX-Video-Ausgabetreiber
543      (<option>-vo directx</option>) erzielt. Alternativen sind OpenGL und SDL, jedoch variiert die
544      OpenGL-Performance stark von System zu System, und SDL ist dafür bekannt,
545      Videos kaputt zu machen oder auf manchen Systemen abzurauchen. Wird das Bild zerstört,
546      versuche, die Hardwarebeschleunigung mit
547      <option>-vo directx:noaccel</option> abzuschalten. Lade dir die
548      <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/contrib/dx7headers.tgz">DirectX7-Headerdateien</ulink>
549      herunter, um den DirectX-Video-Ausgabetreiber zu compilieren. Desweiteren musst du
550      DirectX 7 oder höher installiert haben, damit der DirectX-Video-Ausgabetreiber
551      funktioniert.
552    </para>
553
554    <para>
555      <link linkend="vidix">VIDIX</link> läuft jetzt unter Windows als
556      <option>-vo winvidix</option>, obwohl es nach wie vor experimentell ist
557      und ein wenig manuelles Setup benötigt. Lade dir die
558      <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/dhahelperwin/dhahelper.sys">dhahelper.sys</ulink> oder
559      <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/dhahelperwin/withmtrr/dhahelper.sys">dhahelper.sys (mit MTRR-Unterstützung)</ulink>
560      herunter und kopiere sie ins Verzeichnis
561      <filename class="directory">vidix/dhahelperwin</filename> deines
562      <application>MPlayer</application>-Source-Baums.
563      Öffne die Console und wechsle in dieses Verzeichnis. Gib dann
564
565      <screen>gcc -o dhasetup.exe dhasetup.c</screen>
566
567      ein und führe
568      <screen>dhasetup.exe install</screen>
569
570      als Administrator aus. Danach wirst du neu starten müssen. Bist du damit fertig,
571      kopiere die <systemitem class="library">.so</systemitem>-Dateien von
572      <filename class="directory">vidix/drivers</filename> ins Verzeichnis
573      <filename class="directory">mplayer/vidix</filename>
574      relativ zu deiner <filename>mplayer.exe</filename>.
575    </para>
576
577    <para>
578      Für die besten Resultate sollte <application>MPlayer</application> einen
579      Farbraum anwenden, den deine Grafikkarte hardwareseitig unterstützt.
580      Leider melden viele Windows-Grafikkartetreiber fälschlich einige Farbräume
581      als von der Hardware unterstützt. Um herauszufinden welche das sind, versuche
582
583      <screen>mplayer -benchmark -nosound -frames 100 -vf format=<replaceable>Farbraum</replaceable> <replaceable>vilm</replaceable></screen>
584
585      wobei <replaceable>Farbraum</replaceable> jeder von der Option
586      <option>-vf format=fmt=help</option> ausgegebene Farbraum sein kann.
587      Findest du den von deiner Karte verarbeiteten Farbraum besonders schlecht,
588      wird <option>-vf noformat=<replaceable>farbraum</replaceable></option>
589      sie daran hindern, diesen anzuwenden. Füge dies in deine
590      config-Datei ein, um die Verwendung permanent zu unterbinden.
591    </para>
592
593    <para>
594      Es stehen spezielle Codec-Packs für Windows auf unserer
595      <ulink url="http://www.mplayerhq.hu/design7/dload.html">Codec-Seite</ulink>
596      zu Verfügung, die das Abspielen von Formaten zu ermöglichen, für die es noch
597      keinen nativen Support gibt.
598      Leg die Codecs irgendwo in deinem Pfad ab oder übergib
599      <option>--codecsdir=<replaceable>c:/pfad/zu/deinen/codecs</replaceable></option>
600      (alternativ nur auf <application>Cygwin</application>
601      <option>--codecsdir=<replaceable>/pfad/zu/deinen/codecs</replaceable></option>)
602      an <filename>configure</filename>.
603      Wir bekamen einige Berichte, dass Real-DLLs beschreibbar sein müssen, um <application>MPlayer</application>
604      starten zu können, aber nur auf manchen Systemen (NT4).
605      Versuche, sie beschreibbar zu machen, falls du Probleme hast.
606    </para>
607
608    <para>
609      Du kannst VCDs über die <filename>.DAT</filename>- oder
610      <filename>.MPG</filename>-Dateien, die Windows auf VCDs anzeigt, abspielen.
611      Das funktioniert wie folgt (an den Laufwerksbuchstaben deines CD-ROMs anpassen:
612    </para>
613
614    <screen>mplayer <replaceable>d:/mpegav/avseq01.dat</replaceable></screen>
615
616    <para>
617      DVDs gehen ebenfalls, passe <option>-dvd-device</option> an den
618      Laufwerksbuchstaben deines DVD-ROMs an:
619    </para>
620
621    <screen>mplayer dvd://<replaceable>&lt;Titel&gt;</replaceable> -dvd-device <replaceable>d</replaceable>:</screen>
622
623    <para>
624      Die <application>Cygwin</application>-/<application>MinGW</application>-Konsole
625      ist sehr langsam. Die Umleitung der Ausgabe oder das Anwenden der Option
626      <option>-quiet</option> soll laut Berichten die Performance auf einigen Systemen
627      verbessern. Direktes Rendern (<option>-dr</option>) kann auch helfen.
628      Ist das Playback ruckelig, versuche <option>-autosync 100</option>.
629      Helfen dir einige dieser Optionen, kannst du sie ja in deine config-Datei
630      eintragen.
631    </para>
632
633    <note>
634      <para>
635        Auf Windows deaktiviert die CPU-Erkennung zur Laufzeit den SSE-Support
636        wegen periodisch wiederkehrender und schwer zu ortender, SSE-bezogener
637        Abstürze. Wünschst du SSE-Support unter Windows, musst du ohne
638        CPU-Erkennung zur Laufzeit compilieren.
639      </para>
640
641      <para>
642        Hast du einen Pentium 4 und erlebst einen Absturz bei Verwendung von
643        RealPlayer-Codecs, musst du den Support für Hyperthreading deaktivieren.
644      </para>
645    </note>
646
647
648
649    <sect2 id="cygwin">
650      <title><application>Cygwin</application></title>
651
652      <para>
653        Du musst <application>Cygwin</application> 1.5.0 oder später laufen
654        lassen, um <application>MPlayer</application> zu compilieren.
655      </para>
656
657      <para>
658        DirectX-Headerdateien werden gewöhnlich nach
659        <filename class="directory">/usr/include/</filename> oder
660        <filename class="directory">/usr/local/include/</filename>
661        extrahiert.
662      </para>
663
664      <para>
665        Instruktionen und Dateien, um SDL unter
666        <application>Cygwin</application> laufen zu lassen, können auf der
667        <ulink url="http://www.libsdl.org/extras/win32/cygwin/">libsdl-Seite</ulink>
668        gefunden werden.
669      </para>
670
671    </sect2>
672
673
674    <sect2 id="mingw">
675      <title><application>MinGW</application></title>
676
677      <para>
678        Das Installieren einer Version von <application>MinGW</application>, das
679        <application>MPlayer</application> compilieren könnte zwar für gewöhnlich ziemlich
680        trickreich sein, funktioniert jetzt aber hervorragend.
681        Installiere einfach <application>MinGW</application> 3.1.0 oder neuer und
682        MSYS 1.0.9 oder neuer und erzähle der nachträglichen Installation von MSYS,
683        dass <application>MinGW</application> installiert ist.
684      </para>
685
686      <para>
687        Extrahiere die DirectX-Headerdateien nach
688        <filename class="directory">/mingw/include/</filename>.
689      </para>
690
691      <para>
692        Die Unterstützung für MOV-komprimierte Header erfordert
693        <ulink url="http://www.gzip.org/zlib/">zlib</ulink>, was
694        <application>MinGW</application> standardmäßig nicht bereithält.
695        Konfiguriere es mit <option>--prefix=/mingw</option> und installiere
696        es vor dem Compilieren des <application>MPlayer</application>.
697      </para>
698
699      <para>
700        Komplette Anweisungen zum Erzeugen des <application>MPlayer</application>
701        und der notwendigen Bibliotheken findest du in den
702        <ulink url="http://www.mplayerhq.hu/MPlayer/releases/win32/contrib/MPlayer-MinGW-Howto.txt">MPlayer MinGW HOWTO</ulink>s.
703      </para>
704
705    </sect2>
706  </sect1>
707
708
709  <sect1 id="macos">
710    <title>Mac OS</title>
711
712    <para>
713      <application>MPlayer</application> läuft nicht auf Mac OS Versionen vor
714      10, sollte jedoch hervorragend auf Mac OS X 10.2 und darüber compilieren.
715      Der vorgezogene Compiler ist die Apple-Version von
716      GCC 3.x oder höher.
717      Du kannst die grundlegende Compilierumgebung schaffen, indem du
718      <ulink url="http://developer.apple.com/tools/download/">Xcode</ulink>
719      von Apple installierst.
720      Besitzt du Mac OS X 10.3.9 oder später und QuickTime 7
721      kannst du den Videoausgabetreiber <option>corevideo</option> verwenden.
722    </para>
723
724    <para>
725      Leider ermöglicht es dir diese grundlegende Umgebung nicht, von allen netten Features
726      von <application>MPlayer</application> Gebrauch zu machen.
727      Beispielsweise müssen die Bibliotheken <systemitem class="library">fontconfig</systemitem>
728      und <systemitem class="library">freetype</systemitem> auf deinem System installiert sein,
729      damit das OSD eincompiliert werden kann.
730      Im Gegensatz zu anderen Unices wie den meisten Linux- und BSD-Varianten besitzt
731      OS X kein Paketsystem, das im System enthalten ist.
732    </para>
733
734    <para>
735      Es stehen mindestens zwei zur Wahl:
736      <ulink url="http://fink.sourceforge.net/">Fink</ulink> und
737      <ulink url="http://www.macports.org/">MacPorts</ulink>.
738      Beide bieten in etwa denselben Funktionsumfang (z.B. eine Menge Pakete, von denen
739      gewählt werden kann, Auflösung von Abhängigkeiten, die Möglichkeit, einfach
740      Pakete hinzuzufügen/zu aktualisieren/zu entfernen, etc...).
741      Fink bietet sowohl vorcompilierte Binärpakete als auch das Erstellen aus den
742      Quelldateien, wohingegen MacPorts nur das Erstellen aus den Quellen anbietet.
743      Der Autor dieser Anleitung hat MacPorts gewählt aus dem Grund, dass das
744      grundlegende Setup etwas leichtgewichtiger war.
745      Folgende Beispiele werden sich auf MacPorts beziehen.
746    </para>
747
748    <para>
749      Um zum Beispiel <application>MPlayer</application> mit OSD-Unterstützung zu compilieren:
750      <screen>sudo port install pkgconfig</screen>
751      Dies wird <application>pkg-config</application> installieren, was ein System für die
752      Handhabung von Compiler-/Link-Flags für Bibliotheken ist.
753      Das <systemitem>configure</systemitem>-Skript von <application>MPlayer</application>
754      benutzt dies, um Bibliotheken angemessen zu erkennen.
755      Dann kannst du <application>fontconfig</application> auf ähnliche Weise installieren:
756      <screen>sudo port install fontconfig</screen>
757      Dann kannst du fortfahren mit der Ausführung von <application>MPlayer</application>s
758      <systemitem>configure</systemitem>-Skript (beachte die Umgebungsvariablen
759      <systemitem>PKG_CONFIG_PATH</systemitem> und <systemitem>PATH</systemitem>,
760      so dass <systemitem>configure</systemitem> die mit MacPorts installierten
761      Bibliotheken findet):
762      <screen>PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/ PATH=$PATH:/opt/local/bin/ ./configure</screen>
763    </para>
764
765    <sect2 id="osx_gui">
766      <title>MPlayer OS X GUI</title>
767      <para>
768        Du bekommst ein natives GUI für <application>MPlayer</application> zusammen
769        mit für Mac OS X vorcompilierten <application>MPlayer</application>-Binaries
770        vom <ulink url="http://mplayerosx.sf.net/">MPlayerOSX</ulink>-Projekt, sei aber
771        gewarnt: Dieses Projekt ist nicht mehr aktiv.
772      </para>
773
774      <para>
775        Zum Glück wurde <application>MPlayerOSX</application> von einem Mitglied des
776        <application>MPlayer</application>-Teams übernommen.
777        Preview-Releases findet man auf unserer
778        <ulink url="http://mplayerhq.hu/dload.html">Download-Seite</ulink>,
779        und ein offizielles Release sollte bald herauskommen.
780      </para>
781
782      <para>
783        Um <application>MPlayerOSX</application> selbst von den Quellen
784        zu bauen, brauchst du <systemitem>mplayerosx</systemitem>, das
785        <systemitem>main</systemitem> und eine Kopie des
786        <systemitem>main</systemitem> SVN-Moduls genannt
787        <systemitem>main_noaltivec</systemitem>.
788        <systemitem>mplayerosx</systemitem> ist das GUI-Frontend,
789        <systemitem>main</systemitem> ist MPlayer und
790        <systemitem>main_noaltivec</systemitem> ist MPlayer ohne AltiVec-Unterstützung.
791      </para>
792
793      <para>
794        Um ein Checkout der SVN-Module durchzuführen, benutze:
795
796<screen>svn checkout svn://svn.mplayerhq.hu/mplayerosx/trunk/ mplayerosx
797svn checkout svn://svn.mplayerhq.hu/mplayer/trunk/ main</screen>
798      </para>
799
800      <para>
801        Um <application>MPlayerOSX</application> zu bilden, musst du
802        so etwas ähnliches einrichten:
803
804<screen>MPlayer_source_verzeichnis
805|
806|--->main           (MPlayer SVN-Quelldateien)
807|
808|--->main_noaltivec (MPlayer SVN-Quelldateien konfiguriert mit --disable-altivec)
809|
810|--->mplayerosx     (MPlayer OS X SVN-Quelldateien)</screen>
811
812        Du musst zuerst main und main_noaltivec erzeugen.
813      </para>
814
815      <para>
816        Setze zu Beginn für maximale Rückwärtskompatibilität eine Umgebungsvariable:
817        <screen>export MACOSX_DEPLOYMENT_TARGET=10.3</screen>
818      </para>
819
820      <para>
821        Dann konfiguriere:
822      </para>
823
824      <para>
825        Wenn du für eine G4 oder eine neuere CPU mit AltiVec-Support konfigurierst,
826        mache folgendes:
827
828        <screen>./configure --disable-gl --disable-x11</screen>
829
830        Wenn du für einen G3-getriebenen Rechner mit AltiVec konfigurierst,
831        mache dies:
832
833        <screen>./configure --disable-gl --disable-x11 --disable-altivec</screen>
834
835        Du musst <filename>config.mak</filename> editieren und
836        <systemitem>-mcpu</systemitem> und <systemitem>-mtune</systemitem>
837        von <systemitem>74XX</systemitem> auf <systemitem>G3</systemitem> ändern.
838      </para>
839
840      <para>
841        Fahre fort mit
842        <screen>make</screen>
843        und gehe dann ins Verzeichnis mplayerosx, gib dort folgendes ein:
844
845        <screen>make dist</screen>
846
847        Dies wird ein komprimiertes <systemitem>.dmg</systemitem>-Archiv
848        mit der gebrauchsfertigen Binary erzeugen.
849      </para>
850
851      <para>
852        Du kannst auch das <application>Xcode</application> 2.1 Projekt verwenden;
853        das alte Projekt für <application>Xcode</application> 1.x läuft
854        nicht mehr.
855      </para>
856    </sect2>
857  </sect1>
858
859</chapter>
860