diff options
author | 2003-02-08 00:00:00 +0000 | |
---|---|---|
committer | 2003-02-08 00:00:00 +0000 | |
commit | 4e8a50437110dc3d70e406c8d3dbf2a522ff5594 (patch) | |
tree | 46073083dcaa4fb9e61949d9641319d525ab8f1c /DOCS/de/video.html | |
parent | 6f2b2246d24f9501b057533fc2eb75187fe56f56 (diff) |
Rename documentation directories to two-letter language codes.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9333 b3059339-0415-0410-9bf9-f77b7e298cf2
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> + <TD>Helligkeit erhöhen</TD></TR> + <TR><TD></TD><TD><CODE>5</CODE></TD><TD></TD> + <TD>Schnelles Rendern an-/ausschalten</TD></TR> + <TR><TD></TD><TD><CODE>6</CODE></TD><TD></TD> + <TD>Wahl des Farbverteilungsmodus (keiner, Fehlerverteilung, + Floyd Steinberg)</TD></TR> + <TR><TD></TD><TD><CODE>7</CODE></TD><TD></TD> + <TD>Bild invertieren</TD></TR> + <TR><TD></TD><TD><CODE>a</CODE></TD><TD></TD> + <TD>schaltet zwischen den MPlayer- und den AA-Tastenbelegungen um + </TD></TR> +</TABLE> + +<P><B>Die folgenden Kommandozeilenparamter stehen zur VerfügungT:</B></P> +<DL> + <DT><CODE>-aaosdcolor=V</CODE></DT> + <DD>OSD-Farbe ändern</DD> + + <DT><CODE>-aasubcolor=V</CODE></DT> + <DD>Farbe der Untertitel ändern + <P><I>V kann folgende Werte annehmen: (0/normal, 1/dark ( = dunkel), + 2/bold ( = fett), 3/bold font ( = fette Schrift), 4/reverse ( = negative + Farben), 5/special)</I></P></DD> +</DL> + +<P><B>Die AAlib selber bietet ebenfalls eine große Anzahl von Optionen. +Hier sind die wichtigsten:</B></P> + +<DL> + <DT><CODE>-aadriver</CODE></DT> + <DD>wählt den empfohlenen aa-Treiber (X11, curses, Linux)</DD> + + <DT><CODE>-aaextended</CODE></DT> + <DD>benutze alle 256 Zeichen</DD> + + <DT><CODE>-aaeight</CODE></DT> + <DD>benutze auch ASCII-Zeichen mit dem achten Bit</DD> + + <DT><CODE>-aahelp</CODE></DT> + <DD>gibt alle aalib-Optionen aus</DD> +</DL> + +<P>ANMERKUNG: 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 <CODE>SVGATextMode</CODE>, um einen möglichst +großen Textmodus zu wählen, und genieß den Film! (Hercules- +Karten als zweitem Ausgebegerät rocken :)) (Kann irgendjemand +fbdev/hgafb beibringen, Konvertierung/Farbverteilung vorzunehmen? Wär +nett :))</P> + +<P>Wenn dein Computer nicht schnell genug ist, um alle Bilder anzuzeigen, +dann benutz <CODE>-framedrop</CODE>.</P> + +<P>Wenn du auf einem Terminal abspielst, dann erzielst du mit dem Linux- +Treiber (<CODE>-aadriver linux</CODE>) bessere Ergebnisse als mit dem curses- +Treiber. Allerdings benötigst du dafür auch Schreibrechte auf +<CODE>/dev/vcsa<terminal></CODE>. Das wird nicht automatisch von aalib +festgestellt, aber vo_aa versucht, den besten Modus herauszufinden. Lies <A +HREF="http://aa-project.sourceforge.net/tune/">http://aa- +project.sourceforge.net/tune/</A> für weitere Tuningtipps.</P> + + +<H4><A NAME="vesa">2.3.1.2.10 VESA-Ausgabe über das VESA-BIOS</A></H4> + +<P>Dieser Treiber ist vom Design her ein <B>generischer Treiber</B> 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. +<BR><B>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</B> (Seite 70) +hat folgendes zu sagen:</P> + +<BLOCKQUOTE> + <B>Design für zwei Controller</B><BR> + + 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. Das 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. +</BLOCKQUOTE> + +<P>Somit hast du also eine Chance, den TV-Ausgang mit diesem Treiber zum +Laufen zu bringen.<BR> +(Ich vermute, dass der TV-Ausgang normalerweise auf einer separaten +Grafikkarte oder zumindest ein separater Ausgang ist.)</P> + + +<H4>VORTEILE</H4> + +<UL> + <LI>Du hast die Möglichkeit, selbst dann Filme anzusehen, wenn + <B>Linux nichts von deiner Grafikhardware weiß</B>.</LI> + <LI>Du musst keine einzige Grafikanwendung installiert haben (wie + X11/XFree86, fbdev usw.). Dieser Treiber wird im <B>Textmodus</B> + benutzt.</LI> + <LI>Die Chancen stehen gut, dass der <B>TV-Ausgang funktioniert</B>. (Es + funktioniert nachweislich zumindest auf ATI-Karten.)</LI> + <LI>Dieser Treiber ruft wirklich die <B>int 10h</B>-Routine auf und ist + dementsprechend kein Emulator - er ruft <B>echte</B> Funktionen des + <B>echten</B> BIOS im <B>Real</B>-Modus auf (bzw. im vm68-Modus).</LI> + <LI>Du kannst den Treiber zusammen mit VIDIX benutzen und erhälst + dadurch gleichzeitig hardwarebeschleunigte Grafikanzeige <B>UND</B> den + TV-Ausgang! (für ATI-Karten empfohlen)</LI> + <LI>Wenn du ein VESA-VBE-3.0+-BIOS hast und irgendwo die Optionen + <CODE>monitor_hfreq</CODE>, <CODE>monitor_vfreq</CODE>, + <CODE>monitor_dotclock</CODE> angegeben werden (Kommandozeile, + Konfigurationsdatei), dann bekommst du die höchstmögliche + Bildwiederholrate (mit den generischen Timingformeln). Um dieses Feature + zu aktivieren, müssen <B>alle</B> Monitoroptionen angegeben + werden.</LI> +</UL> + + +<H4>NACHTEILE</H4> + +<UL> + <LI>Der Treiber funtkioniert nur auf <B>x86-Systemen</B>.</LI> + <LI>Er kann nur von <B>root</B> benutzt werden.</LI> + <LI>Momentan ist er nur für <B>Linux</B> verfügbar.</LI> +</UL> + +<P>Benutz diesen Treiber nicht mit <B>GCC 2.96</B>! Das wird nicht +funktionieren!</P> + + +<H4>BEI VESA VERFÜGBARE KOMMANDOZEILENOPTIONEN</H4> + +<DL> + <DT><CODE>-vo vesa:opts</CODE></DT> + <DD>momentan erkannte Optionen <B>dga</B>, um den DGA-Modus zu erzwingen + und <B>nodga</B>, um ihn zu deaktivieren. Im DGA-Modus kannst du den + Doppelpuffermodus mit <CODE>-double</CODE> aktivieren. Anmerkung: Du + kannst diese Parameter auch weglassen, um die <B>automatische + Erkennung</B> des DGA-Modus zu ermöglichen.</DD> +</DL> + + +<H4>BEKANNTE PROBLEME UND WIE MAN SIE UMGEHT</H4> + +<UL> + <LI>Wenn du unter Linux eine <B>NLS</B>-Schrift verwendest und du den + VESA-Treiber aus dem Textmodus heraus aufrufst, dann wird nach dem + Beenden von MPlayer die <B>ROM-Schrift</B> anstelle der nationalen + geladen sein. Du kannst die nationale Schriftart erneut mit + <B><I>setsysfont</I></B>-Tool laden, das z.B. bei Mandrake zur + Distribution gehört.<BR> (<B>Tipp:</B> Das gleiche Tool wird + für die Lokalisation von fbdev verwendet.)</LI> + <LI>Eine <B>Linux-Grafiktreiber</B> aktualisieren nicht den aktiven + <B>BIOS-Modus</B> im DOS-Speicher. Wenn du also so ein Problem hast, dann + benutze den VESA-Treiber nur aus dem <B>Textmodus</B> heraus. Andernfalls + wird immer der Textmodus (#03) aktiviert werden, und du wirst den + Computer neustarten müssen.</LI> + <LI>Oftmals siehst du nur einen <B>schwarzen Bildschirm</B>, wenn der + VESA-Treiber beendet wird. Um die Anzeige wieder in den richtigen Zustand + zu versetzen, wechsele einfach zu einer anderen Console (mit <B>Alt- + Fx</B>) und wieder zurück.</LI> + + <LI>Um eine <B>funktionierenden TV-Ausgabe</B> 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.</LI> +</UL> + +<H4><A NAME="x11">2.3.1.2.11 X11</A></H4> + +<P>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 <CODE>-fs - +zoom</CODE>, aber die ist trotzdem langsam. Die meisten Karten bieten +Unterstützung für Hardwareskalierung. Benutze also <CODE>-vo +xv</CODE> in den meisten fällen bzw. <CODE>-vo xmga</CODE> bei Matrox- +Karten.</P> + +<P>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!</P> + +<P>Softwareskalierung ist sehr langsam. Versuch also besser, vorher in einen +anderen Videomodus zu schalten. Das ist sehr einfach. Such die +<A HREF="#dga_modelines">Modelines in der DGA-Sektion</A> und füge sie +in deine <CODE>XF86Config</CODE> ein.</P> + +<UL> + <LI>Wenn du XFree86 4.x.x hast, dann benutze die Option <CODE>-vm</CODE>. + MPlayer wird dann die Auflösung in diejenige ändern, + in die dein Film am besten hineinpasst. Wenn das nicht funktioniert:</LI> + <LI>Unter XFree86 3.x.x musst du mit <B>CTRL-ALT-plus</B> und <B>-minus</B> + die Auflösung ändern.</LI> +</UL> + +<P>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.</P> + + +<H4><A NAME="vidix">2.3.1.2.12 VIDIX</A></H4> + +<H4>EINLEITUNG</H4> + +<P>VIDIX ist die Abkürzung für <B>VID</B>eo <B>I</B>nterface for +*ni<B>X</B> (Video-Schnittstelle für *n*x).<BR> 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 +Matroxkarten tut. VIDIX ist ebenfalls sehr portabel.</P> + +<P>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.</P> + + +<H4>BENUTZUNG</H4> + +<UL> + <LI>Du kannst den eigenständigen Videotreiber benutzen: + <CODE>-vo vidix</CODE><BR> + 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 + <CODE>XF86Config</CODE>. 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.</LI> + + <LI>Du kannst auch das VIDIX-Untergerät verwenden, das bei vielen + Treibern zur Verfügung steht:<BR> + <CODE>-vo vesa:vidix</CODE> (<B>nur unter Linux</B>) und + <CODE>-vo fbdev:vidix</CODE></LI> +</UL> + +<P>Es ist in der Tat nicht wichtig, welcher Videoausgabetreiber mit +<B>VIDIX</B> verwendet wird.</P> + + +<H4>ANFORDERUNGEN</H4> + +<UL> + <LI>Die Grafikkarte sollte sich gerade im Grafikmodus befinden (ich + schreibe <B>sollte</B>, weil ich's mal im Textmodus ausprobiert habe - es + funktioniert zwar, produziert aber hässliche Ausgabe ;) Benutze in + diesem Fall AAlib).<BR> + <I>Anmerkung: Jeder kann diesen Trick ausprobieren, indem er den + Moduswechsel im vo_vesa-Treiber auskommentiert.</I></LI> + <LI>MPlayers Videoausgabetreiber sollte den aktiven Videomodus + kennen und in der Lage sein, dem VIDIX-Untergerät ein paar + Charakteristika des X-Servers mitzuteilen.</LI> +</UL> + +<P>Ich hoffe, dass jeder von MPlayers Videoausgabetreibern das +<CODE>:vidix</CODE>-Untergerät erkennt.</P> + + +<H4>BEDIENUNG</H4> + +<P>Wenn VIDIX als <B>Untergerät</B> (<CODE>-vo vesa:vidix</CODE>) +benutzt wird, dann wird die Konfiguration des Videomodus vom +Videoausgabegerät erledigt (kurz <B>vo_server</B>). Deswegen kannst du +die gleichen Kommandozeilenparameter wie für vo_server verwenden. +Zusätzlich ist die Option <CODE>-double</CODE> global verfügbar. +(Ich empfehle diese Option zumindest bei VIDIX und ATI-Karten.)<BR> <CODE>-vo +xvidix</CODE> erkennt momentan die folgenden Optionen: <CODE>-fs -zoom -x -y +-double</CODE>.</P> + +<P>Du kannst den VIDIX-Treiber auch direkt als drittes Teilargument auf der +Kommandozeile angeben:<BR><BR> + + <code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double + file.avi</code><BR> +oder<BR> + <code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp + 32 file.avi</code><BR><BR> + +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 <B>abstürzen</B>). +Du solltest das wirklich NUR DANN tun, wenn du absolut sicher bist, dass es +funktioniert und MPlayer 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 MPlayer automatishc +den richtigen Treiber aussucht.</P> + +<P>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 <CODE>libdha</CODE>). Aber es gibt immer +noch die Hoffnung, dass es auf den Systemen funktioniert, auf denen auch X11 +funktioniert.</P> + +<P>Da VIDIX direkten Zugriff auf die Hardware benötigt, musst du MPlayer +entweder als root starten oder der Programmdatei das SUID-Bit setzen +(<B>WARNUNG: Das ist ein Sicherheitsrisiko!</B>). Alternativ kannst du auch +spezielle Kernelmodule benutzen:</P> + +<OL> + <LI>Lade dir die + <A HREF="http://www.arava.co.il/matan/svgalib/">Entwicklerversion</A> + der svgalib herunter (z.B. 1.9.17), + <B>ODER</B> lade dir eine von Alex speziell für die Benutzung mit + MPlayer modifizierte Version herunter (die nicht die svgalib-Sourcen + zum Compilieren benötigt): + <A HREF="http://www.mplayerhq.hu/~alex/svgalib_helper-1.9.17-mplayer.tar.bz2"> + svgalib_helper-1.9.17-mplayer.tar.bz2</A>. + <LI>Compiliere das Modul im <CODE>svgalib_helper</CODE>-Verzeichnis + (das im <CODE>svgalib-1.9.17/kernel/</CODE>-Verzeichnis gefunden werden + kann, wenn du die Sourcen von der svgalib-Seite heruntergeladen hast) und + lade es mit insmod.</LI> + <LI>Verschiebe das <CODE>svgalib_helper</CODE>-Verzeichnis nach + <CODE>mplayer/main/libdha/svgalib_helper</CODE>.</LI> + <LI>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 <CODE>libdha/Makefile</CODE> befindet.</LI> + <LI>Compiliere und installiere libdha.</LI> +</OL> + +<H4><A NAME="vidix_ati">2.3.1.2.12.1 ATI-Karten</A></H4> + +<P>Momentan werden die meisten ATI-Karten unterstützt, von der Mach64 +bis hin zur neuesten Radeon.</P> + +<P>Es gibt zwei compilierte Binaries: <CODE>radeon_vid</CODE> für Radeons +und <CODE>rage128_vid</CODE> für Rage128-Karten. Du kannst entweder eine +der beiden erzwingen oder das VIDIX-System automatisch alle verfügbaren +Treiber ausprobieren lassen.</P> + + +<H4><A NAME="vidix_matrox">2.3.1.2.12.2 Matrox-Karten</A></H4> + +<P>Matrox G200,G400,G450 und G550 funktionieren.</P> + +<P>Der Treiber unterstützt Videoequalizer und sollte fast genauso schnell +wie der <A HREF="#mga_vid">Matrox-Framebuffer</A> sein.</P> + + +<H4><A NAME="vidix_trident">2.3.1.12.3 Trident-Karten</A></H4> + +<P>Es gibt einen Treiber für den Trident Cyberblade/i1-Chipsatz, der auf +VIA Epia-Mainboards eingesetzt wird.</P> + +<P>Der Treiber wurde von Alastair M. Robinson geschrieben und weiterentwickelt, +welcher auch die neuesten Treiberversionen auf seiner +<A HREF="http://www.blackfiveservices.co.uk/EPIAVidix.shtml">Homepage</A> zum +Download anbietet. Dieer Treiber wird bei MPlayer immer sehr schnell nach +Updates implementiert, sodass die CVS-Version von MPlayer immer auf dem +aktuellen Stand sein sollte.</P> + + +<H4><A NAME="vidix_3dlabs">2.3.1.2.12.4 3DLabs-Karten</A></H4> + +<P>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. +</P> + + +<H4><A NAME="directfb">2.3.1.2.13 DirectFB</A></H4> + +<P><I>"DirectFB ist eine Grafikbibliothek, deren Zielplattform eingebettete +Systeme sind. Sie bietet maximale Hardwarebeschleunigung bei minimalem +Ressourcenverbrauch und minimalem Overhead."</I> - Zitat von <A +HREF="http://www.directfb.org">http://www.directfb.org</A>.</P> + +<P>Ich lasse die DirectFB-Features in dieser Sektion weg.</P> + +<P>Obwohl MPlayer 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.</P> + +<P>Versuche, immer die neueste Version von DirectFB zu verwenden. Du kannst +DirectFB-Optionen mit der <CODE>-dfbopts</CODE>-Option auf der Kommandozeile +angeben. Layer-Auswahl erfolgt durch Angabe als Teilargument, z.B. mit +<CODE>-vo directfb:2</CODE> (Layer -1 ist der Standardwert: automatische +Layerauswahl). </P> + + +<H4><A NAME="dfbmga">2.3.1.2.14 DirectFB/Matrox (dfbmga)</A></H4> + +<P>Bitte lies die <A HREF="#directfb">DirectFB-Sektion</A> für generelle +Informationen über DiretcFB.</P> + +<P>Dieser Videoausgabetreiber wird auf einer Matrox G400 den CRTC2 (des +zweiten Ausgangs) aktivieren und damit das Video <B>unabhängig</B> vom +primären Ausgang anzeigen.</P> + +<P>Anweisungen, um das zum Laufen zu bringen, stehen in der <A +HREF="../tech/directfb.txt">Techniksektion</A> oder direkt auf der <A +HREF="http://www.sci.fi/~syrjala/directfb/readme.txt">Homepage von +Ville Syrjala's</A>.</P> + +<P>Anmerkung: Uns ist es nicht gelungen, das zum Laufen zu bringen, aber +anderen schon. Wie auch immer, eine Portierung des CRTC2-Codes für +<B>mga_vid</B> ist bereits in Arbeit.</P> + + +<H4><A NAME="mpegdec">2.3.1.3 MPEG-Dekoderkarten</A></H4> + +<H4><A NAME="dvb">2.3.1.3.1 DVB</A></H4> + +<P>MPlayer unterstützt Karten mit dem Siemens-DVB-Chipsatz von +Herstellern wie Siemens, Technotrend, Galaxis oder Hauppauge. Die neuesten +DVB-Treiber gibt's auf der <A HREF="http://www.linuxtv.org">Linux TV- +Seite</A>. Wenn du in Transcodierung in Software machen willst, dann brauchst +du eine CPU mit mindestens 1GHz.</P> + +<P><CODE>configure</CODE> sollte automatisch deine DVB-Karte erkennen. Wenn +es das nicht tut, dann erzwinge DVB-Unterstützung mit</P> + +<PRE> + ./configure --enable-dvb +</PRE> + +<P>Wenn die ost-Headerdateien nicht an ihrem normalen Platz liegen, dann gib +explizit den Pfad zu ihnen an:</P> + +<PRE> + ./configure --with-extraincdir=<DVB-Quellenverzeichnis>/ost/include +</PRE> + +<P>Dann compiliere und installiere wie sonst auch.</P> + + +<H4>BEDIENUNG</H4> + +<P>Hardwaredecodierung (Abspielen von Standard-MPEG1/2-Dateien) geschieht mit +diesem Kommando:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes file.mpg|vob +</PRE> + +<P>Softwaredecodierung oder die Transcodierung verschiedener Formate nach +MPEG1 klappt so:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc deinedatei.ext + mplayer -ao mpegpes -vo mpegpes -vop fame,expand deinedatei.ext +</PRE> + +<P>Beachte, dass DVB-Karten nur bestimmte Bildhöhen unterstützen: +288 und 576 für PAL und 240 und 480 für NTSC. Du <B>musst</B> das +Bild vorher skalieren, wenn die Höhe nicht einer der oben erwähnten +entspricht: <CODE>-vop scale=width:height</CODE>. 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-DivX kannst du folgendes probieren:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=512:576 +</PRE> + +<P>Wenn du einen Widescreen-Film hast und du ihn nicht auf die volle +Höhe skalieren möchtest, dann kannst du den +<CODE>expand=w:h</CODE>-Filter benutzen, um schwarze Balken +hinzuzufügen. Um ein 640x384-DivX anzuschauen:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,expand=640:576 file.avi +</PRE> + +<P>Wenn deine CPU für 720x576-DivX zu langsam ist, dann skalier +herunter:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:576 file.avi +</PRE> + +<P>Wenn sich die Geschwindigkeit nicht verbessert, dann skalier auch in +vertikaler Richtung:</P> + +<PRE> + mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:288 file.avi +</PRE> + +<P>Für ein OSD und Untertitel kannst du das OSD-Feature des expand- +Filters benutzen. Anstelle von <CODE>expand=w:h</CODE> oder +<CODE>expand=w:h:x:y</CODE> benutzt du dafür +<CODE>expand=w:h:x:y:1</CODE> (der fünfte Parameter <CODE>:1</CODE> +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 +<CODE>-subpos <0-100></CODE> erreichen, wobei <CODE>-subpos 80</CODE> +meistens eine gute Wahl darstellt.</P> + +<P>Um Filme mit weniger/mehr als 25 Bildern pro Sekunde auf einem PAL- +Fernseher abzuspielen, oder wenn du eine langsame CPU hast, verwende die +Option <CODE>-framedrop</CODE>.</P> + +<P>Um das Höhen-/Breitenverhältnis des 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:</P> + +<PRE> +für 3:4 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale +für 16:9 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024 +</PRE> + + +<H4>AUSBLICK</H4> + +<P>Wenn du Fragen hast oder an der Diskussion über zukünfitge +Features teilnehen willst, dann melde dich an unserer <A +HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A> +Mailingliste an. Denk bitte daran, dass dort Englisch gesprochen wird.</P> + +<P>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 Echtzeittranscodierung zwischen MPEG2 und MPEG4 (partielle +Decompression) rechnen.</P> + + +<H4><A NAME="dxr2">2.3.1.3.2 DXR2</A></H4> + +<P>TODO: Bitte schreib hier jemand ein paar Informationen rein.</P> + + +<H4><A NAME="dxr3">2.3.1.3.3 DXR3/Hollywood+</A></H4> + +<P>MPlayer 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.</P> + +<P>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 <A HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood +Plus for Linux</A>. <CODE>configure</CODE> sollte die Karte automatisch +finden. Die Compilierung sollte auch problemlos funktionieren.</P> + + +<H4>BEDIENUNG</H4> + +<DL> + <DT><CODE>-vo dxr3:prebuf:sync:norm=x:<device></CODE></DT> + + <DD><CODE>overlay</CODE> aktiviert das Overlay anstelle des TV-Ausgangs. + Dafür brauchst du ein korrekt konfiguriertes Overlaysetup. Am + einfachsten konfigurierst du das Overlay mit dem Tool + <CODE>autocal</CODE>. Danach starte MPlayer mit dxr3-Ausgabe und + ohne Overlay anzuschalten. Starte <CODE>dxr3view</CODE>. Mit dxr3view + kannst du die Overlayeinstellungen verändern und siehst die + Auswirkungen sofort. Eventuell wird dieses Feature irgendwann vom + MPlayer-GUI unterstützt. Wenn du das Overlay richtig + eingestellt hast, dann brauchst du dxr3view nicht mehr laufen zu + lassen.<BR> + + <CODE>prebuf</CODE> 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 MPlayer in diesem + Modus versucht, den Puffer ständig mit Daten gefüllt zu halten. + Wenn du einen langsamen Rechner hast, dann wird MPlayer + 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 MPlayer nicht nach MPEG + encodieren muss und den Puffer sehr schnell wird füllen + können.<BR> + + Mit Prebuffering ist die Videowiedergabe <B>viel</B> 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.<BR> + + Wenn kein Prebuffering verwendet wird, dann ist der em8300 viel + anfälliger gegenüber CPU-Last. Somit wird dringend empfohlen, + MPlayers <CODE>-framedrop</CODE>-Option zu verwenden, um die A/V- + Sync zu erhalten.<RB> + + <CODE>sync</CODE> 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.<BR> + + <CODE>norm=x</CODE> setzt den TV-Standard der DXR3-Karte, ohne dafür + externe Programme wie <CODE>em8300setup</CODE> 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.<BR> + + <CODE><device></CODE> = Gerätenummer wählt die zu + verwendene em8300-Karte, falls du mehrere davon hast.<BR> + + Jede dieser Optionen kann auch weggelassen werden.<BR> + + <CODE>:prebuf:sync</CODE> scheint sehr gut zu funktionieren, wenn du DivX + abspielst. Es gab Berichte von Leuten, die Probleme mit <CODE>prebuf</CODE> + bei der Wiedergabe von MPEG1/2-Dateien hatten. Du + solltest es also zuerst ohne Optionen probieren. Wenn du Sync-Probleme + hast, dann probier <CODE>:sync</CODE> aus.</DD> + + <DT><CODE>-ao oss:/dev/em8300_ma-X</CODE></DT> + <DD>Audioausgabe, wobei <CODE>X</CODE> die Gerätenummer ist + (0 bei nur einer Karte).</DD> + + <DT><CODE>-aop list=resample:fout=xxxxx</CODE></DT> + <DD>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 (<CODE>-ac hwac3</CODE>).</DD> + + <DT><CODE>-vop lavc/fame</CODE></DT> + <DD>Wenn du nicht-MPEG-Filme mit dem em8300 ansehen möchtest (z.B. + DivX oder RealVideo), dann musst du einen MPEG1-Videofilter wie lavcodec + (lavc) oder libfame (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 <CODE>-vop + lavc/fame</CODE>.<BR> + 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 + <CODE>-vop lavc=<quality>:25</CODE> 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.</DD> + + <DT><CODE>-vop lavc,expand=-1:-1:-1:-1:1</CODE></DT> + <DD>Obwohl der DXR3-Treiber ein OSD über das MPEG1-/2-/4-Video + projezieren kann, ist es qualitativ deutlich schlechter als + MPlayers traditionelles OSD, und es hat diverse Probleme mit der + Erneuerung der Anzeige. Das oben angegebene Kommando 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).</DD> + + + <DT><CODE>-ac hwac3</CODE></DT> + <DD>Der em8300 unterstützt die Audiowiedergabe von AC3-Streams + (Surroundsound) über den digitalen Ausgang der Karte. Schau oben bei + der <CODE>-ao oss</CODE>-Option nach. Sie muss angegeben werden, um den + DXR3-Ausgang anstelle der Soundkarte anzugeben. </DD> +</DL> + + +<H4><A NAME="other">2.3.1.4 Andere Anzeigehardware</A></H4> + +<H4><A NAME="zr">2.3.1.4.1 Zr</A></H4> + +<P>Dieser Treiber ist ein Anzeigetreiber (<CODE>-vo zr</CODE>), 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 +<B>libavcodec</B> benutzt und dementsprechend auch benötigt. Mit dem +speziellen <I>cinemara</I>-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 <CODE>-framedrop</CODE>-Option, +wenn deine Maschine zu langsam ist. Anmerkung: Mein AMD K6-2 350MHz ist +durchaus in der Lage, Filme in VCD-Größe mit <CODE>- +framedrop</CODE> wiederzugeben.</P> + +<P>Dieser Treiber benutzt den Kerneltreiber, den du unter <A +HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A> +herunterladen kannst. Dieser muss also vorher schon funktionieren. +<CODE>configure</CODE> erkennt automatisch vorhandene MJPEG-Karten. Wenn +nicht, dann erzwinge zr mit</P> + +<PRE> + ./configure --enable-zr +</PRE> + +<P>Die Ausgabe kann mit diversen Optionen gesteuert werden. Eine +vollständige Liste findest du in der Manpage. Eine kurze Auflistung gibt +dir auch</P> + +<PRE> + mplayer -zrhelp +</PRE> + +<P>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 +<CODE>512x272</CODE>, und du möchtest ihn im Vollbild auf deiner DC10+ +anschauen. Du hast dann drei Möglichkeiten: den Film auf eine Breite von +<CODE>768</CODE>, <CODE>384</CODE> oder <CODE>192</CODE> zu skalieren. Aus +Geschwindigkeits- und Qualitätsgründen würde ich empfehlen, +den Film auf <CODE>384x204</CODE> mit dem bilinearen Algorithmus zu +skalieren. Die Kommandozeile sieht dazu wie folgt aus:</P> + +<PRE> + mplayer -vo zr -sws 0 -vop scale=384:204 movie.avi +</PRE> + +<P>Das Beschneiden des Bildes kann mit dem <CODE>crop</CODE>-Filter geschehen +oder vom Treiber selber vorgenommen werden. Angenommen, der Film ist zu breit +für die Anzeige deiner Buz, und du möchtest <CODE>-zrcrop</CODE> +benutzen, um den Film schmaler zu machen. Dann benutzt du folgendes +Kommando:</P> + +<PRE> + mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi +</PRE> + +<P>Mit dem <CODE>crop</CODE>-Filter sieht es so aus:</P> + +<PRE> + mplayer -vo zr -vop crop=720:320:80:0 benhur.avi +</PRE> + +<P>Mehrfache Verwendung von <CODE>-zrcrop</CODE> aktiviert den +<I>cinerama</I>-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 <CODE>/dev/video1</CODE>, und der rechte +hängt an deiner DC10+ an <CODE>/dev/video0</CODE>. Der Film hat eine +Auflösung von <CODE>704x288</CODE>. 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 <CODE>10</CODE> haben +möchtest. Dann benutzt du dafür das folgende Kommando:</P> + +<PRE> + mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \ + -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi +</PRE> + +<P>Wie du siehst gelten die Optionen vor dem zweiten <CODE>-zrcrop</CODE> nur +für die DC10+ und die Optionen nach dem zweiten <CODE>-zrcrop</CODE> nur +für die Buz. Die maximale Anzahl an MJPEG-Karten, die am +<I>cinerama</I>-Modus teilnehmen, liegt bei vier, sodass du dir eine +<CODE>2x2</CODE>-Videowand basteln kannst.</P> + +<P>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 <B>ZUERST</B> XawTV, <B>DANN</B> MPlayer +starten, warten, bis MPlayer fertig ist und <B>ZULETZT</B> XawTV +beenden.</P> + +<H4><A NAME="blinken">2.3.1.4.2 Blinkenlights</A></H4> + +<P>Dieser Trieber kann Video mit dem Blinkenlights UDP-Protokoll wiedergeben. +Wenn du nicht weißt, was <A HREF="http://www.blinkenlights.de/"> +Blinkenlights</A> ist, dann brauchst du diesen Treiber auch nicht.</P> + + +<H4><A NAME="tv-out">2.3.1.5 Unterstützung für die TV- +Ausgabe</A></H4> + + +<H4><A NAME="tv-out_matrox">2.3.1.5.1 Matrox G400-Karten</A></H4> + +<P>Unter Linux hast du zwei Möglichkeiten, den TV-Ausgang deiner +G400 anzuschalten:</P> + +<P><B>WICHTIG:</B> Anweisungen für die Matrox G450/G550 und deren +TV-Ausgänge findest du in der nächsten Sektion!</P> + +<UL> + <LI><B>XFree86</B>: mit dem alten Treiber und dem HAL-Modul, welches es + auf der <A HREF="http://www.matrox.com">Matrox-Seite</A> gibt. Damit + bekommst du X auf dem Fernseher, aber <B>keine Hardwarebeschleunigung</B> + wie unter Windows! Der zweite Ausgang besitzt nur einen YUV-Framebuffer. + Der <I>BES</I> (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 <CODE>-vo x11 -fs -zoom</CODE>, aber das wird <B>LANGSAM</B> sein + und den <B>Macrovision</B>-Kopierschutz aktiviert haben. (Du kannst + Macrovision mit <A + HREF="http://avifile.sourceforge.net/mgamacro.pl">diesem Perlscript</A> + umgehen.)</LI> + + <LI><B>Framebuffer</B>: Mit den <B>matroxfb-Modulen</B> 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 + <B>Module</B>! Du musst ebenfalls I2C anschalten. + + <OL> + <LI> + Gehe nach <CODE>TVout/matroxset</CODE> und gib <CODE>make</CODE>. + ein. Installiere <CODE>matroxset</CODE> in ein Verzeichnis, das + in deinem PATH liegt.</LI> + <LI> + Wenn du <CODE>fbset</CODE> nicht installiert hast, dann gehe nach + <CODE>TVout/fbset</CODE> und gib <CODE>make</CODE> ein. Installiere + <CODE>fbset</CODE> in ein Verzeichnis, das in deinem PATH liegt.</LI> + <LI> + Geh jetzt in das Verzeichnis <CODE>TVout/</CODE> in den + MPlayer-Quellen und führe dort <CODE>./modules</CODE> als + root aus. Deine Textmodusconsole wird danach in den Framebuffermodus + umschalten, aus dem es keinen Weg zurück gibt!</LI> + <LI>Editiere als nächstes das Script <CODE>./matroxtv</CODE>. + Es ird dir ein simples Menü präsentieren. Drücke + <B>2</B> gefolgt von <B>ENTER</B>. 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.</LI> + </OL> + + <P>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:</P> + + <P><CODE>echo -e '\033[?25l'</CODE> oder <CODE>setterm -cursor off<BR> + setterm -blank 0</CODE></P> + + <P>Wahrscheinlich möchtest du das in ein Script packen und dabei + gleich den Bildschirm löschen. Um den Cursor wieder + anzuschalten:<BR> + <CODE>echo -e '\033[?25h'</CODE> oder <CODE>setterm -cursor on</CODE></P> + + <P>Yeah, cool! Starte die Wiedergabe mit <CODE>mplayer -vo mga -fs - + screenw 640 -screenh 512 <Dateiname></CODE><BR> + + (Wenn du X benutzt, dann wechsel jetzt auf den matroxfb mit z.B. CTRL- + ALT-F1!)<BR> + + Ändere die 640x512, wenn du eine andere Auflösung + verwendest.<BR> + + <B>Genieß die ultra-schnelle und featurereiche Wiedergabe + mit dem Matrox-TV-Ausgang (sogar noch besser als Xv)!</B></P> + </LI> +</UL> + +<H4>Matrox-TV-Ausgangskabel zum Selberbau</H4> + +<P>Niemand übernimmt Verantwortung für irgendetwas oder jegliche +Schäden, die durch diese Dokumentation entstehen.</P> + +<P><B>Kabel für die G400</B>: 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)</P> + +<P><B>Kabel für die G450</B>: 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)</P> + +<H4><A NAME="tv-out_matrox_g450">2.3.1.5.2 Matrox G450/G550-Karten</A></H4> + +<P>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 <B>mga_vid</B>-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 <B>BES</B> - +Erläuterungen zum BES gibt's in der G400-Sektion oben) am Fernseher. +Somit kannst du momentan nur den <I>fbdev</I>-Treiber benutzen.</P> + +<P>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).</P> + +<P>Der dafür benötigte Kernelpatch und eine detaillierte Anleitung +kann auf <A HREF="http://www3.sympatico.ca/dan.eriksen/matrox_tvout/"> +http://www3.sympatico.ca/dan.eriksen/matrox_tvout/</A> gefunden werden.</P> + +<H4><A NAME="tv-out_ati">2.3.1.5.3 ATI-Karten</A></H4> + + +<H4>VORWORT</H4> + +<P>Momentan möchte ATI keinen einzigen ihrer TV-Ausgabe-Chips unter +Linux unterstützen, da sie die Macrovision-Technologie lizensiert +haben.</P> + + +<H4>STATUS DER ATI-TV-AUSGABEUNTERSTÜTZUNG UNTER LINUX</H4> + +<UL> + <LI><B>ATI Mach64</B>: Von + <A HREF="http://gatos.sf.net">gatos</A> unterstützt.</LI> + <LI><B>ASIC Radeon VIVO</B>: Von + <A HREF="http://gatos.sf.net">gatos</A> unterstützt.</LI> + <LI><B>Radeon</B> and <B>Rage128</B>: Von MPlayer unterstützt! + Lies die <a href="#vesa">VESA-Treiber-</a> und <A HREF="#vidix">VIDIX-</A> + Sektionen.</LI> + <LI><B>Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4</B>: Von + <A HREF="http://www.stud.uni-hamburg.de/users/lennart/projects/atitvout/"> + atitvout</A> unterstützt.</LI> +</UL> + +<P>Benutze bei anderen Karten einfach den <A HREF="#vesa">VESA-Treiber</A> +ohne VIDIX. Dafür brauchst du aber eine schnelle CPU.</P> + +<P>Nur eines musst du tun - <B>das TV-Kabel vor dem Booten eingeteckt +haben</B>, da das BIOS sich nur einmal während der POST-Prozedur +initialisiert.</P> + + +<H4><A NAME="tv-out_voodoo">2.3.1.5.4 Voodoo 3</A></H4> + +<P>Lies <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">diese +URL</A>.</P> + + +<H4><A NAME="tv-out_nvidia">2.3.1.5.5 nVidia</A></H4> + +<P>Zuerst MUSST du die Closed-Soure-Treiber von <A +HREF="http://nvidia.com">http://nvidia.com</A> herunterladen. Ich werde +Installation und Konfiguration nicht im Detail beschreiben, da diese +außerhalb der Aufgabe dieses Dokuments liegt.</P> + +<P>Nachdem du sichergegangen bist, dass XFree86, XVideo und die 3D- +Beschleunigung funktionieren, ändere die <CODE>XF86Config</CODE>, und +passe das folgende Beispiel deiner Karte an:</P> + +<PRE> +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 +</PRE> + +<P>Natürlich ist der wichtige Teil die TwinView-Optionen.</P> + +</BODY> +</HTML> |