Mercurial > mplayer.hg
view DOCS/German/video.html @ 6072:405cf26ca5b8
100l sorry, won't commit again.
author | jonas |
---|---|
date | Mon, 13 May 2002 18:40:08 +0000 |
parents | 63f08ed66948 |
children | 30a2f1807c5b |
line wrap: on
line source
<HTML> <HEAD> <STYLE> .text {font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 14px;} </STYLE> </HEAD> <BODY BGCOLOR=white> <FONT CLASS="text"> <P><B><A NAME=2.3.1>2.3.1. Video Ausgabe-Geräte</A></B></P> <P><B><A NAME=2.3.1.1>2.3.1.1. MTRR</A></B></P> <P>Es ist SEHR zu empfehlen, dass man die MTRR Register aktiviert, denn sie können eine großen Geschwindigkeits-Schub bringen. <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<BR> </CODE></P> <P>Dies ist richtig, es zeigt meine Matrox G400 mit 16Mb Speicher. Ich habe die Einstellung von XFree 4.x.x, was die MTRR Register automatisch einstellt.</P> Wenn nichts funktioniert, muss du es manuell setzen. Als erstes musst du die Base-Adresse finden. Du hast 3 Möglichkeiten um sie zu finden:</P> <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>durch /proc/pci (verwende lspci -v Befehl): <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>durch die mga_vid Kerneltreiber-Meldungen (verwende dmesg): <P><CODE>mga_mem_base = d8000000</CODE></P> </UL></P> <P>So, nun gilt es die Speichergröße finden. Dies ist sehr einfach, rechne einfach die Video-RAM-Größe ins Hexdezimal oder verwende diese Tabelle:</P> <TABLE BORDER=0> <TD> </TD><TD>1 MB</TD><TD WIDTH=10%></TD><TD>0x100000</TD><TR> <TD></TD><TD>2 MB</TD><TD></TD><TD>0x200000</TD><TR> <TD></TD><TD>4 MB</TD><TD></TD><TD>0x400000</TD><TR> <TD></TD><TD>8 MB</TD><TD></TD><TD>0x800000</TD><TR> <TD></TD><TD>16 MB</TD><TD></TD><TD>0x1000000</TD><TR> <TD></TD><TD>32 MB</TD><TD></TD><TD>0x2000000</TD><TR> </TABLE> <P>Du weisst die Base-Adresse und die Speichergröße? Lass uns die MTRR Register einstellen! Zum Beispiel für die Matrox Karte von oben (base=0xd8000000) mit 32MB RAM (size=0x2000000) führe 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-2's [z.B. 266Mhz, stepping 0] unterstützen kein MTRR, aber stepping 12 CPUs tuen es ('<CODE>cat /proc/cpuinfo</CODE>' um zu überprüfen').</P> <P><B><A NAME=2.3.1.2>2.3.1.2. Xv</A></B></P> <P>Bei XFree86 4.0.2 oder neuer kannst du die Hardware-YUV-Routinen deiner Grafikkarte verwenden, mit Hilfe der XVideo Erweiterung. Diese Routinen verwendet die Option '-vo xv'. Dieser Treiber unterstützt auch eine Helligkeits/Kontrast/Farbton/etc Anpassung (Es sei den du verwendest den alten, langsamen DirectShow DivX Codec, welcher es überall unterstützt), lies in der Manpage.</P> <P>Das es funktioniert, prüfe folgendes:</P> <P><UL> <LI>Du verwendest XFree86 4.0.2 oder neuer (frühere Versionen haben kein XVideo) <LI>Deine Karte unterstützt Hardwarebeschleunigung (die meisten aktuellen tuen dies) <LI>X lädt die XVideo Erweiterung, das sieht etwa so aus: <P><CODE> (II) Loading extension XVideo</CODE></P> <P>in /var/log/XFree86.0.log</P> <P>HINWEIS: dies lädt nur die XFree86 Erweiterung. In einer guten Installation ist sie immer geladen, aber das bedeutet nicht, dass der Support mit _deiner_ Karte funktioniert!</P> <LI>Deine Karte hat Xv Unterstützung unter Linux. Um es zu überprüfen, tippe 'xvinfo', es ist ein Teil der XFree86 Distribution. Es sollte einen langen Text anzeigen, vergleichbar mit diesem: <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) (...usw...) </PRE> <P>Es muss YUY2 gepackte und YV12 planar Pixelformate unterstützen, um hilfreich für <B>MPlayer</B> zu sein.</P> <LI>Zum Schluss prüfe, ob <B>MPlayer</B> mit 'xv' Unterstützung kompiliert wurde. ./configure zeigt an, ob es eingebaut wurde. </UL></P> <P><B><A NAME=2.3.1.2.1>2.3.1.2.1. 3dfx Karten</A></B></P> <P>Bei älteren 3dfx Treibern sind bekannt, dass sie Probleme mit der XVideo Beschleunigung machen und dass der Treiber unterstützt weder YUY2 noch YV12. Prüfe ob du XFree86 Version 4.2.0 oder neuer hast, es funktioniert mit YV12 und YUY2. Frühere Versionen, auch 4.1.0 <B>stürzten mit YV12 ab</B>! Wenn du seltsame Effekte bei der Benutzung mit -vo xv bemerkst, probier SDL (es unterstützt auch XVideo) und prüfe ob es funkioniert. Siehe <A HREF="#2.3.1.4">SDL Sektion</A> für Details.</P> <P><B>Oder</B> versuche den NEUEN -vo tdfxfb -Treiber! Siehe <A HREF="#2.3.1.9">Sektion 2.3.1.9</A>!</P> <P><B><A NAME=2.3.1.2.2>2.3.1.2.2. S3 Karten</A></B></P> <P>S3 Savage3Ds sollten gut funktionieren, jedoch bei einer Savage4 verwende XFree86 Version 4.0.3 oder neuer (bei Bildproblemen versuche 16bpp). Und für S3 Virge.. existiert xv Unterstützung, die Karte selbst ist jedoch sehr langsam, du solltest sie also besser verkaufen.</P> <P><B>HINWEIS</B>: Savage Karten haben eine langsame YV12 Bildwiedergabe Fähigkeit (es muss eine YV12->YUY2 Konversion durchführen, weil die Savage Hardware YV12 nicht darstellen kann). Wenn also diese Dokumentation an einem gewissen Punkt sagt "dies hat YV12 Ausgabe. Benutze Sie, es ist schneller", ist es nicht sicher. Versuche es mit <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/Savage-driver/savage_drv.o.mmx2.bz2">diesem Treiber</A>, , er benutzt MMX2 für diese Aufgabe und ist schneller als der eingebaute X-Treiber.</P> <P><B><A NAME=2.3.1.2.3>2.3.1.2.3. nVidia Karten</A></B></P> <P>nVidia ist keine gute Wahl für Linux (nach NVidia, ist dies <A HREF="users_against_developers.html#nvidia">nicht wahr</A>). Du musst dazu den binären nVidia- Treiber, verfügbar auf der nVidia Website, verwenden. Der Standard X-Treiber unterstützt kein XVideo für diese Karten, aufgrund der von nVidia geschlossenen Sources/Spezifikationen.</P> <P>Soweit ich weiss enthält der neuste XFree86 Treiber XVideo Unterstützung für Geforce 2 und 3.</P> <P><UL><LI>Riva128 Karten haben keine XVideo Unterstützung, auch nicht mit dem nVidia-Treiber :( Wende dich an NVidia.</UL></P> <P><B><A NAME=2.3.1.2.4>2.3.1.2.4. ATI Karten</A></B></P> <P> <LI>Beim <A HREF="http://www.linuxvideo.org/gatos">GATOS Treiber</A> (den du verwenden solltest) ist VSYNC standardgemäß eingeschaltet. Das bedeutet, dass die Dekodierungsgeschwindigkeit (!) synchron mit der Monitor-Refeshrate ist. Wenn die Wiedergabe langsam zu sein scheint, versuche irgendwie VSYNC auszuschalten oder setze die Refreshrate auf n*(fps des Films) Hz.</LI> <LI>Radeon VE - zur Zeit hat nur die CVS-Versionen von XFree86 einen Treiber für diese Karte, Version 4.1.0 hat keinen. Natürlich kannst du mit <B>MPlayer</B> gut eine <B>beschleunigte</B> Anzeige erhalten, mit oder ohne <B>TV Ausgabe</B>. Es werden auch keine Bibliotheken oder X benötigt. Lies in der <a href=#2.3.1.15>Vidix</a> Abteilung.</LI> </P> <P><B><A NAME=2.3.1.2.5>2.3.1.2.5. NeoMagic Karten</A></B></P> <P> Diese Karten findet man in vielen Laptops. Unglücklicherweise unterstützt der Treiber in X 4.2.0 kein Xv. Wir bieten jedoch einen modifizierten, <A HREF="http://www.mplayerhq.hu/MPlayer/contrib/NeoMagic-driver/neomagic_drv.o.4.2.0.bz2">Xv-fähigen Treiber</A> an. Der Treiber wurde von Stefan Seyfried zur Verfügung gestellt.</P> <P>Um die Wiedergabe von Inhalt mit DVD-Grösse zu erlauben sollte die XF86Config wie folgt aussehen:</P> <P> Section "Device"<BR> <I>[...]</I><BR> Driver "neomagic"<BR> <B>Option "OverlayMem" "829440"</B><BR> <I>[...]</I><BR> EndSection </P> <P><B><A NAME=2.3.1.2.6>2.3.1.2.6. Trident Karten</A></B></P> <P>Wenn du xv mit einer Trident Karte benutzen willst, vorausgesetzt, dass es nicht mit 4.1.0 läuft, probier die neuste cvs von Xfree oder warte auf Xfree 4.2.0. Das neuste cvs enthält Unterstützung für Fullscreen xv mit der Cyberblade XP card.</P> <P><B><A NAME=2.3.1.3>2.3.1.3. DGA</A></B></P> <P><B><A NAME=2.3.1.3.1>2.3.1.3.1. Zusammenfassung</A></B></P> <P>Dieses Dokument versucht mit einigen Worten zu beschreiben, was DGA allgemein ist und was man mit dem DGA Video-Ausgabetreiber für MPlayer alles machen kann (und was es nicht kann).</P> <P><B><A NAME=2.3.1.3.2>2.3.1.3.2. Was ist DGA</A></B></P> <P>DGA ist die Abkürzung für Direct Graphics Access (Direkter Grafik-Zugriff) und bedeutet für ein Programm, das es den X-Server überbrückt und direkt den Framebuffer-Speicher ändert. Technisch gesprochen passiert dies durch Verschieben des Framebuffer-Speichers in den Speicherbereich des Prozesses. Dies wird vom Kernel nur erlaubt, wenn der Anwender Superuser-Rechte besitzt. Man kann diese bekommen duch Einloggen als Root oder durch das Setzen des Suid-Bits für das MPlayer-Programm (NICHT empfohlen!).</P> <P>Es gibt zwei Versionen von DGA: DGA1 wird verwendet unter XFree 3.x.x und DGA2 wurde zu XFree 4.0.1 entwickelt.</P> <P>DGA1 unterstützt nur den direkten Framebuffer-Zugriff, wie oben beschrieben. Für das Ändern der Farbtiefe eines Video-Signals muss man auf die XVidMode Erweiterung zurückgeifen.</P> <P>DGA2 arbeitet mit dem Feature der XVidMode Erweiterung zusammen und erlaubt auch das Ändern der Farbtiefe. So kannst du dem XServer allgemein auf einer 32 Bit Auflösung betreiben und die Farbtiefe damit auf 15 Bits verringern. </P> <P>Wie auch immer, DGA hat auch einige Nachteile. Es scheint, als ob es irgendwie abhängig vom Grafik-Chip ist und von der Implementation des XServer Video-Treibers, welcher den Chip kontrolliert. Also funktioniert es nicht auf jedem System ...</P> <P><B><A NAME=2.3.1.3.3>2.3.1.3.3. Installation der DGA Unterstützung für MPlayer</A></B></P> <P>Als erstes prüfe, ob X die DGA Erweiterung lädt, siehe /var/log/XFree86.0.log:</P> <P> <CODE>(II) Loading extension XFree86-DGA</CODE></P> <P>XFree86 4.0.x oder neuer sind STARK EMPFOHLEN! <B>MPlayers</B> DGA-Treiber wird automatisch von ./configure erkannt, oder du kannst es mit --enable-dga erzwingen.</P> <P>Wenn der Treiber nicht zu einer kleineren Auflösung wechseln kann, versuche mit den Optionen -vm (nur unter X 3.3.x), -fs, -bpp, -zoom um ein Video-Modus zu finden, dass das Video passt. Es gibt noch keinen Konverter.. :(</P> <P>Werde ROOT. DGA braucht Root-Rechte um direkt in den Video-Speicher zu schreiben. Wenn du es auch also Anwender starten willst, installiere bei <B>MPlayer</B> die SUID root:</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>Nun funktioniert es auch als einfacher Anwender.</P> <P><B>!!!! ABER SEIT GEWARNT !!!!</B><BR> Dies ist ein <B>GROSSES</B> Sicherheitsrisiko! Mache das nie auf einem Server oder einem Computer, der von mehreren Personen verwendet wird, da sie durch das Root SUID von <b>MPlayer</B> Root-Rechte erhalten könnten!<BR> <B>!!!! DU WURDEST ALSO GEWARNT ... !!!!</B></P> <P>Verwende nun die '-vo dga' Option und es sollte funktionieren! (hoffe es:) Du solltest auch probieren, ob die '-vo sdl:dga' Option bei dir funktioniert! Es ist um einiges schneller!!!</P> <P><B><A NAME=2.3.1.3.4>2.3.1.3.4. Änderung der Auflösung</A></B></P> <P>Der DGA Treiber erlaubt das Ändern der Auflösung des Ausgabe-Signals. Es erspart die Verwendung von (langsamem) softwaremäßigem Scaling und ermöglicht zur selben Zeit Vollbild-Grafiken. Ideal wäre es, wenn man auf die genaue Auflösung des Videos (würde die richtige Rate voraussetzen) schalten könnte, aber der XServer erlaubt nur das Änderen in eine Auflösung, die in <CODE>/etc/X11/XF86Config</CODE> (<CODE>/etc/X11/XF86Config-4</CODE> bei XFree 4.0.X) vordefiniert ist. Dies sind so genannte "Modelines" und sind von den Fähigkeiten deiner Video-Hardware abhängig. Der XServer scannt die Konfigurationsdatei beim Starten und schaltet die Modelines aus, die nicht zu der Hardware passen. Du kannst die funktionierenden Modelines mithilfe der X11-Logdatei herausfinden. Sie kann unter <CODE>/var/log/XFree86.0.log</CODE> gefunden werden.</P> <P>Siehe Anhang A für einige Beispiele für Modeline-Einstellungen.</P> <P><B><A NAME=2.3.1.3.5>2.3.1.3.5. DGA & MPlayer</A></B></P> <P>DGA wird in zwei Plätzen von <B>MPlayer</B> verwendet: Der SDL Treiber kann es verwenden (-vo sdl:dga) und der DGA-Treiber (-vo dga). Das oben genannte trifft für beide zu; in der folgenden Sektion werde ich erklären, wie der DGA-Treiber für <B>MPlayer</B> funktioniert.</P> <P><B><A NAME=2.3.1.3.6>2.3.1.3.6. Features des DGA-Treibers</A></B></P> <P>Der DGA Treiber wird durch die -vo dga Option auf der Komandozeile ausgewählt. Das normale Verhalten ist, dass der DGA-Treiber die Auflösung so weit wie möglich an das Video anzupassen. Es ignoriert die -vm und -fs Optionen (für Videomodus-Änderung und Vollbild) - es versucht immer so viel Fläche wie möglich durch Ändern des Videomodus zu nutzen, dies erspartet eine zusätzliche Verwendung der CPU um das Bild zu vergrößern/verkleinern. Wenn dir der Modus, den der Treiber gewählt hat, nicht gefällt, kannst du mit -x und -y Option einen auswählen, der besser passt. Mit der -v Option wird der DGA Treiber - neben vielen anderen Dingen - eine Liste der Auflösungen, die von deiner aktuellen XF86-Config Datei unterstützt werden ausgeben. Unter DGA2 kannst du auch die Farbtiefe mit der -bpp Option einstellen. Gültige Farbtiefen sind 15, 16, 24 und 32bpps. Es hängt von deiner Hardware ab, ob diese Tiefen grundlegend unterstützt werden oder ob sie (was möglichweise langsam ist) konvertiert werden müssen.</P> <P>Wenn du genug Glück hast und genug Offscreen-Speicher übrig ist um eine ganzes Bild darin zu speichern, wird der DGA Treiber "Doublebuffering" verwenden, was ein flüssigeres Bild ermöglicht. Es wird ausgeben, ob Doublebuffering eingeschaltet ist oder nicht.</P> <P>Doublebuffering bedeutet, dass der nächste Frame des Videos bereits in den Offscreen-Speicher schrieben wird, während der aktuelle Frame angezeigt wird. Wenn der nächste Frame fertig ist, wird dem Grafik-Chip nur die Position im Speicher mitgeteilet, wo sich der nächste Frame befindet und die Grafik ververwendet das Bild einfach von dort. In der Zwischenzeit wird der anderer Buffer wieder mit Video-Daten aufgefüllt.</P> Doublebuffering kann man mit der Option -double ein- und mit der Option -nodouble ausschalten. Zur Zeit ist die Standard-Option, dass der zusätzliche Buffer ausschaltet ist. Wenn der DGA-Treiber verwendet wird, funktioniert das Onscreen Display (OSD) nur mit eingeschaltetem Doublebuffering. Wie auch immer, das Einschalten von Doublebuffering kann einen großer Geschwindigkeitsnachteil sein (auf meinem K6-II+ 525 verwerdet es zusätzliche 20% der CPU-Zeit!), abhängig von der Implementation von DGA für eine Hardware.</P> <P><B><A NAME=2.3.1.3.7>2.3.1.3.7. Geschwindigkeit</A></B></P> <P>Allgemein gesprochen sollte der DGA-Framebuffer Zugriff mindestens so schnell sein wie Verwendung des X11-Treibers, jedoch mit den zusätzlichen Vorteils des möglichen Vollbildes. Die prozentuelle Geschwindigkeitsangaben von MPlayer sollten aber mit Vorsicht genossen werden, denn zum Beispiel wird beim X11-Treiber die Zeit, die vom X-Server benötigt wird um das Bild aufzubauen, nicht eingerechnet. Logge dich via ein Terminal über eine serielle Verbindung in deine Box ein und starte MPlayer damit du wirklich siehst, was los ist ...</P> <P>Allgemein gesprochen ist der Geschwindigkeitsvorteil von DGA im Vergleich zur normalen Verwendung von X11 stark abhängig von der Grafikkarte und wie gut das X-Server Modul dafür optimiert ist.</P> <P>Wenn du ein langsames System besitztst, verwende lieber 15 oder 16 Bit Farbtiefen, denn es verwendet nur halbe Speicherbandbreiten im Vergleich zu 32 bit.</P> <P>Die Verwendung von 24bit ist eine gute Idee, wenn deine Karte 32 Bit Tiefe unterstützt, denn es sind 25% weniger Daten im Vergleich zu einem 32/32 Modus.</P> <P>Ich habe einige AVI-Dateien schon auf einem Pentium MMX 266 wiedergegeben. Bei AMD K6-2 CPUs funktioniert es vielleicht ab 400 MHZ oder mehr.</P> <P><B><A NAME=2.3.1.3.8>2.3.1.3.8. Bekannte Probleme</A></B></P> <P>Nun, nach der Aussage von einigen Entwicklern von XFree ist DGA immer noch "ein wildes Tier". Sie sagen es ist besser, wenn man es nicht verwendet. Die Implementierung ist noch nicht immer fehlerfrei mit jedem Chipset-Treiber von XFree.</P> <P><UL> <LI>mit XFree 4.0.3 und nv.o gibt es einen Bug, zu erkennen in eigenartigen Farben <LI>ATI-Treiber erfordern mehrmaliges zurückschalten nach dem Abspielen mit DGA <LI>einige Treiber schlagen Fehl bei dem Versuch zurück zur normalen Auflösung zu schalten (verwende STRG-ALT-Keypad +, - um manuell zu schalten) <LI>einige Treiber weisen kleine Farbfehler auf <LI>einige Treiber lügen, im Bezug auf die Speichergröße für die Anwendung, dieses DGA wird kein Doublebuffering verwenden (SIS?) <LI>einige Treiber scheinen einen Fehler zu berichten, sie zeigen nur eine gültige Auflösung an. In diesem Fall wird der DGA-Treiber abstützen, wenn er von einer unsinnigen Auflösungung von 100000x100000 oder ähnlich berichtet ... <LI>OSD funktioniert nur mit eingeschaltetem Doublebuffering </UL></P> <P><B><A NAME=2.3.1.3.9>2.3.1.3.9. Zukünftige Arbeiten</A></B></P> <P><UL><LI>Verwendung des neuen X11 Rendering-Interfaces für OSD <LI>Wo ist meine TODO Liste ???? :-(((</UL></P> <P><B><A NAME=2.3.1.3.A>2.3.1.3.A. Einige Modus-Einstellungen</A></B></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> <P>Diese Einstellungen funktionieren sehr gut mit meinem Riva128 Chip unter Verwendung des nv.o XServer Treibermodules.</P> <P><B><A NAME=2.3.1.3.B>2.3.1.3.B. Fehlerberichte</A></B></P> <P>Wenn du Probleme mit dem DGA-Treibers hast, sende einen Fehlerbericht (e-Mail Adresse siehe untern). Bitte starte MPlayer mit der -v Option und sende alle Zeilen beginnend mit vo_dga: in dem Fehlerbericht.</P> <P>Bitte schreibe auch, welche Version von X11 du verwendest, die Grafikkarte und die Art von CPU. Das X11-Treiber Modul (definiert in der XFree86-Config) hilft auch möglicherweise. Danke!</P> <P><I>Acki (acki@acki-netz.de, www.acki-netz.de)</I></P> <P><B><A NAME=2.3.1.4>2.3.1.4. SDL</A></B></P> <P>SDL (Simple Directmedia Layer) ist grundsätzlich ein vereinheitlichtes Video/Audio Interface. Programme, die es benutzen, wissen nur um SDL und nichts darüber, was für Video- oder Audio-Treiber SDL eigentlich benutzt. So kann z.B. eine Doom Portierung auf SDL über die svgalib, aalib, X, fbdev und andere laufen. Du musst bluss z.B. bloss über die Variable SDL_VIDEODRIVER angeben, welcher Video-Treiber benutzt werden soll. Nun ja, in der Theorie.</P> <P>Mit <B>MPlayer</B> benutzen wir dessen Software Skalier-Fähigkeit des X11-Treibers für Karten, welche kein XVideo unterstützen, bis wir unseren eigenen (schnelleren, besseren) Software-Skalierer haben. Wir benutzen auch dessen aalib-Ausgabe, haben nun aber einen eigenen, welcher komfortabler ist. Dessen DGA-Mode war besser als unsere, bis neulich. :)</P> <P>Es hilft auch bei einigen anfälligen Treibern/Karten, wenn der Video ruckartig ist (kein Problem der Systemgeschwindigkeit) oder wenn der Ton verzögert ist.</P> <P>Die SDL Videoausgabe unterstützt die Darstellung von Untertitel unter dem Film, auf dem schwarzen Streifen (falls vorhanden).</P> <P>Hier findest du einige Hinweise über die SDL-Ausgabe in <B>MPlayer</B>.</P> <P><TABLE BORDER=0> <TD COLSPAN=4><P><B><FONT CLASS="text">Es gibt einige Commandline-Optionen für SDL:</B></P></TD><TR> <TD> </TD><TD><FONT CLASS="text">-vo sdl:name</TD><TD> </TD><TD><FONT CLASS="text"> wählt den zu verwendenden Video Treiber aus (z.B. aalib, dga, x11)</TD><TR> <TD></TD><TD><FONT CLASS="text">-ao sdl:name</TD><TD></TD><TD><FONT CLASS="text">wählt den zu verwendenden Audio Treiber aus (z.B. dsp, esd, arts)</TD><TR> <TD></TD><TD><FONT CLASS="text">-noxv</TD><TD></TD><TD><FONT CLASS="text">schaltet die Xvideo Hardwarebeschleunigung aus</TD><TR> <TD></TD><TD><FONT CLASS="text">-forcexv</TD><TD></TD><TD><FONT CLASS="text">versucht die Xvideo-Beschleunigung zu erzwingen</TD><TR> <TD COLSPAN=4><P><B><FONT CLASS="text">SDL-Tasten:</B></P></TD><TR> <TD></TD><TD><FONT CLASS="text">F</TD><TD></TD><TD><FONT CLASS="text">wählt Vollbild-/Fenster-Modus</TD><TR> <TD></TD><TD><FONT CLASS="text">C</TD><TD></TD><TD><FONT CLASS="text">verfügbare Zyklen beim Vollbild-Modus</TD><TR> <TD></TD><TD><FONT CLASS="text">W/S</TD><TD></TD><TD><FONT CLASS="text">zusammenhängend mit * und / (Mixer-Kontrolle)</TD><TR> </TABLE></P> <P><B>BEKANNTE FEHLER:</B></P> <P><UL><LI>Wenn diese Tasten unter dem sdl:aalib Konsolentreiber verwendet werden, wiederholen sie sich für immer. (verwende -vo aa !) Es ist ein Bug in SDL, ich kann es nicht ändern (getestet mit SDL 1.2.1). </UL></P> <P><B><A NAME=2.3.1.5>2.3.1.5. SVGAlib</A></B></P> <P>Wenn du kein X hast, kannst du SVGAlib verwenden! Stelle sicher, dass du nicht die -fs Option verwendest, da es Software-Scaling unterstützt, das nur sehr LANGSAM ist, ausser wenn du eine echt schnelle CPU (und/oder MTRR?) hast. :(</P> <P>Natürlich musst du die svgalib und das Development-Paket installieren, damit <B>MPlayer</B> seinen SVGAlib Treiber einbauen kann (wird automatisch erkannt, kann aber erzwungen werden) und vergiss nicht die /etc/vga/libvga.config passend zu deiner Karte und deinem Monitor zu editieren.</P> <P><B><A NAME=2.3.1.6>2.3.1.6. Framebuffer Ausgabe (FBdev)</A></B></P> <P>Ob die FBdev Unterstützung eingebaut wird während des ./configure Scripts entschieden. Lese die Framebuffer Dokumentation von den Kernel Sourcen (Documentation/fb/*) um zu erfahren wie man es einschaltet, usw.. !</P> <P>Möglicherweise unterstützt deine Karte den VBE 2.0 Standard nicht (ältere ISA/PCI Karten wie S3 Trio64), nur VBE 1.2 (oder älter?): Nun, VESAfb ist auch verfügbar, aber du musst den SciTech Display Doctor (genannt UniVBE) vor Linux laden. Verwende eine DOS-Startdiskette oder was auch immer. Und vergiss nicht dein UniVBE zu registrieren ;))</P> <P>Bei der FBdev Ausgabe können einige zusätzliche Parameter verwendet werden:</P> <P><TABLE BORDER=0> <TD> </TD><TD><FONT CLASS="text">-fb</TD><TD> </TD><TD><FONT CLASS="text"> spezifiziert den zu verwendenden Framebuffer (/dev/fb0)</TD><TR> <TD></TD><TD><FONT CLASS="text">-fbmode</TD><TD></TD><TD><FONT CLASS="text">Modus das verwendet werden soll (siehe /etc/fb.modes)</TD><TR> <TD></TD><TD><FONT CLASS="text">-fbmodeconfig</TD><TD></TD><TD><FONT CLASS="text">Konfigurationsdatei für das Modus (standard ist /etc/fb.modes)</TD><TR> <TD></TD><TD><FONT CLASS="text">-monitor_hfreq</TD><TD></TD><TD ROWSPAN=3><FONT CLASS="text">WICHTIGE Werte, siehe example.conf</TD><TR> <TD></TD><TD><FONT CLASS="text">-monitor_vfreq</TD><TD></TD><TR> <TD></TD><TD><FONT CLASS="text">-monitor_dotclock</TD><TD></TD><TR> </TABLE></P> <P>Wenn du zu einem speziellen Modus wechseln willst, verwende</P> <P><CODE> mplayer -vm -fbmode (NamedesModus) Dateiname</CODE></P> <P><UL><LI><B>-vm</B> alleine wird den am ehesten passenden Modus von /etc/fb.modes verwenden. Kann auch mit der -x und -y Option verwendet werden. Die -flip Option wird nur unterstützt, wenn das Pixel-Format des Videos mit dem Video-Modus übereinstimmt. Unter Beobachtung des bpp-Wertes, versucht der fbdev-Treiber den aktuellen oder den mit der -bpp Option eingestellten Wert zu verwenden.</LI> <LI><B>-zoom</B> Option wird nicht unterstützt (Software-Scaling ist langsam). -fs Option wird nicht unterstützt. Du kannst keine Moduse mit 8bpp (oder weniger) verwenden.</LI> <LI>Wenn du deinen Curser ausschalten willst:: <CODE>echo -e '\033[?25l'</CODE> oder <CODE>setterm -cursor off</CODE><BR> und den Bildschirmschoner: <CODE>setterm -blank 0</CODE><BR> Um den Curser wieder anzuzeigen: <CODE>echo -e '\033[?25h'</CODE> oder <CODE>setterm -cursor on</CODE> </UL></P> <P>HINWEIS: FBdev Video-Modus-Änderungen _funktionieren nicht_ mit dem VESA Framebuffer, also frage nicht danach, denn es ist keine <B>MPlayer</B> Beschränkung.</P> <P><B><A NAME=2.3.1.7>2.3.1.7. Matrox Framebuffer (mga_vid)</A></B></P> <P>Diese Abschnitt handelt über Matrox G200/G400/G450/G550 BES (Back-End Scaler) Unterstützung, dem mga_vid Kernel-Treiber. Er wird von mir (A'rpi) aktiv entwickelt und besitzt Hardware-VSYNC-Unterstützung mit dreifach-Buffering. Er funktioniert auf Konsole oder auch unter X.</P> <P><B>WARNUNG</B>: benutze <A HREF=#2.3.1.15>Vidix</A> auf nicht-Linux Systemen für mga_vid!!!</P> <P>Um es zu verwenden, kompiliere als erstes mga_vid.o:</P> <P><CODE> cd drivers<BR> make</CODE></P> <P>Dann erstelle das /dev/mga_vid Gerät:</P> <P><CODE> mknod /dev/mga_vid c 178 0</CODE></P> <P>und laden den Treiber mit</P> <P><CODE> insmod mga_vid.o</CODE></P> <P>Du sollst die erkannte Videospeichergröße prüfen, dazu verwende den 'dmesg' Befehl. Wenn es nicht stimmt, verwende die mga_ram_size Option (rmmod mga_vid als erstes) und gib die Speichergröße der Karte in MB an:</P> <P><CODE> insmod mga_vid.o mga_ram_size=16</CODE></P> <P>Um den Treiber automatisch zu laden / unzuladen wenn er braucht wird, füge die folgende Zeile an Ende der /etc/modules.conf Datei ein:</P> <P><CODE> alias char-major-178 mga_vid</CODE></P> <P>Installiere dann das Module <CODE>mga_vid.o</CODE> mit <CODE>make install</CODE> oder kopiere es an den entsprechenden Platz unter <CODE>/lib/modules/<Kernel Version>/irgendwo</CODE>.</P> <P>Dann starte</P> <P><CODE> depmod -a</CODE></P> <P>Jetzt musst du <B>MPlayer</B> (neu)kompilieren, ./configure wird automatisch /dev/mga_vid erkannen und den 'mga' Treiber einbauen. Die Verwendung mit <B>MPlayer</B> wird wenn man eine matroxfb Konsole hat mit '-vo mga' oder mit '-vo xmga' unter XFree86 3.x.x oder 4.x.x realisiert.</P> <P>Der mga_vid Treiber arbeitet nun auch mit dem Xv zusammen. <P><B><A NAME=2.3.1.8>2.3.1.8. SiS 6326 Framebuffer (sis_vid)</A></B></P> <P>SiS 6326 YUV Framebuffer Treiber -> sis_vid Kerneltreiber</P> <P>Das Interface sollte kompatibel mit dem von the mga_vid sein, aber das Trei- ber wurde nicht aktualisiert, als mga_vid geändert wurde, also ist es nicht mehr aktuell. Es sollte getestet und der Code auf den letzten Stand gebracht werden.</P> <P><B><A NAME=2.3.1.9>2.3.1.9. 3dfx YUV Unterstützung (tdfxfb)</A></B></P> <P>Dieser Treiber verwendet den Kernel-tdfx Framebuffer-Treiber um Filme mit YUV-Beschleunigung zu spielen. Du brauchst einen Kernel mit tdfxfb Support und kompiliere <B>MPlayer</B> mit <CODE>./configure --enable-tdfxfb</CODE> neu.</P> <P><B><A NAME=2.3.1.10>2.3.1.10. OpenGL Ausgabe</A></B></P> <P><B>MPlayer</B> unterstützt die Ausgabe von Videos über OpenGL. Unglücklicherweise unterstützten nicht alle Treiber diese Fähigkeit. Zum Beispiel haben es allen Karte mit Utah-GLX Treibern (für XFree86 3.3.6) Unterstützung. Siehe <A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A> für Details für die Installation.</P> <P>XFree86(DRI) >= 4.0.3 unterstützt nur Matrox und Radeon Karten. Siehe <A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> für Downloads und Installtionsanweisungen.</P> <P><B><A NAME=2.3.1.11>2.3.1.11. AAlib - Textmodus-Ausgabe</B></P> <P><B>AAlib</B> ist eine Bibliothek für die Anzeige im Textmodus, unter Verwendung des ASCII Renderer. Es gibt EINE GROSSE ANZAHL von Programmen die es bereits unterstützen, wie Doom, Quake, usw. MPlayer enthält einen sehr gut brauchbaren Treiber dafür. Wenn ./configure erkennt, dass aalib installiert ist, wird der aalib libvo Treiber eingebaut.</P> <P><TABLE BORDER=0> <TD COLSPAN=4><P><B><FONT CLASS="text">Du kannst einige Tasten verwenden im AA Fenster, um Rendering-Optionen zu ändern:</B></P></TD><TR> <TD> </TD><TD><FONT CLASS="text">1</TD><TD> </TD><TD><FONT CLASS="text">verringert Kontrast</TD><TR> <TD></TD><TD><FONT CLASS="text">2</TD><TD></TD><TD><FONT CLASS="text">erhöht Kontrast</TD><TR> <TD></TD><TD><FONT CLASS="text">3</TD><TD></TD><TD><FONT CLASS="text">verringert Schärfe</TD><TR> <TD></TD><TD><FONT CLASS="text">4</TD><TD></TD><TD><FONT CLASS="text">erhöht Schärfe</TD><TR> <TD></TD><TD><FONT CLASS="text">5</TD><TD></TD><TD><FONT CLASS="text">schaltet schnelles Rendern ein/aus</TD><TR> <TD></TD><TD><FONT CLASS="text">6</TD><TD></TD><TD><FONT CLASS="text">wählt das Farbmischungs-Modus (keine, error dithering, floyd steinberg)</TD><TR> <TD></TD><TD><FONT CLASS="text">7</TD><TD></TD><TD><FONT CLASS="text">invertiert Bild</TD><TR> <TD></TD><TD><FONT CLASS="text">a</TD><TD></TD><TD><FONT CLASS="text">wechselt zwischen AA und MPlayer Kontrolle)</TD><TR> <TD COLSPAN=4><P><B><FONT CLASS="text">Die folgenden Kommandozeilen-Optionen können verwendet werden:</B></P></TD><TR> <TD></TD><TD><FONT CLASS="text">-aaosdcolor=V</TD><TD></TD><TD><FONT CLASS="text">ändert OSD-Farbe</TD><TR> <TD></TD><TD><FONT CLASS="text">-aasubcolor=V</TD><TD></TD><TD><FONT CLASS="text">ändert Untertitel-Farbe</TD><TR> <TD COLSPAN=3></TD><TD><P><I><FONT CLASS="text">wobei V sein kann: (0/Normal, 1/Dunkel, 2/Fett, 3/Fettschift, 4/Rückwärts, 5/Spezial)</P></TD><TR> <TD COLSPAN=4><P><B><FONT CLASS="text">AAlib selbst unterstützt eine größe Summe von Optionen. Hier einige wichtige:</P></B></TD><TR> <TD></TD><TD><FONT CLASS="text">-aadriver</TD><TD></TD><TD><FONT CLASS="text">setzt erforderlichen AA Treiber (X11, curses, linux)</TD><TR> <TD></TD><TD><FONT CLASS="text">-aaextended</TD><TD></TD><TD><FONT CLASS="text">verwende alle 256 Zeichen</TD><TR> <TD></TD><TD><FONT CLASS="text">-aaeight</TD><TD></TD><TD><FONT CLASS="text">verwendet acht-bit ASCII</TD><TR> <TD></TD><TD><FONT CLASS="text">-aahelp</TD><TD></TD><TD><FONT CLASS="text">gibt alle AAlib-Optionen aus</TD><TR> </TABLE></P> <P>HINWEIS: Das Rendering ist sehr CPU-Intersiv, besonders bei AA-on-X (AAlib unter X) und benötigt am wenigsten CPU-Leistung auf einer standard, nicht-Framebuffer Konsole. Verwende SVGATextMode im ein großes Textmodus einzustellen und geniese es! (Dual Head Hercules Karten rocks :)) (kann vielleicht jemand bdev erweiteren für Konventierung/Farbmischung bei hgafb? Wäre nett :)</P> <P>Verwende die -framedrop Option wenn dein Computer nicht schnell genug ist, um alle Frames zu Verarbeiten!</P> <P>Beim Abspielen auf einem Terminal wirst du eine bessere Geschwindigkeit und Qualität bekommen, wenn du den Linux-Treiber (-aadriver linux) und nicht den Curses-Teiber verwendest. Aber dazu brauchst du Scheibzugriff auf/dev/vcsa<terminal>! Dies wird nicht automatisch erkannt von aalib, aber vo_aa versucht die beste Möglichkeit zu finden. Siehe <A HREF="http://aa-project.sourceforge.net/tune">http://aa-project.sourceforge.net/tune/</A> für zusätzliche Tuning-Möglichkeiten.</P> <P><B><A NAME=2.3.1.12>2.3.1.12. VESA - output to VESA BIOS</B></P> <P> Dieser Treiber wurde <B>als allgemeiner Treiber</B>entworfen und eingeführt, für jede Grafikkarte, die ein VESA VBE 2.0 kompatibles BIOS besitzt. Aber es gibt nur einen Grund für die Entwicklung dieses Treibers - die vielseiten Probleme bei der Wiedergabe am TV.<BR> <B>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</B> (Seite 70) sagt: </P> <P> <CODE><I> <B>Dual-Controller Aufbau</B><BR> VBE 3.0 unterstützt Grafikkarten mit Dual-Controller Aufbau. Unter der Annahme, dass beide Kontroller die gleiche OEM, unter der Kontrolle eines einzigen BIOS-ROMs auf der Grafikkarte besitzen, ist es möglich, der Anwendung zu verbergen, dass die in wirklichkeit zwei Kontroller verhanden sind. Es hat jedoch die Beschränkung, dass die gleichzeitige Verwendung der unterschiedlichen Kontroller verhindert wird, aber erlaubt Anwendungen, die vor VBE 3.0 herausgekommen sind, normal zu arbeiten. Die VBE Funktion 00h (Return Controller Information) gibt die gemeinsamen Informationen beider Kontroller zurück, inklusive einer Liste der verfügbaren Modusse. Wenn eine Anwendungen einen Modus auswählt wird der entsprechende Kontroller aktiviert. Alle verbleibenden VBE-Funktionen werden dann auf dem aktuellen Kontroller ausgeführt. </i></code> </P> <P> Also hast du damit gute Chancen deinen TV-OUT mit diesem Treiber zu aktivieren.<BR> (Ich danke das die TV-Funktion sie nur auf Single-Head oder Standalone-Ausgabe beschänkt.) </P> <P> <B>Was sind die Vorteile:</B><BR> - Du hast Chance Videos zu sehen, <B>auch wenn Linux nicht mal weiss</B>, welche Grafikkarte du hast.<BR> - Du brauchst dazu auf deinem Linux keine anderen grafikabhängenden Sachen (wie X11 (XFree86), fbdev usw.). Dieser Treiber kann vom <b>Textmodus</b> aus betrieben werden.<BR> - Du hast Chancen den <b>TV-Out einzuschalten</b>. (Bis jetzt nur von ATI-Karten bekannt).<BR> - Dieser Treiber verwendet <b>int 10h</b> Handler, das heisst es ist kein Emulator - es ruft <B>echte</B> Befehle des <b>echteb</b> BIOS im <b>Real</b>-Mode aus. (im vm86 Modus).<BR> - Am wichtigesten :) Du kannst <b>DVD mit 320x200</b> ansehen ohne einer leistungsfähigen CPU.<BR> </P> <P> <B>Was sind die Nachteile:</B><BR> - Es funktioniert nut auf <B>x86 Systemen</B>.<BR> - <B>Es ist der langsamste Treiber</B> von allen verfügbaren für MPlayer.<BR> (Aber nur, falls deine Karte keinen <b>DGA Modus</b> unterstützt - Ansonsten ist die Geschwindigkeit dieses Treibers mit denen von <b>-vo dga</b> und <b>-vo fbdev</b> zu vergleichen.<BR> - Es kann nur als <B>ROOT</B> verwendet werden.<BR> - Zur Zeit ist es nur für <B>Linux</B> verfügbar.<BR> - Es <B>verwendet keine Hardwarebeschleunigung</B> (wie YUV-Overlay oder HW-Scaling).<BR> </P> <P>Verwende diesen Treiber nicht mit <B>GCC 2.96</B> ! Es wird nicht funktionieren !</P> <P> <TABLE BORDER=0> <TD COLSPAN=4><P><B><FONT CLASS="text">Diese Commandline-Parameter sind zur Zeit verfügbar für VESA:</B></P></TD><TR> <TD> </TD><TD><FONT CLASS="text">-vo vesa:opts</TD> <TD> </TD><TD><FONT CLASS="text"> erkennt momentan: <b>dga</b> um den DGA-Modus zu erzwingen und <b>nodga</b> um ihn zu deaktivieren. Hinweis: Du kannst diese Parameter auslassen um den DGA-Modus <b>automatisch</b> erkennen zu können. (In Zukunft wirst du Parameter wie Wiederholrate, Interlacing, Doublescan und so weiter einstellen. Beispiele: i43, 85, d100)</TD><TR> <TD></TD><TD><FONT CLASS="text">-screenw, -screenh, -bpp</TD> <TD></TD><TD><FONT CLASS="text">verwendet von Anwender definierte Modie</TD><TR> <TD></TD><TD><FONT CLASS="text">-x, -y</TD> <TD></TD><TD><FONT CLASS="text">setzt Prescaling-Auflösung</TD><TR> <TD></TD><TD><FONT CLASS="text">-zoom</TD> <TD></TD><TD><FONT CLASS="text">aktiviert Prescaling</TD><TR> <TD></TD><TD><FONT CLASS="text">-fs</TD> <TD></TD><TD><FONT CLASS="text">Vollbild-Scaling</TD><TR> <TD></TD><TD><FONT CLASS="text">-fs -zoom</TD> <TD></TD><TD><FONT CLASS="text">Vollbild-Scaling des prescalten Bildes</TD><TR> <TD></TD><TD><FONT CLASS="text">-double</TD> <TD></TD><TD><FONT CLASS="text">aktiviert den Doppelpuffer-Modus (double buffering). (Nur im DGA Modus möglich). Sollte langsamer sein als single buffering, hat jedoch keine Flimmereffekte.</TD><TR> </TABLE> </P> <P> <b>Bekannte Probleme und Workarounds:</b><br> - Wenn die <b>NLS</b> Schrift auf deinem Linux Rechner installiert hast und den VESA-Treiber auf einer Textmode-Konsole verwendst wird nach dem Beenden von MPlayer die <b>ROM-Schrift</b> erscheinen anstatt der nationalen. Du kannst die nationale Schrift wieder durch das z.B. <b><i>setsysfont</i></b>-Tool bei einer Mandrake Distribution laden.<br> (<b>Hinweis</b>: Das selbe Tool wird zum Loklisieren von fbdev verwendet).<br> - Einige <b>Grafikkartentreiber für Linux</b> aktivieren den <b>BIOS Modus</b> im DOS-Speicher nicht. Wenn du solche Probleme hast - verwende den VESA-Treiber im <b>Textmodus</b>. Andernfalls wird der Textmodus (#03) einfach aktiviert und du musst deinen Computer neu starten.<br> - Oftmals bekommt man nach dem Beenden des VESA-Treiber einen <b>schwarzen Bildschirm</b>. Um zurück zum normalen Modues zu kommen - wechlse einfach auf auf eine andere Konsole (durch das Drücken von <b>Alt-Fx</b>) und das Anschließende zurückschalten auf die vorherige Konsole auf die gleiche Art.<br> - Um einen <B>funktionierenden TV-out</b> zu bekommen musst du deine TV vor dem Starten des PCs anschließden, denn das Video-BIOS inizialisiert es während des POST-Vorganges. </P> <P><B><A NAME=2.3.1.13>2.3.1.13. X11</B></P> <P>Vermeide es, wenn möglich. Übergibt die Ausgabe X11 (es benutzt die shared memory Erweiterung) jedoch ohne jeglicher Hardware Beschleunigung. Es unterstützt (MMX/3DNow/SSE beschleunigt, aber immer noch langsam) Software-Skalierung. Benutze die Option <CODE>-fs -zoom</CODE>. Die meisten Karten haben Hardware-Skalierung Unterstützung. Benutze die <CODE>-vo xv</CODE> Ausgabe für diese oder <CODE>-vo xmga</CODE> für Matrox Karten.</P> <P>Das Problem ist, dass die meisten Karten keine Hardware Beschleunigung für eine zweite Ausgabe/TV unterstützen. In diesen Fällen, sieht man ein grünfarbiges/blaufarbiges Fenster anstelle des Filmes. In diesen Fällen ist dieser Treiber nützlich. Du benötigst jedoch eine leistungsfähige CPU um die software-Skalierung zu benutzen. Verwende nicht die Software Ausgabe+Skalierer von SDL, er hat eine noch sclimmere Bildqualität !</P> <P>Software-Skalierung ist sehr langsam. Du solltest besser versuchen den Videomodus zu ändern. Es ist sehr einfach. Lies in der Sektion <A HREF=#2.3.1.3.A>DGA Modus-Einstellungen</A> und füge diese deiner XF86Config an. <UL> <LI>Wenn du XFree86 4.x.x hast - benutze die <CODE>-vm</CODE> Option. Sie ändert die Auflösung, so dass zu deinem Film passt. Wenn nicht :</LI> <LI>Mit XFree86 3.x.x - du musst mit den Tasten <B>CTRL-ALT-plus</B> und <B>minus</B> durch alle möglichen Auflösungen durchgehen.</LI> </UL> Wenn du den Modus, den du eingefügt hast nicht findest, betrachte die XFree86 Ausgaben. Einige Treiber können keine tiefen pixelclocks verwenden, welche benötigt werden um einen tiefen Auflösungs-Modus zu verwenden.</P> <P><B><A NAME=2.3.1.14>2.3.1.14. Rage128 (Pro) / Radeon Video Overlay (radeon_vid)</A></B></P> <P>Diese Abteilung ist VERALTET ! Verwende Vidix !</P> <P><B><A NAME=2.3.1.15>2.3.1.15. VIDIX</A></B></P> <P><B><I>WAS IST VIDIX</I></B></P> <P>VIDIX ist di abkürzung für <b>VID</b>eo <b>I</b>nterface für *ni<b>X</b>.<BR> VIDIX wurde entworfen und eingeführt als ein Interface für schnelle user-space Treiber, welches <b>DGA</b> überall, wo die Möglichkeit besteht, zur Verfügung stellt. (<b>im Gegensatz zu X11</b>). Ich hoffe, dass diese Treiber genauso portierbar sind, wie X11 (<b>nicht nur auf *nix</b>).<BR> Was ist es: <LI>Es ist ein portabler Nachfolger der mga_vid Technologie, welcher jedoch als user-space Treiber angesiedelt ist</LI> <LI>Im Gegensatz zu X11 stellt es DGA überall, wo möglich, zur Verfügung</LI> <LI>Im Gegensatz zu v4l stellt es ein Interface für Videowiedergabe zur Verfügung</LI> <LI>Im Gegensatz zu den Treibern von Linux benutzt es Mathematik-Bibliotheken</LI> </P> <P>Ich kann es dir auch in fetten Grossbuchstaben sagen :<BR> <b>VIDIX STELLT EINEN DIREKTEN GRAFIKZUGRIFF ZUM BES YUV MEMORY ZUR VERFÜGUNG.</b> </P> <P><i>Nun ja (es ist in meinem todo) - implementiert einen DGA zu MPEG2 Dekoder.</i></P> <P>Dieses Interface wurde als Versuch entworfen, die existierenden Videobeschleunigungs-Interfaces (bekannt als mga_vid, mga_yuv, radeon_vid) in ein festest Schema zu bringen. Es stellt ein Interface auf hohem Level (highlevel) für Chips zur Verfügung, welche als BES (BackEnd scalers) oder OV (Video Overlays) bekannt sind. Es stellt kein lowlevel Interface zur Verfügung für Dinge, welche als Grafikserver bekannt sind (Ich will nicht mit dem X11 Team im Grafikmodus-Wechsel konkurrieren). Das Hauptziel dieses Interface ist es, eine maximale Wiedergabe-Geschwindigkeit zur Verfügung zu stellen und nicht Videosignale auf deinen TV-, Tape- oder VCR-Bildschirm zu tun. Allerdings sind diese Dinge auch sehr wichtig - es ist jedoch eine perfekte neue Aufgabe. Wie auch immer, ich denke, es wäre möglich so etwas wie ein mini-X (nicht mit Minix zu verwechseln ;) in Zukunft einzubauen, wenn sich eine Anzahl Freiwilliger finden lässt. </P> <P><B><I>VERWENDUNG</I></B></P> <P> <LI>Du kannst den selbständigen Videoausgabe-Treiber verwenden: <CODE>-vo xvidix</CODE><BR> Dieser Treiber wurde als ein X11 Frontend zu der VIDIX Technologie entwickelt. Er benötigt einen XServer und kann nur unter diesem arbeiten.</LI> <LI>Du kannst das VIDIX dem Vidix unterstellte Gerät (subdevice) verwenden, welches zu vielen Videoausgabe-Treibern hinzugefügt wurde, wie z.B.:<BR> <CODE>-vo vesa:vidix</CODE> und <CODE>-vo fbdev:vidix</CODE></LI> Allerdings spielt es keine Rolle, welche Videoausgabe-Treiber mit <b>VIDIX</b> verwendet werden. </P> <P><B><I>VORAUSSETZUNGEN</I></B></P> <P> <LI>Die Videokarte sollte sich im Grafikmodus befinden (Ich schreibe einfach <b>sollte</b>, weil ich es im Textmodus getestet habe - es läuft, hat aber eine hässliche Ausgabe ;) Benutze AAlib für das).<BR> <I>Hinweis: Jederman kann dies ausprobieren, indem er den Moduswechsel im vo_vesa Treiber auskommentiert.</I></LI> <LI><B>MPlayer</B>'s Videoausgabe-Treiber sollte den aktiven Videomodus kennen und fähig sein, dem VIDIX subdevice einige Videocharakteristiken des Servers mitzuteilen.</LI> Ich hoffe, dass praktisch jeder Videoausgabetreiber von <B>MPlayer</B> das <CODE>:vidix</CODE> subdevice erkennen wird. </P> <P><B><I>GEBRAUCHSMETHODEN</I></B></P> <P>Wenn VIDIX als ein <b>subdevice</b> (<CODE>-vo vesa:vidix</CODE>) verwendet wird, dann wird die Videomodus-Konfiguration vom Videoausgabe-Gerät erledigt werden (kurz gesagt: <b>vo_server</b>). Du kannst desshalb in der Kommandozeile von <B>MPlayer</B> die gleichen Optionen wie für den vo_server verwenden. Zusätzlich versteht es die Option <CODE>-double</CODE> als einen global sichtbaren Parameter. (Ich empfehle diese Option mit VIDIX wenigstens für ATI's Karten zu verwenden).<BR> <CODE>-vo xvidix</CODE> betreffend: Es erkennt momentan die folgenden Optionen: <CODE>-fs -zoom -x -y -double</CODE>.<BR> </P> <P>Du kannst auch den Treiber von VIDIX direkt als ein drittes Unterargument in der Kommandozeile angeben:<BR> <BR> <code>mplayer -vo xvidix:mga_vid.so -fs -zoom -double datei.avi</code><BR> oder<BR> <code>mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 datei.avi</code><BR> <BR> Aber dies ist gefährlich und du solltest es nicht tun. In diesem Falle wird der gegebene Treiber erzwungen und das Ergebnis ist unvorhersehbar (es könnte deinen Computer <b>einfrieren</b>). Du solltest dies NUR tun, wenn du absolut sicher bist, dass es funktioniert und <B>MPlayer</B> es nicht automatisch tut. Bitte informiere die Entwickler darüber. Der richtige Weg ist, VIDIX ohne irgendwelche Argumente zu verwenden um die automatische Erkennung des Treibers zu aktivieren. </P> <P> VIDIX ist eine sehr neue Technologie und es ist höchstwahrscheinlich, dass es auf deinem System (OS=abc CPU=xyz) nicht funktioniert. In diesem Fall liegt die einzige für dich darin, es zu portieren (hauptsächlich libdha). Aber es besteht die Hoffnung, dass es auf den Systemen laufen wird, auf denen X11 läuft. </P> <P>Und die letzte <b>WARNUNG</b>: (un)glücklicherweise <b>MUST</b> du aufgrund des direkten Hardwarezugriffs <b>ROOT</b> Privilegien besitzen um VIDIX zu benützen. Setze wenigstens das <b>suid</b> bit auf den <B>MPlayer</B>. </P> <P><B><I>VIDEO EQUALIZER</I></B></P> <P> Dies ist ein Video-Equalizer, speziell für Vidix implementiert. Du kannst ihn über entweder mit den Tasten <B>1-8</B> verwenden wie in der Manpage beschrieben oder mit Kommandozeilenargumenten. <B>MPlayer</B> erkennt folgende Optionen: </P> <P> <CODE>-brightness</CODE> - verstellt die <B>HELLIGKEIT</B> der Videoausgabe. Es ist nicht dasselbe, wie die Helligkeit an den Monitorschaltern oder am TV zu verstellen. Es ändert die Intensität der RGB-Komponenten des Videosignals von einem schwarzen bis zu einem weissen Bildschirm.<BR> <CODE>-contrast</CODE> - verstellt den <B>KONTRAST</B> der Videoausgabe. Funktioniert ähnlich wie bei der Helligkeit.<BR> <CODE>-saturation</CODE> - verstellt die <B>SÄTTIGUNG</B> der Videoausgabe. Du kannst mit dieser Option eine Graustuffen-Ausgabe erhalten.<BR> <CODE>-hue</CODE> - verstellt den <B>FARBTON</B> des Videosignals. Du kannst mit dieser Option ein negatives Abbild der Farben der Bilder erhalten.<BR> <CODE>-red_intensity</CODE> - verstellt die Intensität der <B>ROTEN</B> Komponenten des Videosignals.<BR> <CODE>-green_intensity</CODE> - verstellt die Intensität der <B>GRÜNEN</B> Komponenten des Videosignals.<BR> <CODE>-blue_intensity</CODE> - verstellt die Intensität der <B>BLAUEN</B> Komponenten des Videosignals. </P> <P> Jeder Parameter akzeptiert Werte von <B>-1000</B> bis <B>+1000</B>.<BR> Die normale einstellung jedes Parameters ist <B>0</B>. </P> <P> <B>Hinweis:</B> Nicht jeder Treiber stellt eine Unterstützung für jede dieser Funktionen zu Verfügung. Momentan unterstützt bloss <B>radeon_vid.so</B> vollständiges Video-Equalizing. Andere Treiber unterstützen nur diese Optionen nur teilweise. </P> <P><B>Beispiele:</B><BR> <CODE>mplayer -vo vesa:vidix -brightness -300 -contrast 200 dateiname.avi</CODE><BR> oder<BR> <CODE>mplayer -vo xvidix -red_intensity -50 -saturation 400 -hue 300 dateiname.vob</CODE> </P> <P><B><A NAME=2.3.1.16>2.3.1.16. Zr</A></B></P> <P>Dies ist ein Ausgabetreiber (<CODE>-vo zr</CODE>) für eine Anzahl von MJPEG Aufnahme/Wiedergabe karten (getestet für die DC10+ und Buz und es sollte für die LML33 und die DC10 gehen). Der Treiber läuft durch eine Enkodierung der Frames zu jpeg und einer folgenden Sendung an die Karte. Für die jpeg Enkodierung wird die <B>libavcodec</B> benützt und vorausgesetzt.</P> <P>Dieser Treiber spricht zu den Kerneltreibern, welche auf <A HREF="http://mjpeg.sourceforge.net">http://mjpeg.sourceforge.net</A> erhältlich sind. Du must diese also erst zum Laufen bringen. Kompiliere <B>MPlayer</B> danach neu mit der Option <CODE>--enable-zr</CODE>.</P> <P>Einige Bemerkungen: <UL> <LI>Starte oder Stope XawTV nicht während der Wiedergabe, es wird deinen Computer zum Absturz bringen. Es ist jedoch i.O. XawTV <B>ZUERST</B> und <B>DANN</B> <B>MPlayer</B> zu starten. Warte danach bis <B>MPlayer</B> fertig ist und stoppe <B>DANN</B> XawTV.</LI> <LI>Dieser Treiber fügt <CODE>-zr*</CODE> zu den Kommandozeilen-Optionen. Die Erklärung dieser Optionen kann mit <CODE>-zrhelp</CODE> angezeigt werden. Es ist möglich, das Eingangsframe zurechtzuschneiden (Die Ränder abzuschneiden um die Geschwindigkeit zu erhöhen) und andere Dinge zu tun.</LI> <LI>Der Treiber nimmt die Daten im YV12 und YUY2 Format an. Das heisst, dass einige Codecs nicht gehen. Einige alte VfW (Video für Windows) Codecs, zum Beispiel, sind inkompatibel mit diesem Treiber. Die Fehlermeldung, die du sehen wirst ist: <CODE>Sorry, das angewählte video_out Gerät ist inkompatibel mit diesem Codec. </CODE></LI> <LI>OSD ist momentan nicht unterstützt. Du kannst also keine Untertitel sehen.</LI> </UL> </P> <P><B><A NAME=2.3.1.A>2.3.1.A. TV-Out Unterstützung</A></B></P> <P><B><A NAME=2.3.1.A.1>2.3.1.A.1. Matrox G400 Karten</A></B></P> <P>Unter Linux hast du 2 Methoden den G400 TV Ausgang zum Laufen zu bringen :</P> <P><B>WICHTIG:</B> Nur Matrox G400DH/G400MAX hat TV-out Unterstützung unter Linux, andere (G450, G550) haben dies <B>NICHT!</B></P> <P> <UL> <LI><B>XFree86</B>: Verwende dazu den Treiber und das HAL-Module von <A HREF="http://www.matrox.com">Matrox</A>, so wirst du Dual-Head-Unterstützung erhalten und es wird möglich sein den 2. Ausgang am TV zu nutzen.<BR> <B>Diese Methode gibt dir keine beschleunigte Wiedergabe</B> wie unter Windows! Der 2. Ausgang hat bloss YUV framebuffer, der <I>BES</I> (Back End Scaler, den YUV Skalierer auf den G200/G400/G450/G550 Karten) funktioniert nicht mit ihm! Die Windows-Treiber können das Problem irgendwie übergehen, wahrscheinlich durch die Benutzung des 3D-Engines zum zoomen und dem YUV framebuffer zum darstellen des gezoomten Bildes. Wenn du wirklich X verwenden möchtest, benutze die <CODE>-vo x11 -fs -zoom</CODE> Option. Es wird jedoch <B>LANGSAM</B> sein und hat einen <B>Macrovision</B> Kopierschutz aktiviert. Also wird es nur bei einem direkt verbunden TV funkionieren, nicht bei einem VCR. (Du kannst den Macrovision umgehen indem du <A HREF="http://avifile.sourceforge.net/mgamacro.pl">dieses</A> Perl Skript verwendest.)</LI> <LI><B>Framebuffer</B>: benützt das <B>matroxfb Module</B> in den 2.4 Kernels. 2.2 Kernels haben dieses TVout Feature nicht integriert, sind also unbrauchbar für dies. Du musst dazu ALLE matroxfb-spezifischen Features aktiviert haben (ausser MultiHead) und als <B>Module</B> kompilieren! I2C muss auch aktiviert sein. <UL> <LI> Gehe ins Verzeichnis <CODE>TVout/matroxset</CODE> und gib <CODE>make</CODE> ein. Installiere <CODE>matroxset</CODE> irgendwo in deinem PATH.</LI> <LI> Wenn du kein <CODE>fbset</CODE> installiert hast, gehe ins Verzeichnis <CODE>TVout/fbset</CODE> and gib <CODE>make</CODE> ein. Installiere <CODE>fbset</CODE> irgendwo in deinem PATH.</LI> <LI> Gehe danach ins <CODE>TVout/</CODE> Verzeichniss im <B>MPlayer</B> Source, und führe <CODE>./modules</CODE> als root aus. Deine Textmode-Konsole geht in den Framebuffer-Modus über (kein weg zurück!).</LI> <LI>Als nächstes, führe das <CODE>./matroxtv</CODE> Script aus. Dies wird dir ein sehr einfaches Menu präsentieren. Drücke <B>2</B> und <B>ENTER</B>. Nun solltest du dasselbe Bild auf deinem Monitor und TV haben. Die <B>3.</B> Option aktiviert eine unabhängige Ausgabe. Aber dann <B>kannst du X nicht benutzen</B>! Wenn das TV (PAL !) Bild einige seltsame Streifen darauf hat, war das Script nicht fähig die Auflösung richtig zu setzen (zu 640x512 als Standard). Benutze zufällig irgendwelche andere Optionen und es wird wieder OK :)</LI> </UL> <P> Die nächste Aufgabe ist den Cursor auf tty1 (oder wo auch immer) zum verschwinden zu bringen und das blinken zu deaktivieren. Führe folgendes Kommando aus:</P> <P> <CODE>echo -e '\033[?25l'</CODE> oder <CODE>setterm -cursor off<BR> setterm -blank 0</CODE> </P> <P> Du willst wahrscheinlich das obrige in ein Skript tun und auch den Bildschirm löschen... Um den Cursor schwarz zu machen: <BR><CODE>echo -e '\033[?25h'</CODE> oder <CODE>setterm -cursor on</CODE> </P> <P>Starte nun einen Film mit <CODE>mplayer -vo mga -fs -screenw 640 -screenh 512 <dateiname></CODE><BR> (wenn du X verwendest, ändere zu matroxfb mit z.B. CTRL-ALT-F1 !)<BR> Ändere die Auflösung zu 640x512.<BR> <B>Geniesse die ultra-schnelle ultra-befähigte Matrox TV-Ausgabe (besser als Xv) !</B> </P> </LI> </LI> </UL> </P> <P><B><A NAME=2.3.1.A.2>2.3.1.A.2. ATI Karten</A></B></P> <P> <B>Einige Worte über ATI's TV-Out:</B><BR> Zur Zeit will ATI keine Unterstützung für TV-Out Chipsets unter Linux bieten. Hier ist die offzielle Antwort von ATI Inc.: <P> <CODE> <I> <BR>> Hallo! <BR>> <BR>> Auf eurer Seite steht, dass ihr Linux-Entwickler unterstützt. <BR>> Zur Zeit beteilige ich mich am MPlayer Projekt (www.mplayerhq.hu). <BR>> Ich bin interessiert am Aktivieren des TV-Outs bei Radeon VE-Chips während <BR>> Video-Wiedergabe. Ich würde dieses Feature dem radeonfb-Treiber hinzufügen <BR>> (kann man im CVS-Tree vom MPlayer-Projekt unter main/drivers/radeon finden). <BR>> Ich hab eine Chance eine offizielle Dokumentation zu erhalten? </I> <BR>Wir können aufgrund des Macrovision-Konzerns keine Dokumente im Bezug auf TV-Out <BR>veröffentlichen. Auch Dokumentationen für das MPEG2-Decoding ist etwas das wir <BR>MÖGLICHWEISE in der Zukunft veröffentlichen, aber zur Zeit nicht. Dies ist ebenfall <BR>aufgrund einen Eigentümer und einer 3. Partei. </CODE> </P> <P>Bemitleidenswert, nicht?</P> <P> <CODE> <B>Q: Was ist Macrovision?</B><BR> A: Es ist ein Kopierschutz-Mechanismus.</CODE> </P> <P>Dies bedeutet, wenn sie die TV-Out anbelangenden Informationen veröffentlichen, das Hacker es ermöglicht werden könnte, den Kopierschutz ihrer Chips zu umgehen. Deshalb gibt es keine Möglichkeit den TV-Out bei ATI-Karten zu aktivieren.</P> <P>Wie ist der Status von ATI TV-Out-Chips unter Linux: <LI><B>ATI Mach64</B> verwendet <I>ImpacTV</I>, welcher von Gatos unterstützt wird. <LI><B>ASIC Radeon VIVO</B> verwendet <I>Rage Theatre</I>, welcher von Gatos unterstützt wird. <LI><B>Radeon VE</B> und <B>Rage PRO LT</B> verwenden <I>ImpacTV2+</I>, welcher unter Linux nicht unterstützt wird. <LI>Aber mit <B>MPlayer</B> erhältst du <B>vollständige Hardware-Beschleunigung</B> und <B>TV Ausgabe</B> für Radeon Karten ! Lies die <a href=#2.3.1.12>VESA Treiber</a> und <A HREF=#2.3.1.14>Radeon Beschleunigung</A> Abschnitte.</P> <P> Glücklicherweise können Benutzer mit genügend schnellen CPUs (Duron, Celeron2 und besser) filme auf ihrem TV durch <a href=#2.3.1.12>VESA Treiber</a> sehen. </P> <P> Ich könnte auch gute Worte zu ATI Inc. sagen:<br> <b>Sie produzieren BIOSs von höchster Qualität.</b> </P> <P> <b>VESA Treiber</b> benutzen keine Harware-Beschleunigung, simulieren jedoch <b>DGA</b> durch ein 64K Fenster, das durch 32-bit Modus Funktionen des BIOS konfiguriert wird. ATI Karten haben genug <b>schnellen Videospeicher</b> (DIMM oder DDR Chips mit 64 - 128-bit Zugriff). Es existieren keine Beschränkungen, welcher Videomodus auf deinem TV dargestellt werden kann (wie bei anderen Karten). Du kannst also <b>irgendeinen Videomodus</b> auf deinem <b>TV</b> benutzen (von <b>320x200</b> bis zu <b>1024x768</b>).<br> Auf der anderen Seite (Es ist mindestens für <b>Radeon</b> Karten bekannt) gibt es einen <b>DGA</b> Modus, welcher automatisch erkannt wird und in diesem Fall vergleichbare Geschwindigkeiten wie die <b>-vo dga</b> und <b>-vo fbdev</b> Treiber liefert.<br> Das einzige, was du zu tun hast - <b>hab den TV-Anschluss eingesteckt bevor du deinen PC startest</b> denn das Video BIOS initialisiert sich selbst nur einmal während der POST Prozedure. </P> <P> Lies in der <a href="video.html#2.3.1.12">VESA</a> Sektion dieser Dokumentation um mehr Details zu erhalten. </P> <P><B><A NAME=2.3.1.A.3>2.3.1.A.3. Voodoo 3</A></B></P> <P> Überprüfe <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">diese URL</A>. </P> </BODY> </HTML>