diff options
Diffstat (limited to 'DOCS/xml/de/video.xml')
-rw-r--r-- | DOCS/xml/de/video.xml | 2788 |
1 files changed, 2788 insertions, 0 deletions
diff --git a/DOCS/xml/de/video.xml b/DOCS/xml/de/video.xml new file mode 100644 index 0000000000..cf6c5a0e37 --- /dev/null +++ b/DOCS/xml/de/video.xml @@ -0,0 +1,2788 @@ +<?xml version="1.0" encoding="iso-8859-1"?> +<!-- in sync with rev 1.85 $ --> +<chapter id="video"> +<title>Video-Ausgabe-Geräte</title> + +<sect1 id="mtrr"> +<title>MTRR einrichten</title> + +<para> + Du solltest UNBEDINGT sicherstellen, dass die MTRR-Register richtig belegt + sind, denn sie können eine großen Geschwindigkeits-Schub + bringen. +</para> + +<para> + Gebe den Begehl <command>cat /proc/mtrr</command> ein: +<screen> +<prompt>--($:~)--</prompt> cat /proc/mtrr +reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9 +reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1<!-- +--></screen> +</para> + +<para> + Diese Anzeige ist richtig. Sie zeigt meine Matrox G400 mit 16MB Speicher. + Ich habe die Einstellung von XFree 4.x.x, was die MTRR-Register automatisch + einstellt. +</para> + +<para> + Wenn nichts funktioniert, musst du sie manuell setzen. Als erstes musst du + die Basisadresse finden. Dazu gibt es drei Möglichkeiten: + +<orderedlist> +<listitem><para> + durch die X11 Start-Meldungen, zum Beispiel: + <screen> +(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 +(--) SVGA: Linear framebuffer at 0xD8000000<!-- +--></screen> + </para></listitem> +<listitem><para> + für (verwende<filename>/proc/pci</filename> (verwende den Befehl +<command>lspci -v</command>): + <screen> +01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 +Memory at d8000000 (32-bit, prefetchable) + </screen> + </para></listitem> +<listitem><para> + von mga_vid kernel Kerneltreiber-Meldungen (verwende <command>dmesg</command>): + <screen>mga_mem_base = d8000000</screen> + </para></listitem> +</orderedlist> +</para> + +<para> + So, nun gilt es, die Speichergröße zu finden. Dies ist sehr + einfach, konvertiere einfach die Video-RAM-Größe nach Hexdezimal, + oder verwende diese Tabelle: +<informaltable frame="none"> +<tgroup cols="2"> +<tbody> +<row><entry>1 MB</entry><entry>0x100000</entry></row> +<row><entry>2 MB</entry><entry>0x200000</entry></row> +<row><entry>4 MB</entry><entry>0x400000</entry></row> +<row><entry>8 MB</entry><entry>0x800000</entry></row> +<row><entry>16 MB</entry><entry>0x1000000</entry></row> +<row><entry>32 MB</entry><entry>0x2000000</entry></row> +</tbody> +</tgroup> +</informaltable> +</para> + +<para> + Du weißt die Base-Adresse und die Speichergröße? Lass uns + die MTRR Register einstellen! Für die Matrox Karte von oben + (<literal>base=0xd8000000</literal>) mit 32MB RAM (<literal>size=0x2000000</literal>) + führst du einfach das Folgende aus: +<screen> +echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr +</screen> +</para> + +<para> + Nicht alle CPUs unterstützen MTRRs. Zum Beispiel ältere K6-2s + [die bei ca. 266MHz, stepping 0] unterstützen kein MTRR, aber stepping + 12 CPUs tun es (<command>cat /proc/cpuinfo</command> gibt Aufschluss). +</para> +</sect1> + +<sect1 id="output-trad"> +<title>Videoausgabegeräte für traditionelle Grafikkarten</title> +<sect2 id="xv"> +<title>Xv</title> + +<para> + Mit XFree86 4.0.2 oder neureren Versionen kannst du die Hardware-YUV-Routinen + deiner Grafikkarte mit Hilfe der XVideo-Erweiterungen benutzen. Das ist die + Technik, die <option>-vo xv</option> benutzt. Dieser Treiber unterstützt + darüber hinaus die Anpassung von Helligkeit/Kontrast/Sättigung etc + (es sei denn, du benutzt den alten und langsamen DirectShow DivX-Codec, + welcher diese Anpassungen unabhängig vom Videoausgabetreiber unterstützt). + Schau in der Man Page nach. +</para> + +<para> + Um Xv zum Laufen zu bringen, musst du auf die folgenden Punkte achten: + +<orderedlist> +<listitem><para> + Du musst XFree86 4.0.2 oder eine neuere Version verwenden, da die + älteren Versionen XVideo noch nicht kannten. + </para></listitem> +<listitem><para> + Deine Grafikkarte muss Hardware-Unterstützung für YUV bieten, was alle + modernen Karten tun. + </para></listitem> +<listitem><para> + X muss die XVideo-Erweiterung auch tatsächlich laden, was zu + Meldungen ähnlich den folgenden führt: + + <programlisting>(II) Loading extension XVideo</programlisting> + + in <filename>/var/log/XFree86.0.log</filename> + + <note><para> + Diese Meldung besagt nur, dass die XFree86-Erweiterung + geladen wird. Bei einer guten Installation sollte das immer der Fall + sein. Das heißt allerdings noch nicht, dass die + <emphasis role="bold">XVideo-Unterstützung der Grafikkarte</emphasis> + auch geladen wurde! + </para></note> + </para></listitem> +<listitem><para> + Deine Karte muss unter Linux Xv-Unterstützung haben. Du kannst dich + dessen mit <command>xvinfo</command> vergewsissern, das Teil der + XFree86-Distribution ist. Es sollte einen längeren Text ausgeben, + der ungefähr so aussieht: + +<screen> +X-Video Extension version 2.2 +screen #0 + Adaptor #0: "Savage Streams Engine" + number of ports: 1 + port base: 43 + operations supported: PutImage + supported visuals: + depth 16, visualID 0x22 + depth 16, visualID 0x23 + number of attributes: 5 +(...) + Number of image formats: 7 + id: 0x32595559 (YUY2) + guid: 59555932-0000-0010-8000-00aa00389b71 + bits per pixel: 16 + number of planes: 1 + type: YUV (packed) + id: 0x32315659 (YV12) + guid: 59563132-0000-0010-8000-00aa00389b71 + bits per pixel: 12 + number of planes: 3 + type: YUV (planar) +(...etc...)<!-- +--></screen> + Damit <application>MPlayer</application> Xv benutzen kann, müssen die + Pixelformate YUY2 packed und YV12 planar unterstützt werden. + </para></listitem> + <listitem><para> + Stell als letztes sicher, dass <application>MPlayer</application> mit + Unterstützung für Xv compiliert wurde. <command>configure</command> gibt eine + entsprechende Meldung aus. + Führ den Befehl <command>mplayer -vo help | grep xv </command> aus. + Wurde Unterstützung für Xv eingebaut, sollte eine ähnliche Meldung + wie diese erscheinen: + <screen> + xv X11/Xv<!-- + --></screen> + </para></listitem> +</orderedlist> +</para> + +<sect3 id="tdfx"> +<title>3dfx-Karten</title> + +<para> + Ältere 3dfx-Treiber hatten bekanntermaßen Probleme mit der + XVideo-Beschleuningung, die entweder YUY2 oder YV12 nicht unterstützte. + Stell sicher, dass du XFree86 Version 4.2.0 oder neuer verwendest, da diese + Versionen mit YV12 und YUY2 keine Probleme haben. Vorherige Versionen, auch + 4.1.0, sind <emphasis role="bold">bei Verwendung von YV12 abgestürzt</emphasis>. + Wenn du merkwürdige Effekte bei der Verwendung von <option>-vo xv</option> + bemerktst, dann probier aus, ob mit SDL, das ebenfalls XVideo benutzen kann, + diese Effekte verschwinden. In der <link linkend="sdl">SDL</link> stehen + Details darüber. +</para> + +<para> + <emphasis role="bold">Alternativ</emphasis> kannst du auch den NEUEN + tdfxfb-Treiber mit <option>-vo tdfxfb</option>verwenden! + Lies dazu die <link linkend="tdfxfb">tdfxfb</link> tdfxfb-Sektion +</para> +</sect3> + + +<sect3 id="s3"> +<title>S3-Karten</title> + +<para> + S3 Savage3D-Karten sollten problemlos funktionieren, aber bei Savage4- + Chips solltest du XFree86 4.0.3 oder neuer verwenden. Probier bei Problemen + den 16bpp-Farbmodus aus. Und der S3 Virge... Es gibt für ihn zwar Xv- + Unterstützung, aber die Karte selber ist so langsam, dass du sie besser + verkaufst. +</para> + +<note> +<para> + Momentan ist nicht ganz klar, welche Savage-Modelle keine Unterstützung + für YV12 in Hardware haben, sodass bei ihnen der Treiber diese Konvertierung + sehr langsam vornimmt. Wenn du deine Karte deswegen verdächtigst, dann + besorg dir einen neueren Treiber, oder frag auf der MPlayer-Users-Mailingliste + freundlich nach einem Treiber, der MMX/3DNow unterstützt. +</para> +</note> +</sect3> + + +<sect3 id="nvidia"> +<title>nVidia-Karten</title> + +<para> + nVidia ist für Linux keine optimale Wahl (auch wenn das laut nVidia + <link linkend="nvidia-opinions">nicht stimmt</link>)... + XFree86's Open-Source-Treiber unterstützt die meisten dieser Karten, jedoch + musst du in einigen Fällen die binären Closed-Source-Treiber von nVidia + verwenden, verfügbar auf der + <ulink url="http://www.nvidia.com/object/linux.html">nVidia-Webseite</ulink>. + Du brauchst diese Treiber immer, wenn du zusätzlich 3D-Beschleunigung + haben willst. +</para> + +<para> + Riva128-Karten bieten nicht einmal mit den binären nVidia-Treibern + XVideo-Unterstützung (beklag dich bei nVidia). +</para> + +<para> + However, <application>MPlayer</application> enthält einen + <link linkend="vidix">VIDIX</link> -Treibern für die meisten nVidia-Karten. + Er ist aktuell in der Beta-Phase und besitzt einige Nachteil. Mehr + Informationen findest du in der + <link linkend="vidix-nvidia">nVidia-VIDIX</link>-Sektion. +</para> +</sect3> + + +<sect3 id="ati"> +<title>ATI-Karten</title> + +<para> + Die <ulink url="http://gatos.sf.net">GATOS-Treiber</ulink>, die du + einsetzen solltest, sofern du keine Rage128- oder Radeon-Karte hast, + haben standardmäßig VSYNC angeschlatet. Dies bedeutet, dass + die Decodiergeschwindigkeit (!) zur Bildwiederholrate des Monitors + synchronisiert wird. Wenn dir die Wiedergabe langsam vorkommt, dann + versuche, irgendwie VSYNC abzuschalten, oder setze die Bildwiederholrate + des Monitors auf n * (fps des Films) Hz. +</para> + +<para> + Radeon VE - wenn du X benötigst, verwende XFree86 4.2.0 oder höher für + diese Karte. Außerdem gibt es keine Unterstützung für den TV-Ausgang. + Natürlich bekommst du mit <application>MPlayer</application> + <emphasis role="bold">Hardware-beschleunigte</emphasis> Wiedergabe, das + ganze wahlweise <emphasis role="bold">mit oder ohne TV-Ausgang</emphasis>, + und es werden dabei nicht einmal weitere Bibliotheken oder X selber benötigt. + Lies dazu die <link linkend="vidix">VIDIX-Sektion</link>. +</para> +</sect3> + + +<sect3 id="neomagic"> +<title>NeoMagic-Karten</title> + +<para> + Diese Chips befinden sich in vielen Laptops. Du musst XFree86 4.3.0 oder + höher oder andernfalls die + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/">Xv-fähigen + Treiber</ulink> von Stefan Seyfried verwenden. + Wähle einfach einen, der zu deiner XFree86-Version passt. +</para> + +<para> + XFree86 4.3.0 beinhaltet die Unterstützung für Xv, jetzt schickte Bohdan Horst + einen kleinen + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neo_driver.patch">Patch</ulink> + auf die XFree86-Quellen, der Framebuffer-Operationen (daher XVideo) + bis auf das Vierfache beschleunigt. Der Patch wurde das in XFree86-CVS + eingebunden und sollte im nächsten Release nach 4.3.0 vorhanden sein. +</para> + +<para> + Um die Wiedergabe von Video in DVD-Auflösung zu ermöglichen, + ändere deine XF86Config wie folgt: +<programlisting> +Section "Device" + [...] + Driver "neomagic" + <emphasis>Option "OverlayMem" "829440"</emphasis> + [...] +EndSection<!-- +--></programlisting> +</para> +</sect3> + + +<sect3 id="trident"> +<title>Trident-Karten</title> +<para> + Wenn du Xv mit einer Trident-Grafikkarte benutzen willst, dann installiere + XFree86 4.2.0, sofern Xv nicht schon mit 4.1.0 funktioniert. Version 4.2.0 + enthält Unterstützung für Xv im Vollbild für Cyberblade XP-Karten. +</para> + +<para> + Alternativ enthält <application>MPlayer</application> einen + <link linkend="vidix">VIDIX</link>-Treiber für the Cyberblade/i1-Karten. +</para> + +</sect3> + + +<sect3 id="kyro"> +<title>Kyro/PowerVR-Karten</title> +<para> + Wenn du Xv mit einer Kyro-basierten Karte (wie z.B. der Hercules Prophet 4000XT) + verwenden möchstest, dann solltest du die Treiber von der + <ulink url="http://www.powervr.com/">PowerVR-Seite</ulink> herunterladen. +</para> +</sect3> +</sect2> + +<!-- ********** --> + +<sect2 id="dga"> +<title>DGA</title> + +<formalpara> +<title>EINLEITUNG</title> +<para> + Dieser Abschnitt versucht, in wenigen Worten zu beschreiben, was DGA + generell ist, und was der DGA-Videotreiber in <application>MPlayer</application> + erreichen kann, und was nicht. +</para> +</formalpara> + +<formalpara> +<title>WAS IST DGA?</title> +<para> + <acronym>DGA</acronym> ist die Abkürzung für + <emphasis>Direct Graphics Access</emphasis> (direkter Zugriff auf die + Grafikhardware) und gibt Programmen die Möglichkeit, unter Umgehung + des X-Servers direkt den Framebuffer der Grafikkarte zu verändern. + Technisch gesehen wird das dadurch realisiert, dass der + Framebuffer-Speicher in den virtuellen Adressraum des jeweiligen Prozesses + abgebildet wird. Das wird vom Kernel aber nur dann zugelassen, wenn der + Prozess Superuserprivilegien besitzt. Dazu musst du dich entweder als + <systemitem class="username">root</systemitem> anmelden oder das SUID-bit + des <application>MPlayer</application>-Binaries setzen (was + <emphasis role="bold">nicht empfohlen wird</emphasis>). +</para> +</formalpara> +<para> + Von DGA gibt es zwei Versionen: DGA1 kommt mit XFree 3.x.x, und DGA2 + wurde mit XFree 4.0.1 eingeführt. +</para> + +<para> + DGA1 bietet nur den oben beschriebenen Zugriff auf den Framebuffer. Die + Umschaltung des Videomodus klappt nur mit der XVidMode-Erweiterung. +</para> + +<para> + DGA2 beinhaltet die Features der XVidMode-Erweiterung und erlaubt + außerdem, die Farbtiefe zu ändern. Damit kannst du also auf 32bit + Farbtiefe umschalten, auch wenn der X-Server gerade mit 15bit Farbtiefe + läuft und umgekehrt. +</para> + +<para> + DGA hat aber auch ein paar Nachteile. Die Funktionsweise scheint ein wenig + von der Grafikkarte und deder Implementierung des Grafikkartentreibers + im X-Server abhängig zu sein, der diesen Chip kontrolliert. + Es fuktioniert also nicht auf jedem System... +</para> + +<formalpara> +<title>DGA-UNTERSTÜTZUNG FÜR MPLAYER INSTALLIEREN</title> + +<para> + Stell als erstes sicher, dass X die DGA-Erweiterung lädt. Schau + in <filename>/var/log/XFree86.0.log</filename> nach: + +<programlisting>(II) Loading extension XFree86-DGA</programlisting> + + Wie du siehst ist XFree86 4.0.x oder neuer + <emphasis role="bold">sehr zu empfehlen</emphasis>! + <application>MPlayer</application>s DGA-Treiber wird von + <filename>./configure</filename> automatisch erkannt. Alternativ + kannst du seine Compilierung mit <option>--enable-dga</option> erzwingen. +</para> +</formalpara> + +<para> + Falls der Treiber nicht zu einer kleineren Auflösung wechseln + konnte, dann experimentiere mit den Optionen <option>-vm</option> (nur bei + X 3.3.x), <option>-fs</option>, <option>-bpp</option>, + <option>-zoom</option> herum, um einen Videomodus zu finden, + in den der Film reinpasst. Momentan gibt es keinen Konverter :( +</para> + +<para> + Werde <systemitem class="username">root</systemitem>. + DGA bruacht <systemitem class="username">root</systemitem>-Privilegien, + um direkt in den Grafikspeicher zu schreiben. Wenn du MPlayer als + normaler Benutzer starten möchtest, dann installiere + <application>MPlayer</application> mit dem SUID-Bit: + +<screen> +chown root <replaceable>/usr/local/bin/mplayer</replaceable> +chmod 750 <replaceable>/usr/local/bin/mplayer</replaceable> +chmod +s <replaceable>/usr/local/bin/mplayer</replaceable> +</screen> + + Jetzt funktioniert es auch als normaler Benutzer. +</para> + +<caution> +<title>Warnung: Sicherheitsrisiko!</title> +<para> + Dieses ist ein <emphasis role="bold">großes</emphasis> Sicherheitsloch. + Tu das <emphasis role="bold">niemals</emphasis> auf einem Server oder + auf einem Computer, auf den auch andere Leute Zugriff haben, da sie durch einen + SUID-<systemitem class="username">root</systemitem>-<application>MPlayer</application> + <systemitem class="username">root</systemitem>-Privilegien erlangen können. +</para> +</caution> + +<para> + Benutze jetzt die Option <option>-vo dga</option>, und ab geht's (hoffe ich + zumindest :))! Du solltest auch ausprobieren, ob bei dir die Option + <option>-vo sdl:dga</option> funktioniert. Sie ist viel schneller. +</para> + + +<formalpara id="dga-modelines"> +<title>ÄNDERN DER AUFLÖSUNG</title> + +<para> + Der DGA-Treiber ermöglicht es, die Auflösung des Outpu-Signals zu ändern. + Damit entfällt die Notwendigkeit der (langsamen) Softwareskalierung und + bietet gleichzeitig ein Vollbild. Idealerweise würde DGA in die gleiche + Auflösung schalten, die das Video (natürlich unter Beachtung des + Höhen-/Breitenverhältnisses) hat, aber der X-Server lässt nur + Auflösungen zu, die vorher in der <filename>/etc/X11/XF86Config</filename> bzw. + <filename>/etc/X11/XF86Config-4</filename> definiert wurden, bezüglich XFree 4.X.X. + Diese werden durch sogenannte Modelines festgelegt und hängen von den Fähigkeiten + deiner Grafikhardware ab. Der X-Server liest diese Konfigurationsdatei beim + Start ein und deaktiviert alle Modelines, die sich nicht mit deiner Hardware + vertragen. Du kannst die überlebenden Modelines anhand der X11-Logdatei + herausfinden (normalerweise <filename>/var/log/XFree86.0.log</filename>). +</para> +</formalpara> + +<para> + Diese Einträge funktionieren mit einem Riva128-Chip und dem + nv.o-X-Server-Treibermodul. +</para> + + +<para><programlisting> +Section "Modes" + Identifier "Modes[0]" + Modeline "800x600" 40 800 840 968 1056 600 601 605 628 + Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 + Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 + Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan + Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 + Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan + Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan +EndSection +</programlisting></para> + + +<formalpara> +<title>DGA & MPLAYER</title> +<para> + DGA wird bei <application>MPlayer</application> an zwei Stellen benutzt: + beim SDL-Treiber mit (<option>-vo sdl:driver=dga</option>) oder beim + DGA-Treiber selber (<option>-vo dga</option>). + Das oben gesagte gilt für beide Treiber. In den folgenden Abschnitten + erkläre ich, wie der DGA-Treiber von <application>MPlayer</application> + selber arbeitet. +</para> +</formalpara> + + +<formalpara> +<title>FEATURES DES DGA-TREIBERS</title> + +<para> + Der DGA-Treiber wird durch die Option <option>-vo dga</option> aktiviert. + Sein Standardverhalten sieht vor, dass er in die Auflösung schaltet, die + der Videoauflösung am nächsten kommt. Der Treiber ignoriert absichtlich + die Optionen <option>-vm</option> (Videomodusumschaltung aktivieren) und + <option>-fs</option> (Vollbildmodus erzwingen) - er versucht immer, so viel + des Bildefläche wie möglich durch eine Änderung der Auflösung zu bedecken. + Dadurch wird nicht ein einziger weitere CPU-Takt für die Skalierung des + Bildes verwendet. Wenn du mit dem Modus nicht zufrieden bist, den der Treiber + gewählt hat, dann kannst du ihn zwingen, denjenigen Modus zu + wählen, der am besten zu dem mit den Optionen <option>-x</option> und + <option>-y</option> angegebenen Werten passt. Die Option <option>-v</option> + veranlasst den DGA-Treiber, neben einigen anderen Dingen auch alle von deiner + <filename>XF86Config</filename>-Datei unterstützen Videomodi aufzulisten. + Wenn DGA2 verwendet wird, dann kannst du mit der Option <option>-bpp</option> die + Verwendung einer bestimmten Farbtiefe erzwingen. Gültige Werte sind 15, + 16, 24 und 32. Es hängt dann von deiner Hardware ab, ob der Modus nativ + unterstützt wird, oder ob eine (möglicherweise langsame) + Konvertierung stattfindet. +</para> +</formalpara> +<para> + Wenn du Glück hast und dir genug unbenutzter Grafikspeicher zur + Verfügung steht, um ein komplettes Bild aufzunehmen, dann wird der + DGA-Treiber Doppelpufferung verwenden, was zu regelmäßigerer + Wiedergabe führt. Der DGA-Treiber wird dir mitteilen, ob Doppelpufferung + angeschaltet ist oder nicht. +</para> + +<para> + Doppelpufferung bedeutet, dass das nächste Bild deines Videos bereits + an einer anderen Stelle im Grafikspeicher aufgebaut wird, während das + aktuelle Bild angezeigt wird. Wenn das nächste Bild fertig ist, so wird + dem Grafikchip nur noch mitgeteilt, wo er das neue Bild im Speicher finden + kann. Somit holt sich der Chip seine Daten einfach von dort. In der + Zwischenzeit wird der andere, jetzt unbenutze Puffer wieder mit neuen + Videodaten gefüllt. +</para> + +<para> + Doppelpufferung kann mit der Option <option>-double</option> aktiviert und mit + <option>-nodouble</option> deaktiviert werden. Momentan ist die Doppelpufferung + standardmäßig deaktiviert. Wenn der DGA-Treiber verwendet wird, + dann funktioniert das Onscreen-Display (ODS) nur dann, wenn auch die + Doppelpufferung aktiviert ist. Andererseits kann die Doppelpufferung auch + einen großen Einbruch bei der Geschwindigkeit hervorrufen, was sehr von + der DGA-Implementierung der Treiber für deine Hardware abhängt (auf + meinem K6-II+ 525 benötigt Doppelpufferung weitere 20% CPU-Zeit!). +</para> + + +<formalpara> +<title>PUNKTE BZGL. DER GESCHWINDIGKEIT</title> + +<para> + Generell gesehen sollte der Zugriff auf den DGA-Framebuffer genauso + schnell sein wie der X11-Treiber, wobei man zusätzlich noch ein Vollbild + erhält. Die prozentualen Geschwindigkeitswerte, die <application>MPlayer</application> + ausgibt, müssen mit Vorsicht genossen werden, da sie z.B. beim X11-Treiber + nicht die Zeit beinhalten, die der X-Server tatsächlich zum + Anzeigen des Bildes benötigt. Klemm ein Terminal an deinen seriellen + Port und starte <command>top</command>, wenn du wissen willst, wie's wirklich mit + der Geschwindigkeit aussieht. +</para> +</formalpara> + +<para> + Allgemein betrachtet hängt die Geschwindigkeitsverbesserung von DGA + gegenüber dem 'normalen' X11-Treiber sehr von deiner Grafikkarte und + davon ab, wie gut das X-Servermodul optimiert ist. +</para> + +<para> + Wenn du ein langsames System hast, dann benutz besser eine Farbtiefe von + 15 oder 16bit, da sie nur die halbe Bandbreite des 32bit-Farbmodus + benötigen. +</para> + +<para> + Einge gute Idee ist auch die Verwendung von 24bit Farbtiefe selbst dann, + wenn deine Grafikkarte nativ nur 32bit unterstützt, da bei 24bit 25% + weniger Daten im Vergleich zum 32/32-Modus über den Bus transferiert + werden müssen. +</para> + +<para> + Ich habe schon gesehen, wie einige AVI-Dateien auf einem Pentium MMX 266 + wiedergegeben werden konnten. AMD K6-2-CPUs werden ab ca. 400 MHz oder + höher funktionieren. +</para> + + +<formalpara> +<title>BEKANNTE FEHLER</title> + +<para> + Die Entwickler von XFree sagen selbst, dass DGA ein ganz schönes + Monstrum ist. Sie raten eher davon ab, es zu benutzen, da seine + Implementierung in einige Chipset-Treiber für XFree nicht immer + ganz fehlerfrei war. +</para> +</formalpara> + +<itemizedlist> +<listitem><simpara> + Bei der Kombination aus XFree 4.0.3 und dem + <filename>nv.o</filename>-Treiber gibt es einen Fehler, der zu + merkwürdigen Farben führt. +</simpara></listitem> +<listitem><simpara> + Die ATI-Treiber müssen den Videomodus mehrmals zurückstellen, + nachdem der DGA-Modus verlassen wurde. + </simpara></listitem> +<listitem><simpara> + Einige Treiber schaffen es manchmal einfach nicht, in die vorherige + Auflösung zurückzuschalten. Benutze in solch einem Fall + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>Keypad +</keycap> und + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>Keypad -</keycap>, + um manuell die Auflösung zu ändern. +</simpara></listitem> +<listitem><simpara> + Einige Treiber zeigen einfach nur merkwürdige Farben an. +</simpara></listitem> +<listitem><simpara> + Einige Treiber lügen, was die von ihnen in den Prozessorspeicher + eingeblendete Menge Grafikspeicher anbelangt, weswegen vo_dga + nicht die Doppelpufferung verwendet (SIS?). +</simpara></listitem> +<listitem><simpara> + Einige Treiber schaffen es nicht einmal, auch nur einen einzigen + gültigen Grafikmodus bereitzustellen. In solchen Fällen + gibt der DGA-Treiber schwachsinnige Modi wie z.B. 100000x100000 oder + so ähnlich aus. +</simpara></listitem> +<listitem><simpara> + Das OSD funktioniert nur, wenn auch die Doppelpufferung aktiviert + ist (sonst flimmert es). +</simpara></listitem> +</itemizedlist> + +</sect2> +<!--</sect1>--> + +<!-- ********** --> + +<sect2 id="sdl"> +<title>SDL</title> + +<para> + <acronym>SDL</acronym> (Simple Directmedia Layer, Simpele Schicht für + den direkten Zugriff auf Mediageräte) bietet grundsätzlich eine einheitliche + Schnittstelle zu Audio- und Videogeräten. Programme, die die SDL + benutzen, kennen nur die SDL und brauchen kein Wissen darüber, welche + Video- oder Audiotreiber die SDL tatsächlich benutzt. So kann z.B. eine + Doom-Portierung mit der SDL die Svgalib, aalib, X11, fbdev und andere Treiber + benutzen. Dazu musst du z.B. nur den Videotreiber angeben, indem du die + Umgebungsvariable <envar>SDL_VIDEODRIVER</envar> setzt. + So lautet zumindest die Theorie. +</para> + +<para> + Bei <application>MPlayer</application> benutzten wir damals die + Software-Skalierroutinen der X11-Treiber von SDL bei Grafikkarten/-treiber, + die keine Unterstützung für XVideo hatten, bis wir unsere eigenen schrieben, + die schneller und hübscher waren. Wir benutzten damals ausßerdem SDLs + aalib-Ausgabe. jetzt haben wir unsere eigenen, was wesentlich komfortabler + ist. Auch davon haben wir selber eine komfortablere Version geschrieben. + SDLs DGA-Code war besser als unserer - zumindest bis vor kurzem. + Verstehst du, worauf ich hinauswill? :) +</para> + +<para> + SDL ist auch bei einigen fehlerbehafteten Treibern/Karten nützlich, + wenn das Video ruckelig abgespielt wird (und es nicht an einem langsamen + System liegt), oder wenn der Ton hinterherhinkt. +</para> + +<para> + Die SDL-Videoausgabe unterstützt die Anzeige von Untertiteln unterhalb + des Films auf den schwarzen Balken (sofern diese vorhanden sind). +</para> + +<variablelist> +<title>Es gibt einige Komanndozeilenparameter bezüglich SDL:</title> +<varlistentry> + <term><option>-vo sdl:driver=<replaceable>name</replaceable></option></term> + <listitem><simpara> + Gibt den Namen des SDL-Videotreibers an (z.B. <literal>aalib</literal>, + <literal>dga</literal>, <literal>x11</literal>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-ao sdl:<replaceable>name</replaceable></option></term> + <listitem><simpara> + Gibt den Namen des SDL-Audiotreibers an (z.B. <literal>dsp</literal>, + <literal>esd</literal>, <literal>artsc</literal>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-noxv</option></term> + <listitem><simpara> + Deaktiviert die XVideo-Hardwarebeschleunigung + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-forcexv</option></term> + <listitem><simpara> + Versucht, die Verwendung der XVideo-Beschleunigung zu erzwingen + </simpara></listitem> +</varlistentry> +</variablelist> + +<table> +<title>SDL-Tasten:</title> +<tgroup cols="2"> +<thead> +<row><entry>Taste</entry><entry>Aktion</entry></row> +</thead> +<tbody> +<row><entry><keycap>c</keycap></entry><entry> + Wechselt zwischen den vorhandenen Vollbildmodi + </entry></row> +<row><entry><keycap>n</keycap></entry><entry> + Wechselt zurück zum normalen Fenstermodus + </entry></row> +</tbody> +</tgroup> +</table> + +<itemizedlist> +<title>BEKANNTE FEHLER</title> +<listitem><simpara> + Tasten, die bei sdl:driver=aalib einmal gedrückt werden, bleiben aus + Sicht des Programmes gedrückt (benutz also <option>-vo aa</option>!). + Das ist ein Fehler in SDL, den ich nicht beheben kann (mit SDL 1.2.1 + getestet). +</simpara></listitem> +<listitem><simpara> + Benutze AUF KEINEN FALL SDL mit dem GUI! Das funktioniert nicht so, + wie es sollte. +</simpara></listitem> +</itemizedlist> +</sect2> + + +<sect2 id="svgalib"> +<title>SVGAlib</title> + +<formalpara> +<title>INSTALLATION</title> +<para> + Du musst zuerst die svgalib und die dazugehörigen Devel-Pakete + installieren, bevor du <application>MPlayer</application> compilierst, + da es die Svgalib sonst nicht automatisch findet und den Treiber dazu + nicht compiliert (das kann aber trotzdem erzwungen werden). Vergiss auch + nicht, in <filename>/etc/vga/libvga.config</filename> richtige Werte + für deine Grafikkarte und deinen Monitor anzugeben. +</para> +</formalpara> + +<note> +<para> + Verwende nicht die Option <option>-fs</option>, da sie die Benutzung des + Softwareskalierers erzwingt, und das ganze dann langsam wird. Wenn du diese + Option wirklich brauchst, dann verwende auch <option>-sws 4</option>, + welche zwar schlechte Qualität produziert, dafür aber auch ein wenig + schneller ist. +</para> +</note> + +<formalpara><title>EGA(4bpp)-UNTERSTÜTZUNG</title> +<para> + SVGAlib beinhaltet die EGAlib, und MPlayer kann damit jeden Film in + 16 Farben bei folgenden Modi anzeigen: +</para> +</formalpara> + +<itemizedlist> +<listitem><simpara> + EGA-Karte mit EGA-Monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp +</simpara></listitem> +<listitem><simpara> + EGA-Karte mit CGA-Monitor: 320x200x4bpp, 640x200x4bpp +</simpara></listitem> +</itemizedlist> + +<para> + Der bpp-Wert (Bits pro Pixel) muss von Hand auf vier gesetzt werden: + <option>-bpp 4</option> +</para> + +<para> + Die Auflösung des Films muss wahrscheinlich verkleinert werden, damit + er in den EGA-Modus reinpasst: + <screen>-vf scale=640:350</screen> + oder + <screen>-vf scale=320:200</screen> +</para> + +<para> + Dafür brauchen wir eine schnelle, aber schlechte Qualität + produzierende Skalierroutine: + <screen>-sws 4</screen> +</para> + +<para> + Eventuell muss die automatische Anpassung des + Höhen-/Breitenverältnisses ausgeschaltet werden: + <screen>-noaspect</screen> +</para> + +<note><para> + Die besten Ergebnisse bei EGA-Bildschirmen erhält man meiner Erfahrung nach, + wenn man die Helligkeit ein wenig verringert: + <option>-vf eq=-20:0</option>. Ich musste auch die Audiosamplerate erniedrigen, + weil bei 44KHz der Sound nicht richtig funktionierte: + <option>-srate 22050</option>. +</para></note> + +<para> + Du kannst das OSD und Untertitel mit dem <option>expand</option>-Filter + aktivieren. Die man-Page enthält die exakten Parameter. +</para> +</sect2> + + +<sect2 id="fbdev"> +<title>Framebuffer-Ausgabe (FBdev)</title> + +<para> + <filename>./configure</filename> erkennt automatisch, ob es den Framebuffertreiber + (fbdev) compilieren soll oder nicht. Lies die Framebufferdokumentation in den + Kernelquellen (<filename>Documentation/fb/*</filename>); dort stehen mehr + Informationen. +</para> + +<para> + Falls deine Karte den VBE 2.0-Standard nicht unterstützt (wie z.B. + ältere ISA-/PCI-Karten wie die S3 Trio64) oder nur VBE 1.2 und + älter unterstützt: Tja, dann kannst du immer noch VESAfb benutzen, + benötigst aber den SciTech Display Doctor (ehemals UniVBE), der vor dem + Booten von Linux geladen werden muss. Benutze dazu eine DOS-Bootdiskette oder + was auch immer. Vergiss nicht, deine Kopie von UniVBE zu registrieren ;). +</para> + +<para> + Die Fbdev-Ausgabe kenn neben den üblichen Parametern noch einige andere: +</para> + +<variablelist> +<varlistentry> + <term><option>-fb</option></term> + <listitem><simpara> + Gibt das zu benutzende Framebuffergerät an (Standard <filename>/dev/fb0</filename>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-fbmode</option></term> + <listitem><simpara> + Gibt zu benutzenden Modusnamen an (wie sie in <filename>/etc/fb.modes</filename> sehen) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-fbmodeconfig</option></term> + <listitem><simpara> + Konfigurationsdatei für die Modi (Standard <filename>/etc/fb.modes</filename>) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-monitor-hfreq</option></term> + <term><option>-monitor-vfreq</option></term> + <term><option>-monitor-dotclock</option></term> + <listitem><simpara> + <emphasis role="bold">Wichtige</emphasis> Werte, schau dir die + <filename>example.conf</filename> an + </simpara></listitem> +</varlistentry> +</variablelist> + +<para> + Wenn du in einen speziellen Modus wechseln willst, dann benutze +<screen> +mplayer -vm -fbmode <replaceable>Modusname</replaceable> <replaceable>Dateiname</replaceable> +</screen> +</para> + +<itemizedlist> +<listitem><para> + <option>-vm</option> ohne weitere Optionen wird den am besten passenden Modus + aus <filename>/etc/fb.modes</filename> auswählen. Kann auch zusammen mit + <option>-x</option> und <option>-y</option> benutzt werden. Die Option + <option>-flip</option> wird nur dann unterstützt, wenn das Pixelformat des + Films mit dem Pixelformat des Videomodus übereinstimmt. Pass auf den + bpp-Wert auf. fbdev wird den aktuell eingestellten benutzen, wenn du + nicht mit <option>-bpp</option> einen bestimmten angibst. +</para></listitem> +<listitem><para> + Die Option <option>-zoom</option> wird nicht unterstützt (Softwareskalierung + ist langsam, verwende <option>-vf scale</option>). Du kannst keine Modi mit + 8bpp oder weniger benutzen. +</para></listitem> +<listitem><para> + Wahrscheinlich wirst du den Cursor (<screen>echo -e '\033[?25l'</screen> + oder <screen>setterm -cursor off</screen>) und den Bildschirmschoner + (<option>setterm -blank 0</option>) deaktivieren wollen. Um den Cursor wieder + zu aktivieren: <screen>echo -e '\033[?25h'</screen> oder + <screen>setterm -cursor on</screen>. + </para></listitem> +</itemizedlist> + +<note> +<para> + fbdev kann den Videomodus in Verbindung mit dem VESA-Framebuffer + <emphasis>nicht</emphasis> ändern. Frag auch nicht danach - das ist + keine Einschränkung seitens <application>MPlayer</application>. +</para> +</note> +</sect2> + + +<sect2 id="mga_vid"> +<title>Matrox-Framebuffer (mga_vid)</title> + +<para> + Dieser Abschnitt beschäftigt sich mit der Unterstützung für + den BES (Back-End Scaler, Hardwareskalierungseinheit) bei Karten mit dem + Matrox-G200/G400/G450/G550-Chip durch das mga_vid-Kernelmodul. Es wird von + A'rpi aktiv entwickelt und bietet Unterstützung für Hardware- + VSYNC und Dreifachpufferung. Dieser Treiber funktioniert sowohl unter der + Framebufferconsole als auch unter X. +</para> + +<warning> +<para> + Das Modul ist nur für Linux-Systeme verfügbar! + Auf nicht-Linux-Systemen solltest du statt dessen <link linkend="vidix">VIDIX</link> + benutzen! +</para> +</warning> + +<procedure> +<title>Installation:</title> +<step><para> + Um den Treiber benutzen zu können, musst du erstmal <filename>mga_vid.o</filename> + compilieren: + <screen> +cd drivers +make<!-- +--></screen> + </para></step> +<step><para> + Jetzt erstelle das Gerät <filename>/dev/mga_vid</filename>: + <screen>mknod /dev/mga_vid c 178 0</screen> + und lade das Kernelmodul: + <screen>insmod mga_vid.o</screen> + </para></step> +<step><para> + Du solltest sicherstellen, dass das Modul die Größe des + Grafikkartenspeichers korrekt ermittelt hat. Benutze dazu + <command>dmesg</command>. Wenn die Angabe nicht stimmt, dann gib nach + <command>rmmod mga_vid</command> mithilfe der Option + <option>mga_ram_size</option> die Größe explizit an: + <screen>insmod mga_vid.o mga_ram_size=16</screen> +</para></step> +<step><para> + Wenn das Modul automatisch geladen und entladen werden soll, sobald + es benötigt wird, so füge die folgende Zeile in der Datei + <filename>/etc/modules.conf</filename> ein: + + <programlisting>alias char-major-178 mga_vid</programlisting> + + Jetzt kopiere <filename>mga_vid.o</filename> in das entsprechende Verzeichnis + unterhalt von + <filename>/lib/modules/<replaceable>kernel_version</replaceable>/<replaceable>/irgendwo</replaceable></filename>. + </para><para> + Jetzt gib ein: + <screen>depmod -a</screen> + </para></step> +<step><para> + Schließlich musst du noch <application>MPlayer</application> (erneut) compilieren. + <filename>configure</filename> wird automatisch <filename>/dev/mga_vid</filename> + finden und den 'mga'-Treiber erstellen. Die entsprechende Option für + <application>MPlayer</application> lautet <option>-vo mga</option>, wenn du mit + dem matroxfb auf der Console arbeitest, oder <option>-vo xmga</option>, wenn du + unter XFree 3.x.x oder XFree 4.x.x arbeitest. + </para></step> +</procedure> + +<para> + Der mga_vid-Treiber kooperiert mit Xv. +</para> + +<para> + Das <filename>/dev/mga_vid</filename>-Gerät kann z.B. mit + <screen>cat /dev/mga_vid</screen> + ausgelesen werden, um ein paar Informationen über + den aktuellen Zustand zu erhalten. Die Helligkeit kann zusätzlich mit z.B. + <screen>echo "brightness=120" > /dev/mga_vid</screen> + angepasst werden. +</para> +</sect2> + + +<sect2 id="tdfxfb" xreflabel="3Dfx YUV support (tdfxfb)"> +<title>3dfx-YUV-Unterstützung (tdfxfb)</title> +<para> + Dieser Treiber benutzt den tdfx-Framebuffertreiber des Kernels, um Filme + mit YUV-Beschleunigung abzuspielen. Deswegen benötigst du einen Kernel + mit tdfxfb-Unterstütztung. Danach musst du MPlayer compilieren mit + <screen>./configure --enable-tdfxfb</screen> +</para> +</sect2> + + +<sect2 id="opengl"> +<title>OpenGL-Ausgabe</title> + +<para> + <application>MPlayer</application> unterstützt die Ausgabe von Filmen via + OpenGL. Wenn aber deine Plattform/dein Treibe Xv unterstützt (was bei PCs + mit Linux praktisch immer der Fall ist), dann benutze besser Xv, da die + OpenGL-Geschwindigkeit deutlich geringer als die von Xv ist. Wenn du dagegen + eine X11-Implementierung hast, die Xv nicht unterstützt, so mag OpenGL eine + brauchbare Alternative sein. +</para> + +<para> + Leider unterstützden nicht alle Treiber die erforderlichen Features. + Die Utah-GLX-Treiber (für XFree86 3.3.6) unterstützen sie für + alle Karten. Auf <ulink url="http://utah-glx.sf.net"/> + findest du Details zur Installation. +</para> + +<para> + XFree86(DRI) 4.0.3 oder neuer unterstützt OpenGL mit Matrox- und + Radeon-Karten, 4.2.0 und neuer unterstützen zustätzlich Rage128. + Auf <ulink url="http://dri.sf.net"/> findest du Details zur Installation. +</para> + +<para> + Ein Hinweis von einem unserer User: der GL-Video-Output kann dazu verwendet + werden, einen vertikal synchronisierten TV-Output zu bekommen. + Du musst dann eine Umgebungsvariable setzen (zumindest bei nVidia): +</para> + +<para> +<command>export $__GL_SYNC_TO_VBLANK=1</command> +</para> + +</sect2> + + +<sect2 id="aalib"> +<title>AAlib - Ausgabe im Textmodus</title> + +<para> + AAlib ist eine Bilbiothek, mit der Grafiken im Textmodus angezeigt + werden, wobei ein mächtiger Textmodusrenderer benutzt wird. Es gibt SEHR + viele Programme, die das bereits unterstützen, wie z.B. Doom, Quake etc. + <application>MPlayer</application> enthält einen sehr gut brauchbaren + Treiber für AAlib. Wenn <filename>./configure</filename> feststellt, + dass die AAlib installiert ist, dann wird anschließend der AAlib-Treiber + gebaut. +</para> + +<para> + Du kannst diese Tasten im AA-Fenster benutzen, um die Render-Optionen + zu beeinflussen: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Taste</entry><entry>Aktion</entry></row> +</thead> +<tbody> +<row><entry><keycap>1</keycap></entry><entry> + Kontrast verringern + </entry></row> +<row><entry><keycap>2</keycap></entry><entry> + Kontrast erhöhen + </entry></row> +<row><entry><keycap>3</keycap></entry><entry> + Helligkeit verringern + </entry></row> +<row><entry><keycap>4</keycap></entry><entry> + Helligkeit erhöhen + </entry></row> +<row><entry><keycap>5</keycap></entry><entry> + Schnelles Rendern an-/ausschalten + </entry></row> +<row><entry><keycap>6</keycap></entry><entry> + Wahl des Farbverteilungsmodus (keiner, Fehlerverteilung, Floyd Steinberg) + </entry></row> +<row><entry><keycap>7</keycap></entry><entry> + Bild invertieren + </entry></row> +<row><entry><keycap>8</keycap></entry><entry> + schaltet zwischen den <application>MPlayer</application>- und den AA-Tastenbelegungen um + </entry></row> +</tbody> +</tgroup> +</informaltable> + +<variablelist> +<title>Die folgenden Kommandozeilenparamter stehen zur Verfügungung:</title> +<varlistentry> + <term><option>-aaosdcolor=<replaceable>V</replaceable></option></term> + <listitem><para> + OSD-Farbe ändern + </para></listitem> +</varlistentry> +<varlistentry> + <term><option>-aasubcolor=<replaceable>V</replaceable></option></term> + <listitem><para> + Farbe der Untertitel ändern + </para><para> + <replaceable>V</replaceable> kann folgende Werte annehmen: + <literal>0</literal> (normal), + <literal>1</literal> (dunkel), + <literal>2</literal> (fett), + <literal>3</literal> (fette Schrift), + <literal>4</literal> (negative Farben), + <literal>5</literal> (spezial). + </para></listitem> +</varlistentry> +</variablelist> + +<variablelist> + <title>Die AAlib selbst bietet ebenfalls eine große Anzahl von Optionen. + Hier sind die wichtigsten:</title> +<varlistentry> + <term><option>-aadriver</option></term> + <listitem><simpara> + wählt den empfohlenen aa-Treiber (X11, curses, Linux) + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-aaextended</option></term> + <listitem><simpara> + benutze alle 256 Zeichen + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-aaeight</option></term> + <listitem><simpara> + benutze auch ASCII-Zeichen mit dem achten Bit + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>-aahelp</option></term> + <listitem><simpara> + gibt alle aalib-Optionen aus + </simpara></listitem> +</varlistentry> +</variablelist> + +<note> +<para> + Das Rendern ist sehr CPU-intensiv, vor allem, wenn AA unter X + benutzt wird. AAlib braucht auf einer Nicht-Framebuffer-Console am + wenigstens CPU-Zeit. Benutze SVGATextMode, um einen möglichst + großen Textmodus zu wählen, und genieß den Film! (Hercules-Karten + als zweitem Ausgebegerät rocken :)) (Aber IMHOkannst du die Option + <option>-vf 1bpp</option> anwenden, um Grafiken auf hgafb zu bekommen :) +</para> +</note> + +<para> + Wenn dein Computer nicht schnell genug ist, um alle Frames anzuzeigen, + dann benutz die Option <option>-framedrop</option>. +</para> + +<para> + Wenn du auf einem Terminal abspielst, dann erzielst du mit dem Linux- + Treiber (<option>-aadriver linux</option>) bessere Ergebnisse als mit dem curses- + Treiber. Allerdings benötigst du dafür auch Schreibrechte auf + <filename>/dev/vcsa<replaceable><terminal></replaceable></filename>. + Das wird nicht automatisch von aalib festgestellt, aber vo_aa versucht, den + besten Modus herauszufinden. Lies + <ulink url="http://aa-project.sf.net/tune"/> für weitere Tuningtipps. +</para> +</sect2> + + +<sect2 id="caca"> +<title><systemitem class="library">libcaca</systemitem> - Color ASCII Art-Bibliothek</title> + +<para> + Die Bibliothek + <ulink url="http://sam.zoy.org/projects/libcaca/"><systemitem class="library">libcaca</systemitem></ulink> + ist eine Grafik-Bibliothek, Text anstatt Pixel ausgibt, sodass sie auf älteren + Grafikkarten oder Text-Terminals läuft. Sie ist der bekannten Bibliothek + <systemitem class="library">AAlib</systemitem> library nicht unähnlich. + <systemitem class="library">libcaca</systemitem> benötigt ein Terminal, um zu + funktionieren, deshalb sollte sie auf allen Unix-Systemen (inklusive Mac OS X) funktionieren, + wenn man entweder die <systemitem class="library">slang</systemitem>-Bibliothek oder die + <systemitem class="library">ncurses</systemitem>-Bibliothek verwendet, unter DOS die + <systemitem class="library">conio.h</systemitem>-Bibliothek und in Windows-Systemen + entweder <systemitem class="library">slang</systemitem> oder + <systemitem class="library">ncurses</systemitem> (durch Cygwin-Emulation) oder + <systemitem class="library">conio.h</systemitem> verwendet. Wenn + <filename>./configure</filename> <systemitem class="library">libcaca</systemitem> + entdeckt, wird der caca-Treiber gebaut. +</para> + +<itemizedlist> +<title>Die Unterschiede zu <systemitem class="library">AAlib</systemitem> sind + folgende:</title> +<listitem><simpara> + 16 verfügbare Farben für die Zeichenausgabe (256 Farbpaare) + </simpara></listitem> +<listitem><simpara> + Farbbild-Dithering + </simpara></listitem> +</itemizedlist> + +<itemizedlist> +<title>Aber <systemitem class="library">libcaca</systemitem> hat auch folgende + Einschränkungen:</title> +<listitem><simpara> + keine Unterstützung für Helligkeit, Kontrast, Gamma + </simpara></listitem> +</itemizedlist> + +<para> + Du kannst diese Tasten im caca-Fenster benutzen, um die Render-Optionen + zu beeinflussen: +</para> + +<informaltable> +<tgroup cols="2"> +<thead> + <row><entry>Taste</entry><entry>Aktion</entry></row> +</thead> +<tbody> +<row><entry><keycap>d</keycap></entry><entry> + zwischen den Dithering-Methoden von + <systemitem class="library">libcaca</systemitem> umschalten. + </entry></row> +<row><entry><keycap>a</keycap></entry><entry> + zwischen dem Antialiasing von <systemitem class="library">libcaca</systemitem> + umschalten. + </entry></row> +<row><entry><keycap>b</keycap></entry><entry> + zwischen dem Hintergrund <systemitem class="library">libcaca</systemitem> + umschalten. + </entry></row> +</tbody> +</tgroup> +</informaltable> + +<variablelist> +<title><systemitem class="library">libcaca</systemitem> suchtt auch nach + bestimmten Umgebungsvariablen:</title> +<varlistentry> + <term><option>CACA_DRIVER</option></term> + <listitem><simpara> + Setze den empfohlenen caca-Treiber. z.B. ncurses, slang, x11. + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>CACA_GEOMETRY (X11 only)</option></term> + <listitem><simpara> + Spezifiziere die Anzahl der Spalten und Zeeilen. Z.B. 128x50. + </simpara></listitem> +</varlistentry> +<varlistentry> + <term><option>CACA_FONT (X11 only)</option></term> + <listitem><simpara> + legt die zu verwendende Schrift fest. Z.B. fixed, nexus. + </simpara></listitem> +</varlistentry> +</variablelist> + +<para> + Nimm die Option <option>-framedrop</option>, wenn dein Rechner nicht schnell + genug ist, alle Frames anzuzeigen. +</para> + +</sect2> + + +<sect2 id="vesa"> +<title>VESA-Ausgabe über das VESA-BIOS</title> + +<para> + Dieser Treiber ist vom Design her ein <emphasis role="bold">generischer Treiber</emphasis> + für alle Grafikkarten, deren Bios VESA VBE 2.0 unterstützt. Ein weiterer + Vorteil dieses Treibers liegt darin, dass er versucht, den TV-Ausgang anzuschalten. + <citetitle>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</citetitle> + (Seite 70) hat folgendes zu sagen: +</para> + +<blockquote> +<formalpara><title>Designs für zwei Controller</title> +<para> + VBE 3.0 unterstützt zwei Controller dadurch, dass angenommen wird, + dass beide Controller vom gleichen OEM (Hardwarehersteller) stammen und + unter Kontrolle desselben BIOS auf derselben Grafikkarte sitzen. Somit ist + es möglich, die Tatsache, dass zwei Controller vorhanden sind, vor der + Anwendung zu verbergen. Dies verhindert zwar, dass beide Controller + unabhängig voneinander gesteuert werden, erlaubt andererseits aber, + dass Anwendungen weiterhin problemlos funktionieren, die vor Erscheinen der + VBE-3.0-Spezifikation geschrieben wurden. Die VBE-Funktion 00h (Auskunft + über die Controller, Return Controller Information) gibt + dementsprechend die kombinierten Informationen über beide Controller + zurück, was auch eine kobinierte Liste der vorhandenen Grafikmodi + einschließt. Sobald eine Anwendung einen Grafikmodus wählt, wird + der entsprechende Controller aktiviert. Alle weiteren VBE-Funtkionen werden + dann auf diesem Controller ausgeführt. +</para> +</formalpara> +</blockquote> + +<para> + Somit hast du also eine Chance, den TV-Ausgang mit diesem Treiber zum + Laufen zu bringen. + (Ich vermute, dass der TV-Ausgang normalerweise auf einer separaten + Grafikkarte oder zumindest ein separater Ausgang ist.) +</para> + +<itemizedlist spacing="compact"> +<title>VORTEILE</title> +<listitem><simpara> + Du hast die Möglichkeit, selbst dann Filme anzusehen, wenn + <emphasis role="bold">Linux nichts von deiner Grafikhardware weiß</emphasis>. +</simpara></listitem> +<listitem><simpara> + Du musst keine einzige Grafikanwendung installiert haben (wie + X11/XFree86, fbdev usw.). Dieser Treiber wird im + <emphasis role="bold">Textmodus</emphasis> + benutzt. +</simpara></listitem> +<listitem><simpara> + Die Chancen stehen gut, dass der <emphasis role="bold">TV-Ausgang funktioniert</emphasis>. + (Es funktioniert nachweislich zumindest auf ATI-Karten.) +</simpara></listitem> +<listitem><simpara> + Dieser Treiber ruft wirklich die <function>int 10h</function>-Routine auf und ist + dementsprechend kein Emulator - er ruft <emphasis role="bold">echte</emphasis> + Funktionen des <emphasis>echten</emphasis> BIOS im <emphasis>Real</emphasis>-Modus + auf (bzw. im vm68-Modus). +</simpara></listitem> +<listitem><simpara> + Du kannst den Treiber zusammen mit VIDIX benutzen und erhälst + dadurch gleichzeitig hardwarebeschleunigte Grafikanzeige + <emphasis role="bold">und</emphasis> den TV-Ausgang! (für ATI-Karten empfohlen) +</simpara></listitem> +<listitem><simpara> + Wenn du ein VESA-VBE-3.0+-BIOS hast und irgendwo die Optionen + <option>monitor-hfreq</option>, <option>monitor-vfreq</option>, + <option>monitor-dotclock</option> angegeben werden (Kommandozeile, + Konfigurationsdatei), dann bekommst du die höchstmögliche + Bildwiederholrate (mit den generischen Timingformeln). Um dieses Feature + zu aktivieren, müssen <emphasis role="bold">alle</emphasis> + Monitoroptionen angegeben werden. +</simpara></listitem> +</itemizedlist> + +<itemizedlist spacing="compact"> +<title>NACHTEILE</title> +<listitem><simpara> + Der Treiber funtkioniert nur auf <emphasis role="bold">x86-Systemen</emphasis>. +</simpara></listitem> +<listitem><simpara> + Er kann nur von <systemitem class="username">root</systemitem> benutzt werden. +</simpara></listitem> +<listitem><simpara> + Momentan ist er nur für <emphasis role="bold">Linux</emphasis> verfügbar. +</simpara></listitem> +</itemizedlist> + +<important> +<para> + Benutz diesen Treiber nicht mit <emphasis role="bold">GCC 2.96</emphasis>! + Das wird nicht funktionieren! +</para> +</important> + +<variablelist> +<title>BEI VESA VERFÜGBARE KOMMANDOZEILENOPTIONEN</title> +<varlistentry> + <term><option>-vo vesa:<replaceable>opts</replaceable></option></term> + <listitem><simpara> + momentan erkannte Optionen <literal>dga</literal>, um den DGA-Modus zu erzwingen + und <literal>nodga</literal>, um ihn zu deaktivieren. Im DGA-Modus kannst du den + Doppelpuffermodus mit <option>-double</option> aktivieren. Anmerkung: Du + kannst diese Parameter auch weglassen, um die <emphasis role="bold">automatische + Erkennung</emphasis> des DGA-Modus zu ermöglichen. + </simpara></listitem> +</varlistentry> +</variablelist> + +<itemizedlist spacing="compact"> +<title>BEKANNTE PROBLEME UND WIE MAN SIE UMGEHT</title> +<listitem><simpara> + Wenn du unter Linux eine <emphasis role="bold">NLS</emphasis>-Schrift + verwendest und du den VESA-Treiber aus dem Textmodus heraus aufrufst, + dann wird nach dem Beenden von <application>MPlayer</application> die + <emphasis role="bold">ROM-Schrift</emphasis> anstelle der nationalen + geladen sein. Du kannst die nationale Schriftart erneut mit + <command>setsysfont</command> laden, das z.B. bei Mandrake zur + Distribution gehört. (<emphasis role="bold">Tipp:</emphasis> Das + gleiche Tool wird für die Lokalisation von fbdev verwendet.) +</simpara></listitem> +<listitem><simpara> + Eine <emphasis role="bold">Linux-Grafiktreiber</emphasis> aktualisieren + nicht den aktiven <emphasis role="bold">BIOS-Modus</emphasis> im DOS-Speicher. + Wenn du also so ein Problem hast, dann benutze den VESA-Treiber nur aus dem + <emphasis role="bold">Textmodus</emphasis> heraus. Andernfalls + wird immer der Textmodus (#03) aktiviert werden, und du wirst den + Computer neustarten müssen. +</simpara></listitem> +<listitem><simpara> + Oftmals siehst du nur einen <emphasis role="bold">schwarzen Bildschirm</emphasis>, + wenn der VESA-Treiber beendet wird. Um die Anzeige wieder in den richtigen Zustand + zu versetzen, wechsele einfach zu einer anderen Console (mit + <keycap>Alt</keycap>+<keycap>F<x></keycap>) und wieder zurück. +</simpara></listitem> +<listitem><simpara> + Um eine <emphasis role="bold">funktionierenden TV-Ausgabe</emphasis> zu erhalten, + musst du das TV-Kabel eingesteckt haben, bevor du deinen PC bootest, da das BIOS + nur einmal während der POST-Phase initialisiert wird. +</simpara></listitem> +</itemizedlist> +</sect2> + + +<sect2 id="x11"> +<title>X11</title> + +<para> + Vermeide diesen Treiber, wenn's geht. Er benutzt X11 (mit den Shared- + Memory-Erweiterungen) ohne jegliche Hardwarebeschleunigung. Unterstützt + MMX-/3DNow/SSE-beschleunigte Softwareskalierung mit den Optionen + <option>-fs -zoom</option>, aber die ist trotzdem langsam. Die meisten + Karten bieten Unterstützung für Hardwareskalierung. Benutze also + <option>-vo xv</option> in den meisten fällen bzw. <option>-vo xmga</option> + bei Matrox-Karten. +</para> + +<para> + Ein Problem liegt darin, dass die meisten Grafikkartentreiber + Hardwarebeschleunigung nicht beim zweiten Ausgang/beim TV-Ausgang + unterstützen. In diesen Fällen siehst du nur ein grünes/blaues + Fenster anstelle des Films. Hier ist der X11-Treiber ganz praktisch, aber du + brauchst trotzdem eine schnelle CPU für die Softwareskalierung. Benutze + nicht den SDL-Ausgabetreiber und SDLs Skalierer, da dieser eine schlechtere + Qualität bietet! +</para> + +<para> + Softwareskalierung ist sehr langsam. Versuch also besser, vorher in einen + anderen Videomodus zu schalten. Das ist sehr einfach. Such die + <link linkend="dga-modelines">Modelines in der DGA-Sektion</link> und füge sie + in deine <filename>XF86Config</filename> ein. + +<itemizedlist spacing="compact"> +<listitem><simpara> + Wenn du XFree86 4.x.x hast, dann benutze die Option <option>-vm</option>. + MPlayer wird dann die Auflösung in diejenige ändern, + in die dein Film am besten hineinpasst. Wenn das nicht funktioniert: +</simpara></listitem> +<listitem><simpara> + Unter XFree86 3.x.x musst du mit + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>plus</keycap> + und + <keycap>Ctrl</keycap>+<keycap>Alt</keycap>+<keycap>minus</keycap> + die Auflösung ändern. +</simpara></listitem> +</itemizedlist> +</para> + +<para> + Wenn du die soeben eingefügten Modi nicht wiederfindest, dann schau + dir die Ausgabe von XFree86 an. Einige Treiber können nicht die + niedrigen Pixelclock-Werte benutzen, die für niedrige Auflösungen + vonnöten sind. +</para> +</sect2> + + +<sect2 id="vidix"> +<title>VIDIX</title> + +<formalpara> +<title>EINLEITUNG</title> +<para> + <acronym>VIDIX</acronym> ist die Abkürzung für <emphasis role="bold">VID</emphasis>eo + <emphasis role="bold">I</emphasis>nterface für + *ni<emphasis role="bold">X</emphasis> (Video-Schnittstelle für *n*x). + VIDIX wurde entworfen, um eine Schnittstelle für schnelle Userspacetreiber für + Grafikkarten zur Verfügung zu stellen, so wie es mga_vid für + Matrox-Karten tut. VIDIX ist ebenfalls sehr portabel. +</para> +</formalpara> +<para> + Diese Schnittstelle wurde als Versuch entworfen, den vorhandenen + Schnittstellen für Videobeschleunigung (mga_vid, rage128_vid, + radeon_vid, pm3_vid) ein einheitliches Dach zu geben. Sie stellt einen + einheitlichen Highlevel-Zugang zu BES- und OV-Chips zur Verfügung + (BackEnd Scaler und Video Overlays). Sie stellt keine Lowlevel-Funktionen + für z.B. Grafikserver zur Verfügung. (Ich möchte nicht mit dem + X11-Leuten in Sachen Grafikmodusumschaltung konkurieren.) Das Ziel dieser + Schnittstelle liegt also einfach darin, die höchstmögliche + Geschwindigkeit bei der Videowiedergabe zu erreichen. +</para> + +<itemizedlist spacing="compact"> +<title>VERWENDUNG</title> +<listitem><simpara> + Du kannst den eigenständigen Videotreiber benutzen: + <option>-vo vidix</option> + Dieser Treiber wurde als das X11-Frontend für die VIDIX-Technologie + entwickelt. Er benötigt dementsprechend einen X-Server und + funktioniert auch nur unter X. Beachte, dass der Pixmap-Cache korumpiert + werden kann, weil der Treiber unter Umgehung des X-Treibers direkt auf + die Hardware zugreift. Du kannst das dadurch verhindern, dass du die von + X verwendete Menge des Grafikspeichers verringerst. Benutze dafür + die Option "VideoRam" in der "device"-Sektion der + <filename>XF86Config</filename>. Du solltest da die installierte Menge + Grafikspeicher minus 4MB eintragen. Wenn du über weniger als 8MB + Grafikspeicher verfügst, dann solltest du stattdessen die Option + "XaaNoPixmapCache" in der "screen"-Sektion verwenden. + </simpara></listitem> +<listitem><simpara> + Es gibt einen VIDIX-Treiber für die Konsole: <option>-vo cvidix</option>. + Dieser benötigt für die meisten Karten einen funktionierenden und + initialisierten Framebuffer (oder du wirst stattdessen den Bildschirm + in Unordnung bringen) und wirst einen Effekt ähnlich wie mit + <option>-vo mga</option> oder <option>-vo fbdev</option> bekommen. + nVidia-Karten sind dagegen in der Lage, wirkliches grafisches Video + auf einer echten Text-Konsole auszugeben. Im Abschnitt + <link linkend="vidix-nvidia">nvidia_vid</link> wirst du mehr Informationen + dazu finden. + </simpara></listitem> +<listitem><simpara> + Du kannst auch das VIDIX-Untergerät verwenden, das bei vielen + Treibern zur Verfügung steht: + <option>-vo vesa:vidix</option> (<emphasis role="bold">nur unter Linux</emphasis>) + und <option>-vo fbdev:vidix</option> + </simpara></listitem> +</itemizedlist> + +<para> + Es ist in der Tat nicht wichtig, welcher Videoausgabetreiber mit + <emphasis role="bold">VIDIX</emphasis> verwendet wird. +</para> + +<itemizedlist spacing="compact"> +<title>ANFORDERUNGEN</title> +<listitem><simpara> + Die Grafikkarte sollte sich gerade im Grafikmodus befinden (ausser + nVidia-Karten mit den <option>-vo cvidix</option> Ausgabe-Treibern). +</simpara></listitem> +<listitem><simpara> + <application>MPlayer</application>s Videoausgabetreiber sollte den + aktiven Videomodus kennen und in der Lage sein, dem VIDIX-Untergerät + ein paar Charakteristika des X-Servers mitzuteilen. +</simpara></listitem> +</itemizedlist> + +<formalpara> +<title>BEDIENUNGSMETHODEN</title> +<para> + Wenn VIDIX als <emphasis role="bold">Untergerät</emphasis> + (<option>-vo vesa:vidix</option>) benutzt wird, dann wird die Konfiguration + des Videomodus vom Videoausgabegerät erledigt (kurz + <emphasis role="bold">vo_server</emphasis>). Deswegen kannst du für + <application>MPlayer</application> die gleichen Kommandozeilenparameter wie + für vo_server verwenden. + Zusätzlich ist die Option <option>-double</option> als global sichtbarer + Parameter verfügbar. (Ich empfehle diese Option zumindest bei VIDIX und + ATI-Karten.) <option>-vo xvidix</option> erkennt momentan die folgenden + Optionen: <option>-fs -zoom -x -y -double</option>. +</para> +</formalpara> +<para> + Du kannst den VIDIX-Treiber auch direkt als drittes Teilargument auf der + Kommandozeile angeben: + + <screen>mplayer -vo xvidix:mga_vid.so -fs -zoom -double <replaceable>file.avi</replaceable></screen> + oder + <screen>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 <replaceable>file.avi</replaceable></screen> + + Das ist allerdings gefährlich, und du solltest das lieber nicht tun. + Hierbei wird die Verwendung des angegebenen Treibers erzwungen, und das + Resultat ist unklar (dein Computer könnte sogar + <emphasis role="bold">abstürzen</emphasis>). + Du solltest das wirklich NUR DANN tun, wenn du absolut sicher bist, dass es + funktioniert und <application>MPlayer</application> es nicht eh schon + automatisch auswählt. + Berichte den Entwicklern von deinen Erfahrungen. Die korrekte Art, VIDIX zu + benutzen, ist ohne das dritte Teilargument, sodass <application>MPlayer</application> + automatisch den richtigen Treiber aussucht. +</para> + +<para> + VIDIX ist eine sehr junge Technologie. Es ist deshalb gut möglich, + dass sie auf deinem System nicht funktioniert. In diesem + Fall liegt deine einzige Möglichkeit darin, VIDIX auf dein System zu + portieren (hauptsächlich die libdha). Aber es gibt immer + noch die Hoffnung, dass es auf den Systemen funktioniert, auf denen auch X11 + funktioniert. +</para> + +<para> + Da VIDIX direkten Zugriff auf die Hardware benötigt, musst du + <application>MPlayer</application> entweder als + <systemitem class="username">root</systemitem> starten oder der + Programmdatei das SUID-Bit setzen (<emphasis role="bold">WARNUNG: + Das ist ein Sicherheitsrisiko!</emphasis>). + Alternativ kannst du auch spezielle Kernelmodule benutzen: +</para> + +<procedure> +<step><para> + Lade dir die + <ulink url="http://www.arava.co.il/matan/svgalib/">Entwicklerversion</ulink> + der svgalib herunter (z.B. 1.9.17), + <emphasis role="bold">ODER</emphasis> lade dir eine von Alex speziell für + die Benutzung mit <application>MPlayer</application> modifizierte Version + (die nicht die svgalib-Sourcen zum Compilieren benötigt) + <ulink url="http://www.mplayerhq.hu/MPlayer/contrib/svgalib/svgalib_helper-1.9.17-mplayer.tar.bz2">hier</ulink> + herunter. +</para></step> +<step><para> + Compiliere das Modul im <filename class="directory">svgalib_helper</filename>-Verzeichnis + (das im <filename class="directory">svgalib-1.9.17/kernel/</filename>-Verzeichnis + gefunden werden kann, wenn du die Sourcen von der svgalib-Seite heruntergeladen hast) + und lade es mit insmod. +</para></step> +<step><para> + Um die entsprechenden geräte im <filename class="directory">/dev</filename>-Verzeichnis + zu erstellen, führe ein <screen>make device</screen> im Verzeichnis + <filename class="directory">svgalib_helper</filename> als + <systemitem class="username">root</systemitem> aus. +</para></step> +<step><para> + Verschiebe das Verzeichnis <filename class="directory">svgalib_helper</filename> + nach <filename class="directory">mplayer/main/libdha/svgalib_helper</filename>. +</para></step> +<step><para> + Wenn du die Sourcen von der svgalib-Seite heruntergeladen hast, dann musst + du den Kommentar vor der CFLAGS-Zeile entfernen, die "svgalib_helper" + enthält, und die sich in <filename class="directory">libdha/Makefile</filename> + befindet. +</para></step> +<step><para> + Compiliere erneut und installiere libdha. +</para></step> +</procedure> + +<sect3 id="vidix-ati"> +<title>ATI-Karten</title> +<para> + Momentan werden die meisten ATI-Karten unterstützt, von der Mach64 + bis hin zur neuesten Radeon. +</para> + +<para> + Es gibt zwei compilierte Binaries: <filename>radeon_vid</filename> für Radeons + und <filename>rage128_vid</filename> für Rage128-Karten. Du kannst entweder eine + der beiden erzwingen oder das VIDIX-System automatisch alle verfügbaren + Treiber ausprobieren lassen. +</para> +</sect3> + +<sect3 id="vidix-mga"> +<title>Matrox-Karten</title> +<para> + Matrox G200, G400, G450 und G550 sollen funktionieren. +</para> + +<para> + Der Treiber unterstützt Videoequalizer und sollte fast genauso schnell + wie der <link linkend="mga_vid">Matrox-Framebuffer</link> sein. +</para> +</sect3> + +<sect3 id="vidix-trident"> +<title>Trident-Karten</title> +<para> + Es gibt einen Treiber für den Trident Cyberblade/i1-Chipsatz, der auf + VIA Epia-Mainboards eingesetzt wird. +</para> + +<para> + Der Treiber wurde von + <ulink url="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">Alastair M. Robinson</ulink> + geschrieben und weiterentwickelt. +</para> +</sect3> + +<sect3 id="vidix-3dlabs"> +<title>3DLabs-Karten</title> +<para> + Auch wenn es einen Treiber für 3DLabs GLINT R3-Chips und Permedia3-Chips + gibt, so hat noch niemand diese getestet. Feedback wird deswegen gern gesehen. +</para> +</sect3> + +<sect3 id="vidix-nvidia"> +<title>nVidia-Karten</title> +<para> + Es gibt relativ neuen nVidia-Treiber, der bekanntermaßen mit Riva + 128, TNT und GeForce2-Chipsets finktioniert, auch andere sollen gehen. +</para> + +<itemizedlist spacing="compact"> +<title>EINSCHRÄNKUNGEN</title> +<listitem><para> + Es wird empfohlen, die binären nVidia-Treiber eher als die VIDIX-Treiber + für X zu nutzen, da einiger der Register, die initialisiert werden müssen, + noch nicht entdeckt wurden, somit es möglicherweise mit dem Open Source + XFree86 <filename>nv.o</filename>-Treiber fehlschlagen. + </para></listitem> +<listitem><para> + Im Moment können nur zur UYVY-Farbraumausgabe fähige Codecs in Verbindung + mit diesen Treibern arbeiten. Unglücklicherweise schließt durch die Bank jeden + Decoder der <systemitem class="library">libavcodec</systemitem>-Familie aus. + Dadurch stehen nur folgende verbreiteten Codecs zur Wahl: + <systemitem>cvid, divxds, xvid, divx4, wmv7, wmv8</systemitem> und einige + weiteren. Beachte bitte, dass dies nur eine temporäre Schwierigkeit darstellt. + Dei Gebrauchs-Syntax ist folgende: + <screen>mplayer -vf format=uyvy -vc divxds <replaceable>divx3file.avi</replaceable> + </screen> + </para></listitem> +</itemizedlist> + +<para> + Ein einmaliges Feature des nvidia_vid-Treibers ist seine Fähigkeit, Video auf + <emphasis role="bold">einfacher, purer Textkonsole</emphasis> darzustellen - ohne + Framebuffer oder X magic oder was auch immer. Zu diesem Zweck müssen wir + die <option>cvidix</option>-Videoausgabe verwenden, wie folgendes Beispiel zeigt: + <screen>mplayer -vf format=uyvy -vc divxds -vo cvidix <replaceable>example.avi</replaceable> + </screen> +</para> + +<para> + Berichte erwartet! +</para> +</sect3> + +<sect3 id="vidix-sis"> +<title>SiS-Karten</title> +<para> + Dies ist ein sehr experimenteller Code, ähnlichnvidia_vid. +</para> + +<para> + Er wurde auf SiS 650/651/740 getestet (die verbreitetsten Chipsets in den + SiS-Versionen der Boxen von "Shuttle XPC"-Barebones) +</para> + +<para> + Berichte erwartet! +</para> +</sect3> +</sect2> + +<sect2 id="directfb"> +<title>DirectFB</title> +<blockquote><para> + "DirectFB ist eine Grafikbibliothek, deren Zielplattform eingebettete + Systeme sind. Sie bietet maximale Hardwarebeschleunigung bei minimalem + Ressourcenverbrauch und minimalem Overhead." - Zitat von + <ulink url="http://www.directfb.org"/>. +</para></blockquote> + +<para> + Ich lasse die DirectFB-Features in dieser Sektion weg. +</para> + +<para> + Obwohl <application>MPlayer</application> nicht als "Videoprovider" + bei DirectFB unterstützt wird, bietet dieser Treiber Videowiedergabe mittels + DirectFB. Die Wiedergabe ist - natürlich - hardwarebeschleunigt. Bei + meiner Matrox G400 war der DirectFB genauso schnell wie XVideo. +</para> + +<para> + Versuche immer die neueste Version von DirectFB zu verwenden. Du kannst + DirectFB-Optionen mit der <option>-dfbopts</option>-Option auf der Kommandozeile + angeben. Layer-Auswahl erfolgt durch Angabe als Teilargument, z.B. mit + <option>-vo directfb:2</option> (Layer -1 ist der Standardwert: automatische + Layerauswahl). +</para> +</sect2> + +<sect2 id="dfbmga"> +<title>DirectFB/Matrox (dfbmga)</title> +<para> + Bitte lies die + <link linkend="directfb">DirectFB-Sektion</link> für generelle + Informationen über DiretcFB. +</para> + +<para> + Dieser Videoausgabetreiber wird auf einer Matrox G400/G450/G550-Karten + den CRTC2 (des zweiten Ausgangs) aktivieren und damit das Video + <emphasis role="bold">unabhängig</emphasis> vom primären Ausgang anzeigen. +</para> + +<para> + Anweisungen, um dies zum Laufen zu bringen, stehen direkt in der + <ulink url="http://www.sci.fi/~syrjala/directfb/matrox-tv-out-howto">HOWTO</ulink> + oder der + <ulink url="http://www.sci.fi/~syrjala/directfb/Matrox_TV-out_README.txt">README</ulink> + auf der Homepage von Ville Syrjala. +</para> + +<note><para> + Die erste DirectFB-Version, mir der wir das zum Laufen gebracht haben, war + 0.9.17 (sie ist fehlerhaft, benötigt den <systemitem>surfacemanager</systemitem> von + oben erwähnter URL). Wie auch immer, eine Portierung des CRTC2-Codes für + <link linkend="mga_vid">mga_vid</link> ist bereits in Arbeit. + <ulink url="../../tech/patches.txt">Patches</ulink> sind willkommen. +</para></note> +</sect2> +</sect1> + +<sect1 id="mpeg_decoders"> +<title>MPEG-Dekoderkarten</title> + +<sect2 id="dvb"> +<title>DVB-Output und -Input</title> +<para> + <application>MPlayer</application> unterstützt Karten mit dem Siemens-DVB-Chipsatz von + Herstellern wie Siemens, Technotrend, Galaxis oder Hauppauge. Die neuesten + DVB-Treiber gibt's auf der + <ulink url="http://www.linuxtv.org">Linux TV-Seite</ulink>. Wenn du in + Transcodierung in Software machen willst, dann brauchst du eine CPU mit mindestens 1GHz. +</para> + +<para> + <filename>configure</filename> sollte automatisch deine DVB-Karte erkennen. Wenn + es das nicht tut, dann erzwinge DVB-Unterstützung mit +</para> + +<para><screen>./configure --enable-dvb</screen></para> + +<para> + Wenn die ost-Headerdateien nicht an ihrem normalen Platz liegen, dann gib + explizit den Pfad zu ihnen an mit: +</para> + +<para> +<screen>./configure --with-extraincdir=<replaceable>DVB-Source-Verzeichnis</replaceable>/ost/include +</screen> +</para> + +<para> + Dann compiliere und installiere wie sonst auch. +</para> + +<formalpara> +<title>BEDIENUNG</title> +<para> + Hardwaredecodierung (Abspielen von Standard-MPEG1/2-Dateien) geschieht mit + diesem Kommando: +</para> +</formalpara> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes <replaceable>file.mpg|vob</replaceable> +</screen> +</para> + +<para> + Softwaredecodierung oder die Transcodierung verschiedener Formate nach + MPEG1 klappt so: +</para> +<para> +<screen> +mplayer -ao mpegpes -vo mpegpes <replaceable>yourfile.ext</replaceable> +mplayer -ao mpegpes -vo mpegpes -vf expand <replaceable>yourfile.ext</replaceable> +</screen> +</para> + +<para> + Beachte, dass DVB-Karten nur bestimmte Bildhöhen unterstützen: + 288 und 576 für PAL und 240 und 480 für NTSC. Du + <emphasis role="bold">musst</emphasis> das Bild vorher skalieren, wenn + die Höhe nicht einer der oben erwähnten entspricht: + <option>-vf scale=width:height</option>. DVB-Karten + unterstützen eine Vielzahl von horizontalen Auflösungen wie z.B. + 720, 704, 640, 512, 480, 352 etc. Sie skalieren horizontal selber in + Hardware, sodass du meistens nicht in horizontaler Richtung skalieren musst. + Bei einem 512x384-MPEG4 (DivX) (Verhältnis 4:3) kannst du folgendes probieren: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf scale=512:576 +</screen> +</para> + +<para> + Wenn du einen Widescreen-Film hast und du ihn nicht auf die volle + Höhe skalieren möchtest, dann kannst du den <option>expand=w:h</option>-Filter + benutzen, um schwarze Balken hinzuzufügen. + Um ein 640x384-MPEG4 (DivX) anzuschauen: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> + Wenn deine CPU für 720x576-MPEG4 (DivX) zu langsam ist, dann skalier + herunter: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> + Wenn sich die Geschwindigkeit nicht verbessert, dann skalier auch in + vertikaler Richtung: +</para> + +<para> +<screen>mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 <replaceable>file.avi</replaceable> +</screen> +</para> + +<para> + Für ein OSD und Untertitel kannst du das OSD-Feature des expand- + Filters benutzen. Anstelle von <option>expand=w:h</option> oder + <option>expand=w:h:x:y</option> benutzt du dafür + <option>expand=w:h:x:y:1</option> (der fünfte Parameter <option>:1</option> + schaltet die OSD-Anzeige an). Eventuell willst du das Bild ein wenig nach + oben schieben, um unten mehr Platz für die Untertitel zu haben. + Vielleicht willst du auch die Untertitel hochschieben, wenn sie ansonsten + außerhalb des Sichtbereiches des Fernsehers liegen. Das kannst du mit + <option>-subpos <0-100></option> erreichen, wobei + <option>-subpos 80</option> meistens eine gute Wahl darstellt. +</para> + +<para> + Um Filme mit weniger/mehr als 25 Frames pro Sekunde auf einem + PAL-Fernseher abzuspielen, oder wenn du eine langsame CPU hast, + verwende die Option <option>-framedrop</option>. +</para> + +<para> + Um das Höhen-/Breitenverhältnis des MPEG4 (DivX) beizubehalten und + trotzdem die optimalen Skalierungsparameter zu verweden (Hardwareskalierung + in horizontaler Richtung und Softwareskalierung in vertikaler Richtung unter + Beibehaltung des richtigen Höhen-/Breitenverhältnisses), benutze + den neuen dvbscale-Filter: +</para> + +<para><screen> +for a 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 +for a 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1 +</screen></para> + +<formalpara> +<title>Digitales TV (DVB-Input-Modul)</title> +<para> + Du kannst deine DVB-Karte zum Ansehen digitales TVs verwenden. +</para> +</formalpara> + +<para> + Du solltest das <command>scan</command> des Programms und + <command>szap/tzap/czap/azap</command> installiert haben; sie sind alle + im Treiberpaket enthalten. +</para> + +<para> + Überprüfe, ob die Treiber sauber mit dem Programm wie etwa + <ulink url="http://sf.net/projects/dvbtools/"><command>dvbstream</command></ulink> + arbeiten (das ist die Basis des DVB-Input-Moduls). +</para> + +<para> + Jetzt solltest du eine Datei <filename>~/.mplayer/channels.conf</filename> + mit der von <command>szap/tzap/czap/azap</command> Syntax compilieren oder + es von <command>scan</command> für dich compilieren lassen. +</para> + +<para> + Hast du mehr als einen Kartentyp (z.B. Satellitar, Terrestrial, Cable und ATSC), + kannst due deine Kanaldateien als + <filename>~/.mplayer/channels.conf.sat</filename>, + <filename>~/.mplayer/channels.conf.ter</filename>, + <filename>~/.mplayer/channels.conf.cbl</filename>, + und respective <filename>~/.mplayer/channels.conf.atsc</filename>, + speichern, um <application>MPlayer</application> unbedingt darauf + hinzuweisen, eher diese Dateien zu verwenden als + <filename>~/.mplayer/channels.conf</filename> + und du musst angeben, welche karte du verwendest. +</para> + +<para> + Stelle sicher, dass du <emphasis>nur</emphasis> frei ausgestrahlte + Kanäle in deiner Datei <filename>channels.conf</filename> hast, oder + <application>MPlayer</application> wird versuchen, den als nächstes + sichtbaren zu überspringen, wobei es lange dauern kann, wenn es + viele aufeinander folgende verschlüsselte Kanäle gibt. +</para> + +<para> + In deinen Audio- und Videofeldern kannst du eine erweiterte Syntax + anwenden: + <option>...:pid[+pid]:...</option> (für ein Maximum von 6 pids bei + jedem); in diesem Fall wird <application>MPlayer</application> + alle gezeigt pids enbinden, plus pid 0 (welche das PAT enthält). + Bindet ruhig in jede Spalte die PMT pid für den + korrespondierenden Kanal ein (falls du ihn kennst). + Ander mögliche Anwendungen sind: televideo pid, zweiter Audio-Track, etc. +</para> + + +<para> + Um den ersten der in deiner Liste vorhandenen Kanäle anzuzeigen, + führe folgendes aus +</para> + +<screen> + mplayer dvb:// +</screen> + +<para> + Willst du einen bestimmten Kanal wie z.B. R1 ansehen, such as R1, + führe dies aus +</para> + +<screen> + mplayer dvb://R1 +</screen> + +<para> + Hast du mehr als eine Karte, musst du die Nummer der Karte, in der + der Kanal zu sehen ist (z.B. 2) mit dieser Syntax angeben: +</para> + +<screen> + mplayer dvb://2@R1 +</screen> + +<para> + Um Kanäle zu wechseln, drücke die Tasten <keycap>h</keycap> (nächster) + und <keycap>k</keycap> (vorheriger) oder verwende das OSD-Menü (erfordert + ein funktionierendes <link linkend="subosd">OSD-Subsystem</link>). +</para> + +<para> + Wenn deine <filename>~/.mplayer/menu.conf</filename> einen Eintrag + <literal><dvbsel></literal> enthält, wie der in der Beispieldatei + <filename>etc/dvb-menu.conf</filename> (die du zum Überschreiben der + <filename>~/.mplayer/menu.conf</filename> nutzen kannst), wird das Hauptmenü + einen Untermeüeintrag anzeigen, der dir die Wahl des Kanal-Presets in deiner + <filename>channels.conf</filename> erlaubt, womöglich gefolgt von einem + Menü mit der Liste der verfügbaren Karten, falls mehr als eine + von <application>MPlayer</application> genutzt werden kann. +</para> + +<para> + Willst du ein Programm auf die Festplatte speichern, nimm +</para> + +<screen> + mplayer -dumpfile r1.ts -dumpstream dvb://R1 +</screen> + +<para> + Willst du ihn stattdessen in einem anderen Format aufnehmen (ihn neu encodieren), + kannst du einen Befehl wie diesen ausführen +</para> + +<screen> + mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1 +</screen> + +<para> + Lies dir in der Man Page eine Liste von Optionen durch, die du an das DVB-Input-Modul + übergeben kannst. +</para> + +<formalpara> +<title>AUSBLICK</title> +<para> + Wenn du Fragen hast oder an der Diskussion über zukünfitge + Features teilnehmen willst, dann melde dich an unserer + <ulink url="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</ulink> + Mailingliste an. Denk bitte daran, dass dort Englisch gesprochen wird. +</para> +</formalpara> + +<para> + Für die Zukunft kannst du mit der Möglichkeit, das OSD und die + Untertitel mit den eingebauten Funktionen der DVB-Karten anzuzeigen, mit + flüssigerer Wiedergabe von Filmen mit weniger/mehr als 25 Bildern pro + Sekunde und mit Echtzeit-Transcodierung zwischen MPEG2 und MPEG4 (partielle + Dekompression) rechnen. + +</para> +</sect2> + +<sect2 id="dxr2"> +<title>DXR2</title> +<para> + <application>MPlayer</application> unterstützt Hardware-beschleunigtes + Playback mit der Creative DXR2-Karte.</para> +<para> + Zuerst brauchst du einen richtig installierten DXR2-Treiber. Du kannst + die Treiber und Installationshinweise auf der Seite + <ulink url="http://dxr2.sf.net/">DXR2 Resource Center</ulink> finden. +</para> + +<variablelist> +<title>BEDIENUNG</title> +<varlistentry> +<term><option>-vo dxr2</option></term> +<listitem><para>aktiviere TV-Ausgabe</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-vo dxr2:x11</option> or <option>-vo dxr2:xv</option></term> +<listitem><para>aktiviere Overlay-Ausgabe in X11</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-dxr2 <option1:option2:...></option></term> +<listitem><para>Diese Option wird zur Kontrolle des DXR2-Treiber verwendet.</para></listitem> +</varlistentry> +</variablelist> + +<para> + Der auf DXR2 genutzte Overlay-Chipset ist von sehr schlechter Qualität, + die Standard-Einstellungen sollten aber bei jedem funktionieren. + Das OSD kann eventuell mit Overlay genutzt werden (nicht bei TV), + indem es im colorkey eingetragen wird. Mit den Standard-Einstellungen des + colorkey bekommst du evtl. variable Ergebnisse, gewöhnlich wirst du den + colorkey rund um die Zeichen sehen oder einige anderen lustigen Effekte. + Aber wenn due die colorkey-Einstellungen korrekt anpasst, solltest du in der + Lage sein, an akzeptable Resultate zu kommen. +</para> + +<para>Lies bitte in der Man Page über die vorhandenen Optionen.</para> +</sect2> + +<sect2 id="dxr3"> +<title>DXR3/Hollywood+</title> +<para> + <application>MPlayer</application> unterstützt die hardwarebeschleunigte + Wiedergabe mit den Karten Creative DXR3 und Sigma Designs Hollywood Plus. + Beide Karten basieren auf dem em8300-MPEG-Decoderchip von Sigma Designs. +</para> + +<para> + Als erstes brauchst du korrekt installierte DXR3/H+-Treiber, Version + 0.12.0 oder neuer. Diese Treiber und weitere Installationsanweisungen findest + du auf der Seite + <ulink url="http://dxr3.sf.net/">DXR3 & Hollywood Plus for Linux</ulink>. + <filename>configure</filename> sollte die Karte automatisch + finden. Die Compilierung sollte auch problemlos funktionieren. +</para> + +<!-- FIXME: find a more clear presentation --> +<variablelist> +<title>BEDIENUNG</title> +<varlistentry> +<term><option>-vo dxr3:prebuf:sync:norm=x:<replaceable>device</replaceable></option></term> +<listitem> +<para> + <option>overlay</option> aktiviert das Overlay anstelle des TV-Ausgangs. + Dafür brauchst du ein korrekt konfiguriertes Overlaysetup. Am einfachsten + konfigurierst du das Overlay mit dem Tool <filename>autocal</filename>. + Danach starte <application>MPlayer</application> mit dxr3-Ausgabe und + ohne Overlay anzuschalten. Starte <filename>dxr3view</filename>. Mit dxr3view + kannst du die Overlayeinstellungen verändern und siehst die + Auswirkungen sofort. Eventuell wird dieses Feature irgendwann vom + <application>MPlayer</application>-GUI unterstützt. Wenn du das Overlay richtig + eingestellt hast, dann brauchst du dxr3view nicht mehr laufen zu lassen. +</para> +<para> + <option>prebuf</option> schaltet Prebuffering ein. Das ist ein Feature des + em8300-Chips, das es ihm ermöglicht, mehr als nur ein Bild + gleichzeitig zu speichern. Das bedeutet, dass <application>MPlayer</application> + in diesem Modus versucht, den Puffer ständig mit Daten gefüllt zu halten. + Wenn du einen langsamen Rechner hast, dann wird <application>MPlayer</application> + wahrscheinlich die meiste Zeit über knapp oder genau 100% der CPU-Zeit belegen. + Das ist vor allem dann der Fall, wenn du echte MPEG-Streams (z.B. DVDs, SVCDs etc) + abspielst, da <application>MPlayer</application> nicht nach MPEG encodieren muss + und den Puffer sehr schnell wird füllen können. +</para> +<para> + Mit Prebuffering ist die Videowiedergabe <emphasis role="bold">viel</emphasis> + weniger gegenüber anderen CPU-intensiven Programmen anfällig. Frames + werden nur dann verworfen, wenn eine andere Applikation für eine + sehr lange Zeit die CPU belegt. +</para> +<para> + Wenn kein Prebuffering verwendet wird, dann ist der em8300 viel + anfälliger gegenüber CPU-Last. Somit wird dringend empfohlen, + MPlayers <option>-framedrop</option>-Option zu verwenden, um die A/V-Sync + zu erhalten. +</para> +<para> + <option>sync</option> aktiviert die neue sync-Methode. Dieses Feature ist + momentan noch experimentell. Bei dieser Methode beobachtet MPlayer + ständig die interne Uhr des em8300-Chips. Weicht diese von + MPlayers Uhr ab, so wird die des em8300-Chips zurückgesetzt, + sodass dieser alle Frames verwirft, die hinterherhängen. +</para> +<para> + <option>norm=x</option> setzt den TV-Standard der DXR3-Karte, ohne dafür + externe Programme wie em8300setup zu benötigen. + Gültige Werte sind 5 = NTSC, 4 = PAL-60, 3 = PAL. Spezielle Standards + sind 2 (automatische Erkennung mit PAL/PAL-60) und 1 (automatische + Erkennung für PAL/NTSC), da sie den Standard in Abhängigkeit + der FPS des Films setzen. norm = 0 (Standard) ändert + den momentan eingestellten TV-Standard nicht. +</para> +<para> + <option><replaceable>device</replaceable></option> = Gerätenummer wählt die zu + verwendene em8300-Karte, falls du mehrere davon hast. +</para> +<para> + Jede dieser Optionen kann auch weggelassen werden. +</para> +<para> + <option>:prebuf:sync</option> scheint sehr gut zu funktionieren, wenn du DivX + abspielst. Es gab Berichte von Leuten, die Probleme mit <option>prebuf</option> + bei der Wiedergabe von MPEG1/2-Dateien hatten. Du + solltest es also zuerst ohne Optionen probieren. Wenn du Sync-Probleme + hast, dann probier <option>:sync</option> aus. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-ao oss:/dev/em8300_ma-<replaceable>X</replaceable></option></term> +<listitem><para> + Audioausgabe, wobei <replaceable>X</replaceable> die Gerätenummer ist + (0 bei nur einer Karte). +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-af resample=<replaceable>xxxxx</replaceable></option></term> +<listitem><para> + Der em8300 kann keine Sampleraten niedriger als 44100Hz abspielen. + Wenn die Samplerate weniger als 44100Hz beträgt, dann wähle + 44100Hz oder 48000Hz, je nachdem, welche davon besser passt. Beispiel: + Wenn der Film 22050Hz benutzt, dann wähle 44100Hz, da 44100 / 2 = + 22050 ist. Bei 24000Hz nimmst du 48000Hz etc. Das funktioniert nicht mit + der digitalen Audioausgabe (<option>-ac hwac3</option>). +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-vf lavc/fame</option></term> +<listitem><para> + Wenn du nicht-MPEG-Filme mit dem em8300 ansehen möchtest (z.B. + DivX oder RealVideo), dann musst du einen MPEG1-Videofilter wie + <systemitem class="library">libavcodec</systemitem> (lavc) oder + <systemitem class="library">libfame</systemitem> (fame) verwenden. + Momentan ist lavc sowohl schneller als auch qualitativ besser, + sodass die Empfehlung lavc lautet. Schau in der Manpage nach. + Dort stehen weitere Informationen zu <option>-vf lavc/fame</option>. + Die Benutzung von lavc wird empfohlen. Momentan gibt es keine + Möglichkeit, die Anzahl der Bilder pro Sekunde des em8300 zu setzen, + was bedeutet, dass sie fest bei 29.97 liegt. Aus diesem Grund solltest du + <option>-vf lavc=<replaceable>quality</replaceable>:25</option> verwenden, + besonders dann, wenn du auch Prebuffering verwendest. Warum aber 25 + und nicht 29.97? Tja, die Sache ist, dass das Bild bei 29.97 unruhig + wird. Wir wissen leider nicht, warum das so ist. Wenn du Werte zwischen + 25 und 27 benutzt, dann wird das Bild stabil. Momentan können wir das + nur als gegeben hinnehmen. +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-vf expand=-1:-1:-1:-1:1</option></term> +<listitem><para> + Obwohl der DXR3-Treiber ein OSD über das MPEG1-/2-/4-Video + projezieren kann, ist es qualitativ deutlich schlechter als + <application>MPlayer</application>s traditionelles OSD, und es hat + diverse Probleme mit der Erneuerung der Anzeige. Der oben angegebene + Befehl konvertiert das Video erst nach MPEG4 (das ist leider + erforderlich) und wendet dann den expand-Filter an, der zwar das + Bild nicht vergrößert (-1: = Standardwerte) aber dafür das normale + OSD auf das Bild stanzt (die "1" am Ende). +</para></listitem> +</varlistentry> + +<varlistentry> +<term><option>-ac hwac3</option></term> +<listitem><para> + Der em8300 unterstützt die Audiowiedergabe von AC3-Streams + (Surroundsound) über den digitalen Ausgang der Karte. Schau oben bei + der Option <option>-ao oss</option> nach. Sie muss angegeben werden, um den + DXR3-Ausgang anstelle der Soundkarte anzugeben. +</para></listitem> +</varlistentry> +</variablelist> +</sect2> + +</sect1> + +<sect1 id="other"> +<title>Andere Anzeigehardware</title> + +<sect2 id="zr"> +<title>Zr</title> + +<para> + Dieser Treiber ist ein Anzeigetreiber (<option>-vo zr</option>), der + verschiedeene MJPEG-Aufnahme-/-Wiedergabekarten unterstützt. Getestet + wurde er mit DC10+ und Buz, und er sollte auch mit der LML33 und der + Original-DC10 funktionieren. Dieser Treiber encodiert jedes Bild nach JPEG + und schickt es dann an die Karte. Für die Encodierung wird + <systemitem class="library">libavcodec</systemitem> benutzt und + dementsprechend auch benötigt. Mit dem speziellen + <emphasis>cinemara</emphasis>-Modus kannst du Filme auch tatsächlich im + Breitbildformat anschauen, wenn du zwei Beamer und zwei MJPEG-Karten hast. + Abhängig von der Qualität und Auflösung braucht dieser Treiber + eine Menge CPU-Power. Benutz also besser die Option <option>-framedrop</option>, + wenn deine Maschine zu langsam ist. Anmerkung: Mein AMD K6-2 350MHz ist + durchaus in der Lage, Filme in VCD-Größe mit <option>-framedrop</option> + wiederzugeben. +</para> + +<para> + Dieser Treiber benutzt den Kerneltreiber, den du unter + <ulink url="http://mjpeg.sf.net"/> + herunterladen kannst. Dieser muss also vorher schon funktionieren. + <filename>configure</filename> erkennt automatisch vorhandene MJPEG-Karten. Wenn + nicht, dann erzwinge zr mit + <screen>./configure --enable-zr</screen> +</para> +<para> + Die Ausgabe kann mit diversen Optionen gesteuert werden. Eine + vollständige Liste findest du in der Manpage. Eine kurze Auflistung gibt + dir auch + <screen>mplayer -zrhelp</screen> +</para> + +<para> + Sachen wie das OSD und Skalierung werden nicht von diesem Treiber + erledigt, aber sie können natürlich durch Filter realisiert werden. + Beispiel: Angenommen, du hast einen Film mit einer Auflösung von + 512x272, und du möchtest ihn im Vollbild auf deiner DC10+ + anschauen. Du hast dann drei Möglichkeiten: den Film auf eine Breite von + 768, 384 oder 192 zu skalieren. Aus + Geschwindigkeits- und Qualitätsgründen würde ich empfehlen, + den Film auf 384x204 mit dem bilinearen Algorithmus zu + skalieren. Die Kommandozeile sieht dazu wie folgt aus: +<screen> +mplayer -vo zr -sws 0 -vf scale=384:204 <replaceable>movie.avi</replaceable> +</screen> +</para> + +<para> + Das Beschneiden des Bildes kann mit dem <option>crop</option>-Filter geschehen + oder vom Treiber selber vorgenommen werden. Angenommen, der Film ist zu breit + für die Anzeige deiner Buz, und du möchtest <option>-zrcrop</option> + benutzen, um den Film schmaler zu machen. Dann benutzt du folgendes + Kommando: +<screen> +mplayer -vo zr -zrcrop 720x320+80+0 <replaceable>benhur.avi</replaceable> +</screen> +</para> + +<para> + Mit dem <option>crop</option>-Filter sieht es so aus: +<screen> +mplayer -vo zr -vf crop=720:320:80:0 <replaceable>benhur.avi</replaceable> +</screen> +</para> + +<para> + Mehrfache Verwendung von <option>-zrcrop</option> aktiviert den + <emphasis>cinerama</emphasis>-Modus. Das heißt, du kannst das Bild über + mehrere Fernseher oder Beamer verteilen, um eine größere + Anzeigefläche zu erreichen. Angenommen, du hast zwei Beamer. Der linke + hängt an deiner Buz an <filename>/dev/video1</filename>, und der rechte + hängt an deiner DC10+ an <filename>/dev/video0</filename>. Der Film hat eine + Auflösung von 704x288. Nehmen wir weiter an, dass du den + rechten Beamer schwarz/weiß betreiben möchtest, und dass du auf + dem linken Beamer Bilder mit der Qualitätsstufe 10 haben + möchtest. Dann benutzt du dafür das folgende Kommando: +<screen> +mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \ + <replaceable>movie.avi</replaceable> +</screen> +</para> + +<para> + Wie du siehst gelten die Optionen vor dem zweiten <option>-zrcrop</option> nur + für die DC10+ und die Optionen nach dem zweiten <option>-zrcrop</option> nur + für die Buz. Die maximale Anzahl an MJPEG-Karten, die am + <emphasis>cinerama</emphasis>-Modus teilnehmen, liegt bei vier, sodass du dir + eine 2x2-Videowand basteln kannst. +</para> + +<para> + Zuletzt ein wirklich wichtiger Hinweis: Starte oder beende auf keinen Fall + XawTV während der Wiedergabe, da das deinen Computer zum Absturz bringen + wird. Du kannst aber problemlos <emphasis role="bold">ZUERST</emphasis> XawTV, + <emphasis role="bold">DANN</emphasis> <application>MPlayer</application> + starten, warten, bis <application>MPlayer</application> fertig ist + und <emphasis role="bold">ZULETZT</emphasis> XawTV beenden. +</para> +</sect2> + +<sect2 id="blinkenlights"> +<title>Blinkenlights</title> +<para> + Dieser Trieber kann Video mit dem Blinkenlights UDP-Protokoll wiedergeben. + Wenn du nicht weißt, was + <ulink url="http://www.blinkenlights.de/">Blinkenlights</ulink> + oder dessen Nachfolger <ulink url="http://www.blinkenlights.de/arcade/">Arcade</ulink> + ist, finde es heraus. +</para> +<para> + Obwohl dies höchstwahrscheinlich der neueste Video-Ausgabetreiber ist, + ohne Zweifel der coolste, den <application>MPlayer</application> + anzubieten hat. Schau dir einfach ein paar von den + <ulink url="http://www.blinkenlights.de/video.en.html">Blinkenlights-Dokumentationsvideos</ulink> + an. + Auf dem Arcade-Video siehst du Blinkenlights Ausgabetreiber um 00:07:50 in Aktion. +</para> +</sect2> +</sect1> + +<sect1 id="tvout"> +<title>Unterstützung für die TV-Ausgabe</title> + +<sect2 id="tvout-mga-g400"> +<title>Matrox G400-Karten</title> + +<para> + Unter Linux hast du zwei Möglichkeiten, den TV-Ausgang deiner + G400 anzuschalten: +</para> + +<important> +<para> + Anweisungen für die Matrox G450/G550 und deren TV-Ausgänge findest + du im nächsten Abschnitt! +</para> +</important> + +<variablelist> +<varlistentry> + <term>XFree86</term> + <listitem><para> + mit dem alten Treiber und dem HAL-Modul, welches es + auf der<ulink url="http://www.matrox.com">Matrox-Seite</ulink> gibt. Damit + bekommst du X auf dem Fernseher, aber <emphasis role="bold">keine + Hardwarebeschleunigung</emphasis> wie unter Windows! +</para> +<para> + Der zweite Ausgang besitzt nur einen YUV-Framebuffer. + Der <emphasis>BES</emphasis> (BackEnd Scaler, die YUV-Skalierungseinheit des + G200/G400/G450/G550) funktioniert mit ihm nicht! Der Windows-Treiber + umgeht das irgendwie, wahrscheinlich dadurch, dass er die 3D-Engine + für die Skalierung und den YUV-Framebuffer zur Anzeige des + skalierten Bildes verwendet. Wenn du unbedingt X benutzen willst, dann + probier <option>-vo x11 -fs -zoom</option>, aber das wird + <emphasis role="bold">LANGSAM</emphasis> sein + und den <emphasis role="bold">Macrovision</emphasis>-Kopierschutz + aktiviert haben. (Du kannst Macrovision mit diesem + <ulink url="http://avifile.sf.net/mgamacro.pl">Perlscript</ulink> + umgehen.) +</para></listitem> +</varlistentry> +<varlistentry> + <term>Framebuffer</term> + <listitem><para> + Mit den <emphasis role="bold">matroxfb-Modulen</emphasis> in den 2.4er + Kerneln. 2.2er Kernel kennen den TV-Ausgang noch nicht und sind somit + hierfür nicht geeignet. Du musst ALLE matroxfb-spezifischen Features + bei der Compilierung anschalten (bis auf MultiHead). Compiliere sie als + <emphasis role="bold">Module</emphasis>! Du musst ebenfalls I2C anschalten. +</para> + +<procedure> +<step><para> + Gehe nach <filename class="directory">TVout</filename> und gib + <command>./compile.sh</command> ein. Installiere + <filename>TVout/matroxset/matroxset</filename> in ein Verzeichnis, das + in deinem <envar>PATH</envar> liegt. +</para></step> +<step><para> + Wenn du <command>fbset</command> nicht installiert hast, installiere + <filename>TVout/fbset/fbset</filename> in ein Verzeichnis, das in + deinem <envar>PATH</envar> liegt. +</para></step> +<step><para> + Wenn du <command>con2fb</command> nicht installiert hast, installiere + <filename>TVout/con2fb/con2fb</filename> in ein Verzeichnis, das in + deinem <envar>PATH</envar> liegt. +</para></step> +<step><para> + Geh jetzt in das Verzeichnis <filename class="directory">TVout/</filename> + in den <application>MPlayer</application>-Quellen und führe dort + <filename>./modules</filename> als <systemitem class="username">root</systemitem> + aus. Deine Textmodusconsole wird danach in den Framebuffermodus umschalten, + aus dem es keinen Weg zurück gibt! +</para></step> +<step><para> + Editiere als nächstes das Script <filename>./matroxtv</filename>. + Es ird dir ein simples Menü präsentieren. Drücke + <keycap>2</keycap> gefolgt von <keycap>ENTER</keycap>. Jetzt solltest + du auf dem Fernseher das gleiche Bild wie auf dem Monitor sehen. + Wenn das TV-Bild (PAL ist die Standardeinstellung) merkwürdige Streifen + enthält, dann war das Script nicht in der Lage, die Auflösung richtig zu + setzen (standardmäßig 640x512). Probier andere im Menü + angebotene Auflösungen aus und/oder experimentier mit fbset. +</para></step> +<step><para> + So. Die nächste Aufgabe ist es, den Cursor auf tty1 (oder + woauchimmer) verschwinden zu lassen, und den Bildschirmschoner + auszuschalten. Führ folgende Kommandos aus: + +<screen> +echo -e '\033[?25l' +setterm -blank 0<!-- + --></screen> + oder +<screen> +setterm -cursor off +setterm -blank 0<!-- + --></screen> + + Wahrscheinlich möchtest du das in ein Script packen und dabei + gleich den Bildschirm löschen. Um den Cursor wieder + anzuschalten: + <screen>echo -e '\033[?25h'</screen> or + <screen>setterm -cursor on</screen> +</para></step> +<step><para> + Yeah kewl. Starte die Wiedergabe mit +<screen> +mplayer -vo mga -fs -screenw 640 -screenh 512 <replaceable>filename</replaceable><!-- + --></screen> + + (Wenn du X benutzt, dann wechsel jetzt auf den matroxfb mit z.B. + <keycap>CTRL</keycap>+<keycap>ALT</keycap>+<keycap>F1</keycap>!) + Ändere die <literal>640</literal> und <literal>512</literal>, wenn + du eine andere Auflösung verwendest. +</para></step> +<step><para> + <emphasis role="bold">Genieß die ultra-schnelle und featurereiche Wiedergabe + mit dem Matrox-TV-Ausgang (sogar noch besser als Xv)!</emphasis> + </para></step> + </procedure> + </listitem> +</varlistentry> +</variablelist> + +<formalpara> +<title>Matrox-TV-Ausgangskabel im Eigenbau</title> +<para> + Niemand übernimmt Verantwortung für irgendetwas oder jegliche + Schäden, die durch diese Dokumentation entstehen. +</para> +</formalpara> + +<formalpara> +<title>Kabel für die G400</title> +<para> + Der vierte Pin des CRTC2-Steckers liefert das Composite Video-Signal. + Erde liegt am sechsten, siebten und achten Pin. + (Informationen von Balázs Rácz) +</para> +</formalpara> + +<formalpara> +<title>Kabel für die G450</title> +<para> + Der erste Pin des CRTC2-Steckers liefert + das Composite Video-Signal. Erde liegt am fünften, sechsten, siebten und + fünfzehnten (5, 6, 7, 15) Pin. (Information von Balázs Kerekes) +</para> +</formalpara> +</sect2> + +<sect2 id="tv-out_matrox_g450"> +<title>Matrox G450/G550-Karten</title> +<para> + Unterstützung für den TV-Ausgang dieser Karten wurde erst + kürzlich implementiert und ist noch nicht in den Standardkerneln + enthalten. Momentan kann das <emphasis role="bold">mga_vid</emphasis>-Modul + nicht benutzt werden, wenn ich recht informiert bin, da der G450/G550-Treiber + nur in einer Konfiguration arbeitet: Der erste CRTC-Chip (mit den vielen + Features) am ersten Display (meistens der Monitor), und der zweite CRTC + (kein <emphasis role="bold">BES</emphasis> - Erläuterungen zum BES gibts + in der G400-Sektion oben) am Fernseher. + Somit kannst du momentan nur den <emphasis>fbdev</emphasis>-Ausgabetreiber von + <application>MPlayer</application> benutzen. +</para> + +<para> + Der erste CRTC kann momentan nicht an den zweiten Ausgang umgeleitet + werden. Der Author des matroxfb-Kernelmoduls, Petr Vandrovec, wird auch das + irgendwann unterstützen, indem die Ausgabe des ersten CRTC auf beiden + Ausgängen angezeigt wird, wie es momentan auch für die G400 + empfohlen wird (siehe oben). +</para> + +<para> + Der dafür benötigte Kernelpatch und eine detaillierte Anleitung + kann auf <ulink url="http://www.bglug.ca/matrox_tvout/"/> gefunden werden. +</para> +</sect2> + + +<sect2 id="tvout-ati"> +<title>ATI-Karten</title> + +<formalpara> +<title>EINLEITUNG</title> +<para> + Momentan möchte ATI keinen einzigen ihrer TV-Ausgabe-Chips unter + Linux unterstützen, da sie die Macrovision-Technologie lizensiert + haben. +</para> +</formalpara> + +<itemizedlist> +<title>STATUS DER ATI-TV-AUSGABEUNTERSTÜTZUNG UNTER LINUX</title> +<listitem><simpara> + <emphasis role="bold">ATI Mach64</emphasis>: + Von <ulink url="http://gatos.sf.net">GATOS</ulink> unterstützt. +</simpara></listitem> +<listitem><simpara> + <emphasis role="bold">ASIC Radeon VIVO</emphasis>: + Von <ulink url="http://gatos.sf.net">GATOS</ulink> unterstützt. +</simpara></listitem> +<listitem><simpara> + <emphasis role="bold">Radeon</emphasis> and <emphasis role="bold">Rage128</emphasis>: + Von <application>MPlayer</application> unterstützt! + Lies die <link linkend="vesa">VESA-Treiber-</link> und + <link linkend="vidix">VIDIX</link>-Sektionen. +</simpara></listitem> +<listitem><simpara> + <emphasis role="bold">Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</emphasis>: + Von <ulink url="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/">atitvout</ulink> + unterstützt. +</simpara></listitem> +</itemizedlist> + +<para> + Benutze bei anderen Karten einfach den + <link linkend="vesa">VESA-Treiber</link> + ohne VIDIX. Dafür brauchst du aber eine schnelle CPU. +</para> + +<para> + Nur eines musst du tun - <emphasis role="bold">das TV-Kabel vor dem Booten + eingesteckt haben</emphasis>, da das BIOS sich nur einmal während der + POST-Prozedur initialisiert. +</para> +</sect2> + + +<sect2 id="tvout-voodoo"> +<title>Voodoo 3</title> +<para> + Lies <ulink url="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">diese URL</ulink>. +</para> +</sect2> + +<sect2 id="tvout-nvidia"> +<title>nVidia</title> +<para> + Zuerst musst du die Closed-Soure-Treiber von <ulink url="http://nvidia.com"/> + herunterladen. Ich werde Installation und Konfiguration nicht im Detail + beschreiben, da diese außerhalb der Aufgabe dieses Dokuments liegt. +</para> + +<para> + Nachdem du sichergegangen bist, dass XFree86, XVideo und die + 3D-Beschleunigung funktionieren, ändere die <filename>XF86Config</filename>, + und passe das folgende Beispiel deiner Karte an: + +<programlisting> +Section "Device" + Identifier "GeForce" + VendorName "ASUS" + BoardName "nVidia GeForce2/MX 400" + Driver "nvidia" + #Option "NvAGP" "1" + Option "NoLogo" + Option "CursorShadow" "on" + + Option "TwinView" + Option "TwinViewOrientation" "Clone" + Option "MetaModes" "1024x768,640x480" + Option "ConnectedMonitor" "CRT, TV" + Option "TVStandard" "PAL-B" + Option "TVOutFormat" "Composite" + +EndSection +</programlisting> +</para> + +<para> + Natürlich ist der wichtige Teil die TwinView-Optionen. +</para> +</sect2> + +<sect2 id="tvout-neomagic"> +<title>NeoMagic</title> +<para> + Der NeoMagic-Chip befindet sich auf zahlreichen Laptops, einige von ihnen + sind mit einen einfachen analogen TV-Encoder ausgestattet, einige besitzen + einen fortschrittlicheren. +<itemizedlist> +<listitem><para> + <emphasis role="bold">Analoger Encoder-Chip</emphasis>: + Es wurde berichtet, dass ein zuverlässiger TV-Ausgang mittels + <option>-vo fbdev</option> oder <option>-vo fbdev2</option> + erreicht werden kann. + Du musst vesafb in deinen Kernel compiliert haben und der + Kernel-Befehlszeile folgende Parameter übergeben: + <option>append="video=vesafb:ywrap,mtrr" vga=791</option>. + Du solltest <application>X</application> starten, dann in den + Consolen-Modus z.B. mit + <keycap>CTRL</keycap>+<keycap>ALT</keycap>+<keycap>F1</keycap> wechseln. + Mislingt der Start von <application>X</application> vor dem von + <application>MPlayer</application> in der Console, wird das Video + langsam und abgehackt (Erklärungen sind willkommen). + Log dich in deine Console, dann initialisiere folgenden Befehl: + + <screen>clear; mplayer -vo fbdev -zoom -cache 8192 dvd://</screen> + + Jetzt solltest du den Film im Consolen-Modus laufen sehen. + Er wird etwa die Hälfte des LCD-Bildschirms deines Laptops ausfüllen. + Um in den TV zu wechseln, drücke dreimal + <keycap>Fn</keycap>+<keycap>F5</keycap>. + Getestet auf einem Tecra 8000, 2.6.15 Kernel mit vesafb, ALSA v1.0.10. +</para></listitem> +<listitem><simpara> + <emphasis role="bold">Chrontel 70xx Encoder-Chip</emphasis>: + Zu finden in IBM Thinkpad 390E und möglicherweise anderen Thinkpads oder + Notebooks. + </simpara><simpara> + Du musst <option>-vo vesa:neotv_pal</option> für PAL oder + <option>-vo vesa:neotv_ntsc</option> für NTSC verwenden. + Es wird eine TV-Output-Funktion in folgenden 16bpp und 8bpp-Modi + zur Verfügung stellen: + </simpara> + <itemizedlist> + <listitem><simpara>NTSC 320x240, 640x480 und evtl. auch 800x600.</simpara></listitem> + <listitem><simpara>PAL 320x240, 400x300, 640x480, 800x600.</simpara></listitem> + </itemizedlist> + <simpara>Der Modus 512x384 wird im BIOS nicht unterstützt. Du musst das Bild + auf eine andere Auflösung skalieren, um die TV-Ausgabe zu aktivieren. + Wenn du auf dem Schirm ein Bild in 640x480 oder in 800x600 siehst, jedoch nicht + in 320x240 oder einer kleineren Auflösung, musst du zwei Tabellen in + <filename>vbelib.c</filename> ersetzen. + Siehe Funktion vbeSetTV für Details. Bitte kontaktiere in diesem Fall den Autor. + </simpara> + <simpara> + Bekannte Problem: Nur VESA, keine weiteren Schalter wie Helligkeit, Kontrast, + Blacklevel, Flimmerfilter sind implementiert. + </simpara> +</listitem> +</itemizedlist> +</para> +</sect2> +</sect1> + +</chapter> |