mirror of https://github.com/mpv-player/mpv
1705 lines
76 KiB
HTML
1705 lines
76 KiB
HTML
<!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>-vf scale=640:350</CODE> or<BR>
|
||
<CODE>-vf 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>-vf 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 -vf lavc deinedatei.ext
|
||
mplayer -ao mpegpes -vo mpegpes -vf expand,fame 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>-vf 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 -vf scale=512:576,lavc
|
||
</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 -vf expand=640:576,fame file.avi
|
||
</PRE>
|
||
|
||
<P>Wenn deine CPU für 720x576-DivX zu langsam ist, dann skalier
|
||
herunter:</P>
|
||
|
||
<PRE>
|
||
mplayer -ao mpegpes -vo mpegpes -vf scale=352:576,lavc file.avi
|
||
</PRE>
|
||
|
||
<P>Wenn sich die Geschwindigkeit nicht verbessert, dann skalier auch in
|
||
vertikaler Richtung:</P>
|
||
|
||
<PRE>
|
||
mplayer -ao mpegpes -vo mpegpes -vf scale=352:288,lavc 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: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1,lavc
|
||
für 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1,lavc
|
||
</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>-vf 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>-vf
|
||
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>-vf 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>-vf expand=-1:-1:-1:-1:1,lavc</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 -vf 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 -vf 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<61>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<61>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://www.bglug.ca/matrox_tvout/">
|
||
http://www.bglug.ca/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>
|