diff options
Diffstat (limited to 'DOCS/de/video.html')
-rw-r--r-- | DOCS/de/video.html | 1704 |
1 files changed, 1704 insertions, 0 deletions
diff --git a/DOCS/de/video.html b/DOCS/de/video.html new file mode 100644 index 0000000000..9c3bddde4f --- /dev/null +++ b/DOCS/de/video.html @@ -0,0 +1,1704 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<HTML> + +<HEAD> + <TITLE>Video - MPlayer - The Movie Player for Linux</TITLE> + <LINK REL="stylesheet" TYPE="text/css" HREF="default.css"> + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> +</HEAD> + +<BODY> + + +<H3><A NAME="video">2.3.1 Video-Ausgabe-Geräte</A></H3> + +<H4><A NAME="mtrr">2.3.1.1 MTRR</A></H4> + +<P>Du solltest UNBEDINGT sicherstellen, dass die MTRR-Register richtig belegt +sind, denn sie können eine großen Geschwindigkeits-Schub +bringen.</P> + +<P>Mache ein <CODE>cat /proc/mtrr</CODE>:</P> + +<P><CODE>--($:~)-- cat /proc/mtrr<BR> +reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9<BR> +reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1</CODE></P> + +<P>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.</P> + +<P>Wenn nichts funktioniert, musst du sie manuell setzen. Als erstes musst du +die Basisadresse finden. Dazu gibt es drei Möglichkeiten:</P> + +<UL> + <LI>durch die X11 Start-Meldungen, zum Beispiel: + <P><CODE>(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, + 0xd4000000<BR> + (--) SVGA: Linear framebuffer at 0xD8000000</CODE></P></LI> + <LI>durch /proc/pci (verwende <CODE>lspci -v</CODE>): + <P><CODE>01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown + device 0525</CODE> + <CODE>Memory at d8000000 (32-bit, prefetchable)</CODE></P></LI> + <LI>durch die mga_vid Kerneltreiber-Meldungen (verwende <CODE>dmesg</CODE>): + <P><CODE>mga_mem_base = d8000000</CODE></P></LI> +</UL> + +<P>So, nun gilt es, die Speichergröße zu finden. Dies ist sehr +einfach, konvertier einfach die Video-RAM-Größe nach Hexdezimal, +oder verwende diese Tabelle:</P> + +<TABLE BORDER=0> + <TR><TD> </TD><TD>1 MB</TD><TD WIDTH=10%></TD><TD>0x100000</TD></TR> + <TR><TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD></TR> + <TR><TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD></TR> + <TR><TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD></TR> + <TR><TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD></TR> + <TR><TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD></TR> +</TABLE> + +<P>Du weißt die Base-Adresse und die Speichergröße? Lass uns +die MTRR Register einstellen! Für die Matrox Karte von oben +(base=0xd8000000) mit 32MB RAM (size=0x2000000) führst du einfach das +Folgende aus:</P> + +<P><CODE> echo "base=0xd8000000 size=0x2000000 +type=write-combining" >| /proc/mtrr</CODE></P> + +<P>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 (<CODE>cat /proc/cpuinfo</CODE> gibt Aufschluss).</P> + + +<H4><A NAME="normal">2.3.1.2 Videoausgabegeräte für traditionelle +Grafikkarten</A></H4> + +<H4><A NAME="xv">2.3.1.2.1 Xv</A></H4> + +<P>Mit XFree86 4.0.2 oder neureren Versionen kannst du die Hardware-YUV-Unterstützung +deiner Grafikkarte mit Hilfe der XVideo-Erweiterungen benutzen. Das ist die +Technik, die <CODE>-vo xv</CODE> 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 Manpage nach.</P> + +<P>Um Xv zum Laufen zu bringen, musst du auf die folgenden Punkte achten:</P> + +<UL> + <LI>Du musst XFree86 4.0.2 oder eine neuere Version benutzen, da die + älteren Versionen XVideo noch nicht kannten.</LI> + XVideo)</LI> + <LI>Deine Grafikkarte muss Hardware-Unterstützung für YUV + bieten, was alle modernen Karten tun.</LI> + <LI>X muss die XVideo-Erweiterung auch tatsächlich laden, was zu + Meldungen ähnlich den folgenden führt: + <P><CODE> (II) Loading extension XVideo</CODE></P> + + <P>Anmerkung: 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 + <B>XVideo-Unterstützung der Grafikkarte</B> auch geladen wurde!</P> + </LI> + <LI>Deine Karte muss unter Linux Xv-Unterstützung haben. Du kannst dich + dessen mit <CODE>xvinfo</CODE> vergewsissern, das Teil der + XFree86-Distribution ist. Es sollte einen längeren Text ausgeben, + der ungefähr so aussieht: + <PRE> + 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...) + </PRE> + <P>Damit MPlayer Xv benutzen kann, müssen die Pixelformate + "YUY2 packed" und "YV12 planar" unterstützt werden.</P> + </LI> + <LI>Stell als letztes sicher, dass MPlayer mit Unterstützung + für Xv compiliert wurde. <CODE>configure</CODE> gibt eine + entsprechende Meldung aus.</LI> +</UL> + +<H4><A NAME="xv_3dfx">2.3.1.2.1.1 3dfx-Karten</A></H4> + +<P>Ä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 <B>bei Verwendung von YV12 abgestürzt</B>. Wenn du +merkwürdige Effekte bei der Verwendung von <CODE>-vo xv</CODE> +bemerktst, dann probier aus, ob mit SDL, das ebenfalls XVideo benutzen kann, +diese Effekte verschwinden. In der <A HREF="#sdl">SDL-Sektion</A> stehen +Details darüber.</P> + +<P><B>Alternativ</B> kannst du auch den NEUEN tdfxfb-Treiber mit <CODE>-vo +tdfxfb</CODE> verwenden! Lies dazu die <A NAME="#tdfxfb">tdfxfb- +Sektion</A>.</P> + + +<H4><A NAME="xv_s3">2.3.1.2.1.2 S3-Karten</A></H4> + +<P>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.</P> + +<P><B>Anmerkung:</B> 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.</P> + + +<H4><A NAME="xv_nvidia">2.3.1.2.1.3 nVidia-Karten</A></H4> + +<P>nVidia ist für Linux keine optimale Wahl (auch wenn das laut nVidia +<A HREF="users_against_developers.html#nvidia">nicht stimmt</A>). Du wirst +die binären Closed-Source-Treiber benutzen müssen, die auf nVidias +Webseite verfügbar sind. Die Standard-XFree86-Treiber bieten aufgrund +der nicht öffentlichen Quellen und auch nicht öffentlich +erhältlichen Spezifikationen der nVidia-Chips keine XVideo- +Unterstützung für diese Karten.</P> + +<P>Soweit ich weiß enthalten die neuesten in XFree86 enthaltenen +Treiber XVideo-Unterstützung für GeForce2- und GeForce3-Modelle. +</P> + +<P>Riva128-Karten bieten nicht einmal mit den binären nVidia-Treibern +XVideo-Unterstützung (beklag dich bei nVidia).</P> + + +<H4><A NAME="xv_ati">2.3.1.2.1.4 ATI-Karten</A></H4> + +<UL> + <LI>Die <A HREF="http://gatos.sourceforge.net">GATOS-Treiber</A>, die du + einsetzen solltest, sofern du keine Rage128- oder Radeon-Karte hast, + haben standardmäßig VSYNC angeschlatet. Das bedeutet, dass + die Decodiergeschwindigkeit zur Bildwiederholrate des Monitors + synchronisiert wird. Wenn dir die Wiedergabe langsam vorkommt, dann + versuch, irgendwie VSYNC abzuschalten, oder setze die Bildwiederholrate + des Monitors auf <CODE>n * (fps des Films) Hz</CODE>.</LI> + <LI>Radeon VE - Momentan bietet nur die CVS-Version von XFree86 diese Karten, + Version 4.1.0 tut dies noch nicht. Außerdem gibt es keine + Unterstützung für den TV-Ausgang. Natürlich bekommst + du mit MPlayer <B>hardwarebeschleunigte</B> Wiedergabe, das ganze + wahlweise <B>mit oder ohne TV-Ausgang</B>, und es werden dabei nicht + einmal weitere Bibliotheken oder X selber benötigt. Lies dazu + die <A HREF="#vidix">VIDIX-Sektion</A>.</LI> +</UL> + +<H4><A NAME="xv_neomagic">2.3.1.2.1.5 NeoMagic-Karten</A></H4> + +<P>Diese Chips befinden sich in vielen Laptops. Leider unterstützt der +in X 4.2.0 enthaltene Treiber nicht Xv, aber wir haben einen veränderten +Treiber mit Xv-Unterstützung für dich. +<A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neomagic_drv.o.4.2.0.bz2"> +Lade ihn hier herunter</A>. Dieser Treiber wird von Stefan Seyfried zur +Verfügung gestellt.</P> + +<P>Um die Wiedergabe von Video in DVD-Auflösung zu ermöglichen, +ändere deine <CODE>XF86Config</CODE> wie folgt:</P> + +<P>Section "Device"<BR> + <I>[...]</I><BR> + Driver "neomagic"<BR> + <B>Option "OverlayMem" "829440"</B><BR> + <I>[...]</I><BR> + EndSection</P> + + +<H4><A NAME="xv_trident">2.3.1.2.1.6 Trident-Karten</A></H4> + +<P>Wenn du Xv mit einer Trident-Grafikkarte benutzen willst, dann installier +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.</P> + + +<H4><A NAME="xv_powervr">2.3.1.2.1.7 Kyro/PowerVR-Karten</A></H4> + +<P>Wenn du Xv mit Kyro-Karten (wie z.B. der Hercules Prophet 4000XT) verwenden +möchstest, dann solltest du die Treiber von der +<A HREF="http://www.powervr.com/">PowerVR-Seite</A> benutzen.</P> + + +<H4><A NAME="dga">2.3.1.2.2 DGA</A></H4> + + +<H4>EINLEITUNG</H4> + +<P>Dieser Abschnitt versucht, in wenigen Worten zu beschreiben, was DGA +generell ist, und was der DGA-Videotreiber in MPlayer erreichen kann, +und was nicht.</P> + + +<H4>WAS IST DGA?</H4> + +<P>DGA ist die Abkürzung für Direct Graphics Access (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 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 +root anmelden oder das SUID-bit des MPlayer-Binaries setzen (was +<B>nicht empfohlen wird</B>).</P> + +<P>Von DGA gibt es zwei Versionen: DGA1 kommt mit XFree 3.x.x, und DGA2 +wurde mit XFree 4.0.1 eingeführt.</P> + +<P>DGA1 bietet nur den oben beschriebenen Zugriff auf den Framebuffer. Die +Umschaltung des Videomodus klappt nur mit der XVidMode-Erweiterung.</P> + +<P>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.</P> + +<P>DGA hat aber auch ein paar Nachteile. Die Funktionsweise scheint ein wenig +von der Grafikkarte und dem Grafikkartentreiber im X-Server abhängig zu +sein. Es fuktioniert also nicht auf jedem System...</P> + + +<H4>DGA-UNTERSTÜTZUNG FÜR MPLAYER INSTALLIEREN</H4> + +<P>Stell als erstes sicher, dass X die DGA-Erweiterung lädt. Schau +in /var/log/XFree86.0.log nach:</P> + +<P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> + +<P>Wie du siehst ist XFree86 4.0.x oder neuer SEHR ZU EMPFEHLEN! +MPlayers DGA-Treiber wird von <CODE>./configure</CODE> automatisch +erkannt. Alternativ kannst du seine Compilierung mit <CODE>--enable- +dga</CODE> erzwingen.</P> + +<P>Falls der Treiber nicht zu einer kleineren Auflösung wechseln +konnte, dann experimentier mit den Optionen <CODE>-vm</CODE> (nur bei +X 3.3.x), <CODE>-fs, -bpp, -zoom</CODE>, um einen Videomodus zu finden, +in den der Film reinpasst. Momentan gibt es keinen Konverter :(</P> + +<P>Werde root. DGA bruacht root-Privilegien, um direkt in den Grafikspeicher +zu schreiben. Wenn du MPlayer als normaler Benutzer starten +möchtest, dann installiere MPlayer mit dem SUID-Bit:</P> + +<P><CODE> + chown root /usr/local/bin/mplayer<BR> + chmod 750 /usr/local/bin/mplayer<BR> + chmod +s /usr/local/bin/mplayer</CODE></P> + +<P>Jetzt funktioniert es auch als normaler Benutzer.</P> + +<BLOCKQUOTE> + <B>Warnung: Sicherheitsrisiko!</B><BR> + Dieses ist ein <B>großes</B> Sicherheitsloch. Tu das <B>niemals</B> + auf einem Server oder auf einem Computer, auf den auch andere Leute Zugriff + haben, da sie durch einen SUID-root-MPlayer root-Privilegien erlangen + können. +</BLOCKQUOTE> + +<P>Benutze jetzt die Option <CODE>-vo dga</CODE>, und ab geht's (hoffe ich +zumindest :))! Du solltest auch ausprobieren, ob bei dir die Option +<CODE>-vo sdl:dga</CODE> funktioniert. Sie ist viel schneller.</P> + +<H4><A NAME="dga_modelines">ÄNDERN DER AUFLÖSUNG</A></H4> + +<P>Der DGA-Treiber ermöglicht es, die Auflösung 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 <CODE>/etc/X11/XF86Config</CODE> bzw. +<CODE>/etc/X11/XF86Config-4</CODE> definiert wurden. 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 +<CODE>/var/log/XFree86.0.log</CODE>).</P> + +<P>Diese Einträge funktionieren mit einem Riva128-Chip und dem +<CODE>nv.o</CODE>-X-Server-Treibermodul.</P> + +<PRE> + 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 +</PRE> + + +<H4>DGA & MPLAYER</H4> + +<P>DGA wird bei MPlayer an zwei Stellen benutzt: beim SDL-Treiber mit +<CODE>-vo sdl:dga</CODE> oder beim DGA-Treiber selber (<CODE>-vo dga</CODE>). +Das oben gesagte gilt für beide Treiber. In den folgenden Abschnitten +erkläre ich, wie der DGA-Treiber von MPlayer selber arbeitet.</P> + + +<H4>FEATURES DES DGA-TREIBERS</H4> + +<P>Der DGA-Treiber wird durch die Option <CODE>-vo dga</CODE> 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 <CODE>-vm</CODE> (Videomodusumschaltung aktivieren) und <CODE>- +fs</CODE> (Vollbildmodus erzwingen) - er versucht immer, so viel des Bildes +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 <CODE>-x</CODE> und +<CODE>-y</CODE> angegebenen Werten passt. Die Option <CODE>-v</CODE> +veranlasst den DGA-Treiber, neben einigen anderen Dingen auch alle von deiner +XF86-Konfiguration unterstützen Videomodi aufzulisten. Wenn DGA2 +verwendet wird, dann kannst du mit der <CODE>-bpp</CODE>-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.</P> + +<P>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.</P> + +<P>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.</P> + +<P>Doppelpufferung kann mit der Option <CODE>-double</CODE> aktiviert und mit +<CODE>-nodouble</CODE> 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!).</P> + + +<H4>PUNKTE BZGL. DER GESCHWINDIGKEIT</H4> + +<P>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 MPlayer +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 <CODE>top</CODE>, wenn du wissen willst, wie's wirklich mit +der Geschwindigkeit aussieht.</P> + +<P>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.</P> + +<P>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.</P> + +<P>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 über den Bus transferiert werden müssen.</P> + +<P>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.</P> + + +<H4>BEKANNTE FEHLER</H4> + +<P>Die Entwickler von XFree sagen selber, dass DGA ein ganz schönes +Monstrum ist. Sie raten eher davon ab, es zu benutzen, da seine Implementation +bei bestimmten Treibern nicht immer ganz fehlerfrei war.</P> + +<UL> + <LI>Bei der Kombination aus XFree 4.0.3 und dem nv.o-Treiber gibt es + einen Fehler, der zu merkwürdigen Farben führt.</LI> + <LI>Die ATI-Treiber müssen den Videomodus mehrmals zurückstellen, + nachdem der DGA-Modus verlassen wurde.</LI> + <LI>Einige Treiber schaffen es manchmal einfach nicht, in die vorherige + Auflösung zurückzuschalten. Benutze in solch einem Fall + Ctrl-Alt-Keypad + und -, um manuell die Auflösung zu ändern. + </LI> + <LI>Einige Treiber zeigen einfach nur merkwürdige Farben an.</LI> + <LI>Einige Treiber lügen, was die von ihnen in den Prozessorspeicher + eingeblendete Menge Grafikspeicher anbelangt, weswegen vo_dga + nicht die Doppelpufferung verwendet (SIS?).</LI> + <LI>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.</LI> + <LI>Das OSD funktioniert nur, wenn auch die Doppelpufferung aktiviert ist. + </LI> +</UL> + + +<H4><A NAME="sdl">2.3.1.2.3 SDL</A></H4> + +<P>SDL (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 <CODE>SDL_VIDEODRIVER</CODE> setzt. So lautet zumindest die +Theorie.</P> + +<P>Bei MPlayer benutzten wir damals die Softwareskalierroutinen der +X11-Treiber von SDL bei Grafikkarten, 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. +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? :)</P> + +<P>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.</P> + +<P>Die SDL-Videoausgabe unterstützt die Anzeige von Untertiteln +unterhalb des Films auf den schwarzen Balken (sofern diese vorhanden +sind).</P> + +<P><B>Es gibt einige Komanndozeilenparameter bezüglich SDL:</B></P> +<DL> + <DT><CODE>-vo sdl:name</CODE></DT> + <DD>Gibt den Namen des SDL-Videotreibers an (z.B. aalib, dga, x11)</DD> + + <DT><CODE>-ao sdl:name</CODE></DT> + <DD>Gibt den Namen des SDL-Audiotreibers an (z.B. dsp, esd, arts)</DD> + + <DT><CODE>-noxv</CODE></DT> + <DD>Deaktiviert die XVideo-Hardwarebeschleunigung</DD> + + <DT><CODE>-forcexv</CODE></DT> + <DD>Versucht, die Verwendung der XVideo-Beschleunigung zu erzwingen</DD> +</DL> + +<TABLE BORDER=0> + <TR><TD COLSPAN=4><P><B>SDL-Tasten:</B></P></TD></TR> + <TR><TD></TD><TD><CODE>F</CODE></TD><TD></TD> + <TD>Umschalten zwischen Vollbild/Fenstermodus</TD></TR> + <TR><TD></TD><TD><CODE>C</CODE></TD><TD></TD> + <TD>Wechselt zwischen den vorhandenen Vollbildmodi</TD></TR> + <TR><TD></TD><TD><CODE>W/S</CODE></TD><TD></TD> + <TD>gleiche Funktionen wie * und / (Mixersteuerung)</TD></TR> +</TABLE> + + +<H4>BEKANNTE FEHLER</H4> + +<UL> + <LI>Tasten, die bei sdl:aalib einmal gedrückt werden, bleiben aus + Sicht des Programmes gedrückt (benutz also <CODE>-vo aa</CODE>!). + Das ist ein Fehler in SDL, den ich nicht beheben kann (mit SDL 1.2.1 + getestet).</LI> + <LI>Benutze AUF KEINEN FALL SDL mit dem GUI! Das funktioniert nicht so, + wie es sollte.</LI> +</UL> + +<H4><A NAME="svgalib">2.3.1.2.4 SVGAlib</A></H4> + +<H4>INSTALLATION</H4> + +<P>Du must zuerst die svgalib und die dazugehörigen Devel-Pakete +installieren, bevor du MPlayer 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 +<CODE>/etc/vga/libvga.config</CODE> richtige Werte für deine Grafikkarte +& deinen Monitor anzugeben.</P> + +<H4>ANMERKUNGEN</H4> + +<P>Verwende nicht die <CODE>-fs</CODE>-Option, da sie die Benutzung des +Softwareskalierers erzwingt, und das ganze dann langsam wird. Wenn du diese +Option wirklich brauchst, dann verwende auch <CODE>-sws 4</CODE>, welche zwar +schlechte Qualität produziert, dafür aber auch ein wenig schneller +ist.</P> + + +<H4>EGA(4bpp)-UNTERSTÜTZUNG</H4> + +<P>SVGAlib beinhaltet die EGAlib, und MPlayer kann damit jeden Film in +16 Farben bei den folgenden Modi anzeigen:</P> + +<UL> + <LI>EGA-Karte mit EGA-Monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp</LI> + <LI>EGA-Karte mit CGA-Monitor: 320x200x4bpp, 640x200x4bpp</LI> +</UL> + +<P>Der bpp-Wert (Bits pro Pixel) muss von Hand auf vier gesetzt werden:<BR> + <CODE>-bpp 4</CODE><BR> +Die Auflösung des Films muss wahrscheinlich verkleinert werden, damit +er in den EGA-Modus reinpasst:<BR> + <CODE>-vop scale=640:350</CODE> or<BR> + <CODE>-vop scale=320:200</CODE><BR> +Dafür brauchen wir eine schnelle, aber schlechte Qualität +produzierende Skalierroutine:<BR> + <CODE>-sws 4</CODE><BR> +Eventuell muss die automatische Anpassung des +Höhen-/Breitenverältnisses ausgeschaltet werden:<BR> + <CODE>-noaspect</CODE></P> + +<P><B>ANMERKUNG:</B> Die besten Ergebnisse bei EGA-Bildschirmen erhält +man meiner Erfahrung nach, wenn man die Helligkeit ein wenig verringert: +<CODE>-vop eq=-20:0</CODE>. Ich musste auch die Audiosamplerate erniedrigen, +weil bei 44KHz der Sound nicht richtig funktionierte: <CODE>-srate 22050</CODE>. +</P> + +<P>Du kannst das OSD und Untertitel mit dem <CODE>expand</CODE>-Filter +aktivieren. Die man-Page enthält die exakten Parameter.</P> + + +<H4><A NAME="fbdev">2.3.1.2.5 Framebuffer-Ausgabe (FBdev)</A></H4> + +<P><CODE>./configure</CODE> erkennt automatisch, ob es den Framebuffertreiber +(fbdev) compilieren soll oder nicht. Lies die Framebufferdokumentation in den +Kernelquellen (<CODE>Documentation/fb/*</CODE>); dort stehen mehr +Informationen.</P> + +<P>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 ;).</P> + +<P>Die fbdev-Ausgabe kenn neben den üblichen Parametern noch einige +andere:</P> + +<DL> + <DT><CODE>-fb</CODE></DT> + <DD>Gibt das zu benutzende Framebuffergerät an + (Standard <CODE>/dev/fb0</CODE>)</DD> + + <DT><CODE>-fbmode</CODE></DT> + <DD>Gibt zu benutzenden Modusnamen an (wie sie in <CODE>/etc/fb.modes</CODE> + stehen)</DD> + + <DT><CODE>-fbmodeconfig</CODE></DT> + <DD>Konfigurationsdatei für die Modi (Standard + <CODE>/etc/fb.modes</CODE>)</DD> + + <DT><CODE>-monitor_hfreq</CODE></DT> + <DT><CODE>-monitor_vfreq</CODE></DT> + <DT><CODE>-monitor_dotclock</CODE></DT> + <DD><STRONG>Wichtige</STRONG> Werte, schau dir die <CODE>example.conf</CODE> + an</DD> +</DL> + +<P>Wenn du in einen speziellen Modus wechseln willst, dann benutze</P> + +<P><CODE> mplayer -vm -fbmode (Modusname) +Dateiname</CODE></P> + +<UL> + <LI><B>-vm</B> ohne weitere Optionen wird den am besten passenden Modus + aus <CODE>/etc/fb.modes</CODE> auswählen. Kann auch zusammen mit + <CODE>-x</CODE> und <CODE>-y</CODE> benutzt werden. Die Option <CODE>- + flip</CODE> 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 <CODE>-bpp</CODE> einen bestimmten angibst.</LI> + <LI><B>-zoom</B> wird nicht unterstützt (Softwareskalierung ist + langsam). <CODE>-fs</CODE> wird nicht unterstützt. Du kannst keine + Modi mit 8bpp oder weniger benutzen.</LI> + <LI>Wahrscheinlich wirst du den Cursor (<CODE>echo -e '\033[?25l'</CODE> + oderr <CODE>setterm -cursor off</CODE>) und den Bildschirmschoner + (<CODE>setterm -blank 0</CODE>) deaktivieren wollen. Um den Cursor wieder + zu aktivieren: <CODE>echo -e '\033[?25h'</CODE> oder <CODE>setterm - + cursor on</CODE>. </LI> +</UL> + +<P>Anmerkung: fbdev kann den Videomodus in Verbindung mit dem VESA- +Framebuffer nicht ändern. Frag auch nicht danach - das ist keine +Einschränkung seitens MPlayer.</P> + +<H4><A NAME="mga_vid">2.3.1.2.6 Matrox-Framebuffer (mga_vid)</A></H4> + +<P>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.</P> + +<P><B>ANMERKUNG</B>: Das Modul ist nur für Linux-Systeme verfügbar! +Auf nicht-Linux-Systemen solltest du statt dessen <A HREF="#vidix">VIDIX</A> +benutzen!</P> + +<P><B>Installation:</B></P> +<OL> + <LI>Um den Treiber benutzen zu können, musst du erstmal mga_vid.o + compilieren: + <P><CODE>cd drivers<BR> + make</CODE></P></LI> + <LI>Jetzt erstelle das Gerät <CODE>/dev/mga_vid</CODE>: + <P><CODE>mknod /dev/mga_vid c 178 0</CODE></P> + <P>und lade das Kernelmodul:</P> + <P><CODE>insmod mga_vid.o</CODE></P></LI> + <LI>Du solltest sicherstellen, dass das Modul die Größe des + Grafikkartenspeichers korrekt ermittelt hat. Benutze dazu + <CODE>dmesg</CODE>. Wenn die Angabe nicht stimmt, dann gib nach + <CODE>rmmod mga_vid</CODE> mithilfe der Option <CODE>mga_ram_size</CODE> + die Größe explizit an: + <P><CODE>insmod mga_vid.o mga_ram_size=16</CODE></P></LI> + <LI>Wenn das Modul automatisch geladen und entladen werden soll, sobald + es benötigt wird, so füge die folgende Zeile in der Datei + <CODE>/etc/modules.conf</CODE> ein: + <P><CODE>alias char-major-178 mga_vid</CODE></P> + <P>Jetzt kopiere <CODE>mga_vid.o</CODE> in das entsprechende Verzeichnis + unterhalt von <CODE>/lib/modules/<Kernelversion>/irgendwo</CODE>. + </P> + <P>Jetzt gib ein:</P> + <P><CODE>depmod -a</CODE></P></LI> + <LI>Schließlich musst du noch MPlayer (erneut) compilieren. + <CODE>configure</CODE> wird automatisch <CODE>/dev/mga_vid</CODE> finden + und den 'mga'-Treiber erstellen. Die entsprechende Option für + MPlayer lautet <CODE>-vo mga</CODE>, wenn du mit dem matroxfb + auf der Console arbeitest, oder <CODE>-vo xmga</CODE>, wenn du unter + XFree 3.x.x oder XFree 4.x.x arbeitest.</P></LI> +</OL> + +<P>Der mga_vid-Treiber kooperiert mit Xv.</P> + +<P>Das <CODE>/dev/mga_vid</CODE>-Gerät kann z.B. mit <CODE>cat +/dev/mga_vid</CODE> ausgelesen werden, um ein paar Informationen über +den aktuellen Zustand zu erhalten. Die Helligkeit kann zusätzlich mit +z.B. <CODE>echo "brightness=120" > /dev/mga_vid</CODE> angepasst +werden.</P> + + +<H4><A NAME="tdfxfb">2.3.1.2.7 3dfx-YUV-Unterstützung (tdfxfb)</A></H4> + +<P>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 +und <CODE>configure</CODE> mit der Option <CODE>--enable-tdfxfb</CODE> +aufrufen.</P> + + +<H4><A NAME="opengl">2.3.1.2.8 OpenGL-Ausgabe</A></H4> + +<P>MPlayer 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-Implementation hast, die Xv nicht unterstützt, so mag OpenGL eine +brauchbare Alternative sein.</P> + +<P>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 <A HREF="http://utah-glx.sourceforge.net">http://utah- +glx.sourceforge.net</A> findest du Details zur Installation.</P> + +<P>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 <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> +findest du Details zur Installation.</P> + + +<H4><A NAME="aalib">2.3.1.2.9 AAlib - Ausgabe im Textmodus</A></H4> + +<P><B>AAlib</B> 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. +MPlayer enthält einen sehr gut brauchbaren Treiber für +AAlib. Wenn <CODE>./configure</CODE> feststellt, dass die AAlib installiert +ist, dann wird anschließend der AAlib-Treiber gebaut.</P> + +<TABLE BORDER=0> + <TR><TD COLSPAN=4><P><B>Du kannst diese Tasten im AA-Fenster benutzen, + um die Render-Optionen zu beeinflussen:</B></P></TD></TR> + <TR><TD> </TD><TD><CODE>1</CODE></TD><TD> </TD> + <TD>Kontrast verringern</TD></TR> + <TR><TD></TD><TD><CODE>2</CODE></TD><TD></TD> + <TD>Kontrast erhöhen</TD></TR> + <TR><TD></TD><TD><CODE>3</CODE></TD><TD></TD> + <TD>Helligkeit verringern</TD></TR> + <TR><TD></TD><TD><CODE>4</CODE></TD><TD></TD> |