mirror of
https://github.com/mpv-player/mpv
synced 2024-12-11 17:37:23 +00:00
907136e042
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7080 b3059339-0415-0410-9bf9-f77b7e298cf2
1214 lines
61 KiB
HTML
1214 lines
61 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>Es ist SEHR zu empfehlen, dass man die MTRR Register aktiviert, 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>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>
|
|
|
|
<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>
|
|
|
|
<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 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>
|
|
<LI>durch die mga_vid Kerneltreiber-Meldungen (verwende dmesg):
|
|
<P><CODE>mga_mem_base = d8000000</CODE></P></LI>
|
|
</UL>
|
|
|
|
<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>
|
|
<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 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>
|
|
|
|
|
|
<H4><A NAME="xv">2.3.1.2. Xv</A></H4>
|
|
|
|
<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 <CODE>-vo xv</CODE>. 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>
|
|
|
|
<UL>
|
|
<LI>Du verwendest XFree86 4.0.2 oder neuer (frühere Versionen haben kein XVideo)</LI>
|
|
<LI>Deine Karte unterstützt Hardwarebeschleunigung (die meisten aktuellen tuen dies)</LI>
|
|
<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><B>Hinweis:</B> dies lädt nur die XFree86 Erweiterung. In einer guten Installation
|
|
ist sie immer geladen, aber das bedeutet nicht, dass der Support mit <B>deiner</B>
|
|
Karte funktioniert!</P></LI>
|
|
<LI>Deine Karte hat Xv Unterstützung unter Linux. Um es zu überprüfen, tippe
|
|
<CODE>xvinfo</CODE>, 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>
|
|
<LI>Zum Schluss prüfe, ob <B>MPlayer</B> mit <CODE>xv</CODE> Unterstützung kompiliert wurde.
|
|
./configure zeigt an, ob es eingebaut wurde.</LI>
|
|
</UL>
|
|
|
|
|
|
<H5><A NAME="xv_3dfx">2.3.1.2.1. 3dfx Karten</A></H5>
|
|
|
|
<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 <CODE>-vo xv</CODE> bemerkst, probier SDL (es unterstützt auch XVideo)
|
|
und prüfe ob es funkioniert. Siehe <A HREF="#sdl">SDL Sektion</A> für Details.</P>
|
|
|
|
<P><B>Oder</B> versuche den <B>neuen</B> <CODE>-vo tdfxfb</CODE> Treiber! Siehe <A HREF="#tdfxfb">Tdfxfb Sektion</A>.</P>
|
|
|
|
|
|
<H5><A NAME="xv_s3">2.3.1.2.2. S3 Karten</A></H5>
|
|
|
|
<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 zu YUY2 Konversion durchgeführt werden, da 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>
|
|
|
|
|
|
<H5><A NAME="xv_nvidia">2.3.1.2.3. nVidia Karten</A></H5>
|
|
|
|
<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>Riva128 Karten haben keine XVideo Unterstützung, auch nicht mit dem
|
|
nVidia-Treiber :(
|
|
Wende dich an nVidia.</P>
|
|
|
|
|
|
<H5><A NAME="xv_ati">2.3.1.2.4. ATI Karten</A></H5>
|
|
|
|
<UL>
|
|
<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="#vidix">Vidix</A>
|
|
Abteilung.</LI>
|
|
</UL>
|
|
|
|
|
|
<H5><A NAME="xv_neomagic">2.3.1.2.5. NeoMagic Karten</A></H5>
|
|
|
|
<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><CODE>Section "Device"<BR>
|
|
<I>[...]</I><BR>
|
|
Driver "neomagic"<BR>
|
|
<B>Option "OverlayMem" "829440"</B><BR>
|
|
<I>[...]</I><BR>
|
|
EndSection</CODE></P>
|
|
|
|
|
|
<H5><A NAME="xv_trident">2.3.1.2.6. Trident Karten</A></H5>
|
|
|
|
<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>
|
|
|
|
|
|
<H4><A NAME="dga">2.3.1.3. DGA</A></H4>
|
|
|
|
<H5><A NAME="dga_summary">2.3.1.3.1. Zusammenfassung</A></H5>
|
|
|
|
<P>Dieses Dokument versucht mit einigen Worten zu beschreiben, was DGA allgemein
|
|
ist und was man mit dem DGA Video-Ausgabetreiber für <B>MPlayer</B> alles machen kann
|
|
(und was es nicht kann).</P>
|
|
|
|
|
|
<H5><A NAME="dga_whatis">2.3.1.3.2. Was ist DGA</A></H5>
|
|
|
|
<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 (<B>nicht</B> 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 X Server 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 X Server Video-Treibers,
|
|
welcher den Chip kontrolliert. Also funktioniert es nicht auf jedem System...</P>
|
|
|
|
|
|
<H5><A NAME="dga_installation">2.3.1.3.3. Installation der DGA Unterstützung für MPlayer</A></H5>
|
|
|
|
<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><BLOCKQUOTE>
|
|
<B>Warnung: Sicherheitsrisiko</B><BR>
|
|
Dies ist ein <B>grvsseres</B> Sicherheitsrisiko! Es sollte <B>nie</B> auf einem Server oder
|
|
einem Computer, der nicht vollstdndig kontrolliert wird angewandt werden. Da die User durch
|
|
einen SUID root <B>MPlayer</B> Root-Privilegien bekommen!<BR>
|
|
<B>Du bist also gewarnt worden!</B>
|
|
</BLOCKQUOTE></P>
|
|
|
|
<P>Verwende nun die <CODE>-vo dga</CODE> Option und es sollte funktionieren! (hoffe es:)
|
|
Du solltest auch probieren, ob die <CODE>-vo sdl:dga</CODE> Option bei dir funktioniert!
|
|
Es ist um einiges schneller!</P>
|
|
|
|
|
|
<H5><A NAME="dga_resolution">2.3.1.3.4. Änderung der Auflösung</A></H5>
|
|
|
|
<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 X Server
|
|
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 X Server 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>
|
|
|
|
|
|
<H5><A NAME="dga_mplayer">2.3.1.3.5. DGA & MPlayer</A></H5>
|
|
|
|
<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>
|
|
|
|
|
|
<H5><A NAME="dga_features">2.3.1.3.6. Features des DGA-Treibers</A></H5>
|
|
|
|
<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>
|
|
|
|
<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>
|
|
|
|
|
|
<H5><A NAME="dga_speed">2.3.1.3.7. Geschwindigkeit</A></H5>
|
|
|
|
<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 <B>MPlayer</B> 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>
|
|
|
|
|
|
<H5><A NAME="dga_bugs">2.3.1.3.8. Bekannte Probleme</A></H5>
|
|
|
|
<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>
|
|
|
|
<UL>
|
|
<LI>mit XFree 4.0.3 und nv.o gibt es einen Bug, zu erkennen in eigenartigen Farben</LI>
|
|
<LI>ATI-Treiber erfordern mehrmaliges zurückschalten nach dem Abspielen mit DGA</LI>
|
|
<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>
|
|
<LI>einige Treiber weisen kleine Farbfehler auf</LI>
|
|
<LI>einige Treiber lügen, im Bezug auf die Speichergröße für die Anwendung, dieses
|
|
DGA wird kein Doublebuffering verwenden (SIS?)</LI>
|
|
<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>
|
|
<LI>OSD funktioniert nur mit eingeschaltetem Doublebuffering</LI>
|
|
</UL>
|
|
|
|
|
|
<H5><A NAME="dga_future">2.3.1.3.9. Zukünftige Arbeiten</A></H5>
|
|
|
|
<UL>
|
|
<LI>Verwendung des neuen X11 Rendering-Interfaces für OSD</LI>
|
|
<LI>Wo ist meine TODO Liste ???? :-(((</LI>
|
|
</UL>
|
|
|
|
|
|
<H5><A NAME="dga_modelines">2.3.1.3.A. Einige Modus-Einstellungen</A></H5>
|
|
|
|
<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 X Server Treibermodules.</P>
|
|
|
|
|
|
<H5><A NAME="dga_bug_reports">2.3.1.3.B. Fehlerberichte</A></H5>
|
|
|
|
<P>Wenn du Probleme mit dem DGA-Treibers hast, sende einen Fehlerbericht
|
|
(e-Mail Adresse siehe untern). Bitte starte <B>MPlayer</B> 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>
|
|
|
|
|
|
<H4><A NAME="sdl">2.3.1.4. SDL</A></H4>
|
|
|
|
<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>
|
|
|
|
<TABLE BORDER=0>
|
|
<TR><TD COLSPAN=4><P><B>Es gibt einige Commandline-Optionen für SDL:</B></P></TD></TR>
|
|
<TR><TD> </TD><TD><CODE>-vo sdl:name</CODE></TD><TD> </TD>
|
|
<TD>wählt den zu verwendenden Video Treiber aus (z.B. aalib, dga, x11)</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-ao sdl:name</CODE></TD><TD></TD><TD>wählt den zu verwendenden Audio Treiber aus
|
|
(z.B. dsp, esd, arts)</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-noxv</CODE></TD><TD></TD><TD>schaltet die Xvideo Hardwarebeschleunigung aus</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-forcexv</CODE></TD><TD></TD><TD>versucht die Xvideo-Beschleunigung zu erzwingen</TD></TR>
|
|
<TR><TD COLSPAN=4><P><B>SDL-Tasten:</B></P></TD></TR>
|
|
<TR><TD></TD><TD><CODE>F</CODE></TD><TD></TD><TD>wählt Vollbild-/Fenster-Modus</TD></TR>
|
|
<TR><TD></TD><TD><CODE>C</CODE></TD><TD></TD><TD>verfügbare Zyklen beim Vollbild-Modus</TD></TR>
|
|
<TR><TD></TD><TD><CODE>W/S</CODE></TD><TD></TD><TD>zusammenhängend mit * und / (Mixer-Kontrolle)</TD></TR>
|
|
</TABLE>
|
|
|
|
<H4>BEKANNTE FEHLER:</H4>
|
|
|
|
<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).</LI>
|
|
</UL>
|
|
|
|
|
|
<H4><A NAME="svgalib">2.3.1.5. SVGAlib</A></H4>
|
|
|
|
<H4>Installation</H4>
|
|
|
|
<P>Das svgalib Packet und dessen Entwicklungs-Packet müssen installiert sein, um
|
|
den SVGAlib Treiber in <B>MPlayer</B> einzubauen (wird automatisch erkannt, kann jedoch
|
|
auch erzwungen werden). Es sollte auch nicht vergessen werden, die
|
|
<CODE>/etc/vga/libvga.config</CODE> auf die entsprechende Karte & Monitor anzupassen.</P>
|
|
|
|
<H4>Hinweise</H4>
|
|
|
|
<P>Die -fs Option sollte nicht verwendet werden, da dadurch der Gebrauch des
|
|
Softwareskalierers aktiviert wird, der sehr langsam ist. Wenn dies trotzdem
|
|
benötigt wird, sollte die <CODE>-sws 4</CODE> Option verwendet werden, die
|
|
zwar eine schlechtere Qualität liefert, jedoch viel schneller ist.</P>
|
|
|
|
<H4>EGA (4bpp) Unterstützung</H4>
|
|
|
|
<P>SVGAlib beinhaltet auch EGAlib. <B>MPlayer</B> hat also auch die Fähigkeit, Filme mit
|
|
16 Farben widerzugeben, welche durch folgende Einstellungen brauchbar wird:</P>
|
|
|
|
<UL>
|
|
<LI>EGA Karte mit EGA Bildschirm: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp</LI>
|
|
<LI>EGA Karte mit CGA Bildschirm: 320x200x4bpp, 640x200x4bpp</LI>
|
|
</UL>
|
|
|
|
<P>Der bpp (Bits pro Pixel) Wert muss mit der Hand auf 4 gesetzt werden:<BR>
|
|
<CODE>-bpp 4</CODE><BR>
|
|
Wahrscheinlich muss der Film dabei verkleinert (skaliert) werden, um dem EGA
|
|
Modus gerecht zu werden:<BR>
|
|
<CODE>-vop scale=640:350</CODE> oder<BR>
|
|
<CODE>-vop scale=320:200</CODE><BR>
|
|
Dazu wird eine schnelle Skalierungsroutine mit schlechte Qualität benötigt:<BR>
|
|
<CODE>-sws 4</CODE><BR>
|
|
Vielleicht muss die automatische Verhältniskorrektur deaktiviert werden:<BR>
|
|
<CODE>-noaspect</CODE></P>
|
|
|
|
|
|
<H4><A NAME="fbdev">2.3.1.6. Framebuffer Ausgabe (FBdev)</A></H4>
|
|
|
|
<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>
|
|
|
|
<TABLE BORDER=0>
|
|
<TR><TD> </TD><TD><CODE>-fb</CODE></TD><TD> </TD>
|
|
<TD>spezifiziert den zu verwendenden Framebuffer (/dev/fb0)</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-fbmode</CODE></TD><TD></TD><TD>Modus das verwendet werden soll (siehe /etc/fb.modes)</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-fbmodeconfig</CODE></TD><TD></TD><TD>Konfigurationsdatei für das Modus (standard ist /etc/fb.modes)</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-monitor_hfreq</CODE></TD><TD></TD><TD ROWSPAN=3>WICHTIGE Werte, siehe example.conf</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-monitor_vfreq</CODE></TD><TD></TD></TR>
|
|
<TR><TD></TD><TD><CODE>-monitor_dotclock</CODE></TD><TD></TD></TR>
|
|
</TABLE>
|
|
|
|
<P>Wenn du zu einem speziellen Modus wechseln willst, verwende</P>
|
|
|
|
<P><CODE> mplayer -vm -fbmode (Name_des_Modus) Dateiname</CODE></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></LI>
|
|
</UL>
|
|
|
|
<P><B>Hinweis:</B> FBdev Video-Modus-Änderungen _funktionieren nicht_ mit dem VESA
|
|
Framebuffer, also frage nicht danach, denn es ist keine <B>MPlayer</B> Beschränkung.</P>
|
|
|
|
|
|
<H4><A NAME="mga_vid">2.3.1.7. Matrox Framebuffer (mga_vid)</A></H4>
|
|
|
|
<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="#vidix">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 <CODE>dmesg</CODE>
|
|
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 <CODE>mga</CODE> Treiber einbauen. Die Verwendung mit
|
|
<B>MPlayer</B> wird wenn man eine matroxfb Konsole hat mit <CODE>-vo mga</CODE> oder mit
|
|
<CODE>-vo xmga</CODE> unter XFree86 3.x.x oder 4.x.x realisiert.</P>
|
|
|
|
<P>Der mga_vid Treiber arbeitet nun auch mit dem Xv zusammen.
|
|
|
|
|
|
<H4><A NAME="sis_vid">2.3.1.8. SiS 6326 Framebuffer (sis_vid)</A></H4>
|
|
|
|
<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>
|
|
|
|
|
|
<H4><A NAME="tdfxfb">2.3.1.9. 3dfx YUV Unterstützung (tdfxfb)</A></H4>
|
|
|
|
<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>
|
|
|
|
|
|
<H4><A NAME="opengl">2.3.1.10. OpenGL Ausgabe</A></H4>
|
|
|
|
<P><B>MPlayer</B> unterstützt die Ausgabe von Videos über OpenGL. Wenn die
|
|
Plattform / der Treiber jedoch xv unterstützt, was für ein PC mit Linux der
|
|
Fall sein sollte, sollte besser xv verwendet werden, da die Leistung von OpenGL
|
|
beträchtlich schlechter ist. Wenn man eine X11 Implementierung ohne xv besitzt,
|
|
ist OpenGL trotzdem eine funktionsfähige Alternative.</P>
|
|
|
|
<P>Unglücklicherweise unterstützten nicht alle Treiber diese Feature. Die
|
|
Utah-GLX Treiber (für XFree86 3.3.6) unterstützen es für alle Karten. Siehe
|
|
<A HREF="http://utah-glx.sourceforge.net">http://utah-glx.sourceforge.net</A>
|
|
für Details zur Installation.</P>
|
|
|
|
<P>XFree86(DRI) 4.0.3 unterstützt OpenGL mit Matrox- und Radeon-Karten, >= 4.2
|
|
unterstützt auch Rage128. Siehe
|
|
<A HREF="http://dri.sourceforge.net">http://dri.sourceforge.net</A> für Download-
|
|
und Installations-Anweisungen.</P>
|
|
|
|
|
|
<H4><A NAME="aalib">2.3.1.11. AAlib - Textmodus-Ausgabe</A></H4>
|
|
|
|
<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. <B>MPlayer</B> enthält einen sehr gut brauchbaren
|
|
Treiber dafür.
|
|
Wenn ./configure erkennt, dass aalib installiert ist, wird der aalib libvo
|
|
Treiber eingebaut.</P>
|
|
|
|
<TABLE BORDER=0>
|
|
<TR><TD COLSPAN=4><P><B>Du kannst einige Tasten verwenden im AA Fenster, um Rendering-Optionen zu ändern:</B></P></TD></TR>
|
|
<TR><TD> </TD><TD><CODE>1</CODE></TD><TD> </TD><TD>verringert Kontrast</TD></TR>
|
|
<TR><TD></TD><TD><CODE>2</CODE></TD><TD></TD><TD>erhöht Kontrast</TD></TR>
|
|
<TR><TD></TD><TD><CODE>3</CODE></TD><TD></TD><TD>verringert Schärfe</TD></TR>
|
|
<TR><TD></TD><TD><CODE>4</CODE></TD><TD></TD><TD>erhöht Schärfe</TD></TR>
|
|
<TR><TD></TD><TD><CODE>5</CODE></TD><TD></TD><TD>schaltet schnelles Rendern ein/aus</TD></TR>
|
|
<TR><TD></TD><TD><CODE>6</CODE></TD><TD></TD><TD>wählt das Farbmischungs-Modus (keine, error dithering, Floyd Steinberg)</TD></TR>
|
|
<TR><TD></TD><TD><CODE>7</CODE></TD><TD></TD><TD>invertiert Bild</TD></TR>
|
|
<TR><TD></TD><TD><CODE>a</CODE></TD><TD></TD><TD>wechselt zwischen AA und <B>MPlayer</B> Kontrolle)</TD></TR>
|
|
<TR><TD COLSPAN=4><P><B>Die folgenden Kommandozeilen-Optionen können verwendet werden:</B></P></TD></TR>
|
|
<TR><TD></TD><TD><CODE>-aaosdcolor=V</CODE></TD><TD></TD><TD>ändert OSD-Farbe</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-aasubcolor=V</CODE></TD><TD></TD><TD>ändert Untertitel-Farbe</TD></TR>
|
|
<TR><TD COLSPAN=3></TD><TD><P><I>wobei V sein kann: (0/Normal, 1/Dunkel, 2/Fett, 3/Fettschift, 4/Rückwärts, 5/Spezial)</P></TD></TR>
|
|
<TR><TD COLSPAN=4><P><B>AAlib selbst unterstützt eine größe Summe von Optionen.
|
|
Hier einige wichtige:</P></B></TD></TR>
|
|
<TR><TD></TD><TD><CODE>-aadriver</CODE></TD><TD></TD><TD>setzt erforderlichen AA Treiber (X11, curses, Linux)</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-aaextended</CODE></TD><TD></TD><TD>verwende alle 256 Zeichen</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-aaeight</CODE></TD><TD></TD><TD>verwendet acht-bit ASCII</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-aahelp</CODE></TD><TD></TD><TD>gibt alle AAlib-Optionen aus</TD></TR>
|
|
</TABLE>
|
|
|
|
<P><B>Hinweis:</B> 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 <CODE>-framedrop</CODE> 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>
|
|
|
|
|
|
<H4><A NAME="vesa">2.3.1.12. VESA - output to VESA BIOS</A></H4>
|
|
|
|
<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. Ein weiterer Vorteil dieses
|
|
Treibers ist, dass er versucht, die TV Ausgabe zu erzwingen.<BR>
|
|
<B>VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998</B> (Seite 70) sagt:</P>
|
|
|
|
<BLOCKQUOTE>
|
|
<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.
|
|
</BLOCKQUOTE>
|
|
|
|
<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>
|
|
|
|
<H4>Vorteile:</H4>
|
|
|
|
<UL>
|
|
<LI>Du hast Chance Videos zu sehen, <B>auch wenn Linux nicht mal deine Videohardware kennt</B>.</LI>
|
|
<LI>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.</LI>
|
|
<LI>Du hast Chancen den <B>TV-Out einzuschalten</B>. (Bis jetzt nur von ATI-Karten bekannt).</LI>
|
|
<LI>Dieser Treiber verwendet <B>int 10h</B> Handler, das heisst es ist kein Emulator - es ruft
|
|
<B>echte</B> Befehle des <B>echten</B> BIOS im <B>Real</B>-Mode aus. (im vm86 Modus).</LI>
|
|
<LI>Du kannst Vidix damit verwenden und dadurch eine beschleunigte Videowiedergabe
|
|
<B>und</B> den TV Ausgang gleichzeitig verwenden. (empfohlen für ATI Karten)</LI>
|
|
</UL>
|
|
|
|
<H4>Nachteile:</H4>
|
|
|
|
<UL>
|
|
<LI>Es funktioniert nut auf <B>x86 Systemen</B>.</LI>
|
|
<LI>Es kann nur als <B>ROOT</B> verwendet werden.</LI>
|
|
<LI>Zur Zeit ist es nur für <B>Linux</B> verfügbar.</LI>
|
|
</UL>
|
|
|
|
<P>Verwende diesen Treiber nicht mit <B>GCC 2.96</B>! Es wird nicht funktionieren!</P>
|
|
|
|
<TABLE BORDER=0>
|
|
<TR><TD COLSPAN=4><P><B>Diese Commandline-Parameter sind zur Zeit verfügbar für VESA:</B></P></TD></TR>
|
|
<TR><TD> </TD><TD><CODE>-vo vesa:opts</CODE></TD>
|
|
<TD> </TD><TD>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>
|
|
<TR><TD></TD><TD><CODE>-screenw, -screenh, -bpp</CODE></TD><TD></TD><TD>verwendet von Anwender definierte Modie</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-x, -y</CODE></TD><TD></TD><TD>setzt Prescaling-Auflösung</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-zoom</CODE></TD><TD></TD><TD>aktiviert Prescaling</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-fs</CODE></TD><TD></TD><TD>Vollbild-Scaling</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-fs -zoom</CODE></TD><TD></TD><TD>Vollbild-Scaling des prescalten Bildes</TD></TR>
|
|
<TR><TD></TD><TD><CODE>-double</CODE></TD><TD></TD><TD>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>
|
|
|
|
<H4>Bekannte Probleme und Workarounds:</H4>
|
|
|
|
<UL>
|
|
<LI>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 <B>MPlayer</B> 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 Lokalisieren von fbdev verwendet).</LI>
|
|
<LI>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.</LI>
|
|
<LI>Oftmals bekommt man nach dem Beenden des VESA-Treiber einen <B>schwarzen Bildschirm</B>. Um
|
|
zurück zum normalen Modues zu kommen - wechsle 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.</LI>
|
|
<LI>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.</LI>
|
|
</UL>
|
|
|
|
|
|
<H4><A NAME="x11">2.3.1.13. X11</A></H4>
|
|
|
|
<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 und Skalierer
|
|
von SDL, er hat eine noch schlimmere Bildqualität!</P>
|
|
|
|
<P>Software-Skalierung ist <B>sehr langsam</B>. Du solltest besser versuchen den Videomodus zu ändern.
|
|
Es ist sehr einfach. Lies in der Sektion <A HREF="#dga_modelines">DGA Modus-Einstellungen</A> und füge diese
|
|
deiner XF86Config an.</P>
|
|
|
|
<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>
|
|
|
|
<P>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>
|
|
|
|
|
|
<H4><A NAME="vidix">2.3.1.14. Vidix</A></H4>
|
|
|
|
<H4>WAS IST VIDIX?</H4>
|
|
|
|
<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 Videoleistungen wie mga_vid von Matrox Karten zur Verfügung stellt. Die Treiber sind
|
|
auch sehr portierbar.</P>
|
|
|
|
<P>Dieses Interface wurde als Versuch entworfen, die existierenden Videobeschleunigungs-Interfaces
|
|
(bekannt als mga_vid, rage128_vid, radeon_vid, pm3_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.</P>
|
|
|
|
<H4>VERWENDUNG</H4>
|
|
|
|
<UL>
|
|
<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 X Server 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> (<B>NUR LINUX</B>) und <CODE>-vo fbdev:vidix</CODE></LI>
|
|
</UL>
|
|
|
|
<P>Allerdings spielt es keine Rolle, welche Videoausgabe-Treiber mit <B>VIDIX</B> verwendet werden.</P>
|
|
|
|
<H4>VORAUSSETZUNGEN</H4>
|
|
|
|
<UL>
|
|
<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>
|
|
</UL>
|
|
|
|
<P>Ich hoffe, dass praktisch jeder Videoausgabetreiber von <B>MPlayer</B> das <CODE>:vidix</CODE>
|
|
subdevice erkennen wird.</P>
|
|
|
|
<H4>GEBRAUCHSMETHODEN</H4>
|
|
|
|
<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>musst</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>
|
|
|
|
<H4>VIDEO EQUALIZER</H4>
|
|
|
|
<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>
|
|
|
|
<TABLE BORDER=0>
|
|
<TR><TD> </TD><TD VALIGN="top"><CODE>-brightness</CODE></TD><TD> </TD>
|
|
<TD>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.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-contrast</CODE></TD><TD></TD>
|
|
<TD>verstellt den <B>KONTRAST</B> der Videoausgabe. Funktioniert ähnlich wie bei der Helligkeit.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-saturation</CODE></TD><TD></TD>
|
|
<TD>verstellt die <B>SÄTTIGUNG</B> der Videoausgabe. Du kannst mit dieser Option eine Graustuffen-Ausgabe erhalten.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-hue</CODE></TD><TD></TD>
|
|
<TD>verstellt den <B>FARBTON</B> des Videosignals. Du kannst mit dieser Option ein negatives Abbild der Farben der Bilder erhalten.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-red_intensity</CODE></TD><TD></TD>
|
|
<TD>verstellt die Intensität der <B>ROTEN</B> Komponenten des Videosignals.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-green_intensity</CODE></TD><TD></TD>
|
|
<TD>verstellt die Intensität der <B>GRÜNEN</B> Komponenten des Videosignals.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-blue_intensity</CODE></TD><TD></TD>
|
|
<TD>verstellt die Intensität der <B>BLAUEN</B> Komponenten des Videosignals.</TD></TR>
|
|
</TABLE>
|
|
|
|
<P>Jeder Parameter akzeptiert Werte von <B>-100</B> bis <B>+100</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>
|
|
|
|
|
|
<H4><A NAME="zr">2.3.1.15. Zr</A></H4>
|
|
|
|
<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:</P>
|
|
|
|
<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>
|
|
|
|
|
|
<H4><A NAME="dvb">2.3.1.16. DVB</A></H4>
|
|
|
|
<P><B>MPlayer</B> unterstützt Karten mit dem Siemens DVB Chip von Herstellern wie
|
|
Siemens, Technotrend, Galaxis oder Hauppauge. Die neusten DVB Treiber sind auf der
|
|
<A HREF="http://www.linuxtv.org">Linux TV Seite</A> erhältlich. Wenn man Software
|
|
Transcoding machen will, sollte man jedoch mindestens eine 1GHz CPU besitzen.</P>
|
|
|
|
<P>Configure sollte die DVB Karte erkennen. Falls nicht, kann eine Erkennung
|
|
erzwungen werden mit folgendem Befehl:</P>
|
|
|
|
<PRE>
|
|
./configure --enable-dvb
|
|
</PRE>
|
|
|
|
<P>Wenn sich die ost Headers nicht im Standard Pfad befinden, sollte der Pfad wie
|
|
folgt angegeben werden:</P>
|
|
|
|
<PRE>
|
|
./configure --with-extraincdir=<DVB Quellverzeichnis>/ost/include
|
|
</PRE>
|
|
|
|
<P>Darauf folgt wie gewöhnlich die Kompilierung und Installation.</P>
|
|
|
|
<H4>VERWENDUNG</H4>
|
|
|
|
<P>Hardware Decodierung (Wiedergabe von gewöhnlichen MPEG1/2 Dateien) kann
|
|
durch folgenden Befehl erreicht werden:</P>
|
|
|
|
<PRE>
|
|
mplayer -ao mpegpes -vo mpegpes datei.mpg|vob
|
|
</PRE>
|
|
|
|
<P>Software Decodierung oder Transcoding verschiedener Formate zu MPEG1 kann
|
|
z.B. durch folgende Befehle erreicht werden:</P>
|
|
|
|
<PRE>
|
|
mplayer -ao mpegpes -vo mpegpes -vop lavc datei.ext
|
|
mplayer -ao mpegpes -vo mpegpes -vop fame,expand datei.ext
|
|
</PRE>
|
|
|
|
<P>Es sei darauf hingewiesen, dass DVB Karten nur Höhen von 288 und 576 für
|
|
PAL bzw 240 und 480 für NTSC unterstützen. Für eine andere Hähenänderung
|
|
<B>muss</B> eine neue Skalierung mit folgendem <CODE>-vop</CODE> Plugin
|
|
durchgeführt werden (mit der Höhe und Breite die gewünscht wird):
|
|
<CODE>scale=breite:höhe</CODE>. DVB Karten akzeptieren viele Breiten wie
|
|
720, 704, 640, 512, 480, 352 etc und können Hardware Skalierungen in horizontaler
|
|
Richtung durchführen, so dass in horizontaler Richtung meist nicht skaliert
|
|
werden muss. Für ein 512x384 (Seitenverhältnis 4:3) DivX, sollte folgender Befehl
|
|
getestet werden:</P>
|
|
|
|
<PRE>
|
|
mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=512:576
|
|
</PRE>
|
|
|
|
<P>Wenn man ein Widescreen Film besitzt und ihn auf die volle Breite skalieren will,
|
|
kann das <CODE>expand=w:h</CODE> Plugin verwendet werden, um schwarze Ränder hinzuzufügen.
|
|
Um ein 640x384 DivX wiederzugeben, kann folgender Befehl verwendet werden:</P>
|
|
|
|
<PRE>
|
|
mplayer -ao mpegpes -vo mpegpes -vop lavc,expand=640:576 datei.avi
|
|
</PRE>
|
|
|
|
<P>If your CPU is too slow for a full size 720x576 DivX, try downscaling:</P>
|
|
|
|
<PRE>
|
|
mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:576 datei.avi
|
|
</PRE>
|
|
|
|
<P>Wenn die Geschwindigkeit sich nicht verbessert, kann auch eine vertikale Skalierung
|
|
auf einen niedrigeren Wert verwendet werden:</P>
|
|
|
|
<PRE>
|
|
mplayer -ao mpegpes -vo mpegpes -vop lavc,scale=352:288 datei.avi
|
|
</PRE>
|
|
|
|
<P>Für OSD und Untertitel sollte das expand Feature des OSD Plugins verwendet werden.
|
|
So sollte anstelle von <CODE>expand=w:h</CODE> oder <CODE>expand=w:h:x:y</CODE>
|
|
<CODE>expand=w:h:x:y:1</CODE> verwendet werden (der 5. Parameter <CODE>:1</CODE> am
|
|
Ende aktiviert die OSD Wiedergabe). Falls erwünscht kann das Bild noch ein bisschen
|
|
nach oben bewegt werden, um eine grössere Zone für die Untertitel zu erhalten.
|
|
Die Untertitel können natürlich auch verschoben werden, falls diese auf dem TV Bildschirm
|
|
nicht sichtbar sind. Dazu kann die <CODE>-subpos <0-100></CODE> Option verwendet werden
|
|
um die Untertitel ensprechend anzupassen (<CODE>-subpos 80</CODE> ist z.B. gut).</P>
|
|
|
|
<P>Um nicht-25fps Filme auf einem PAL TV oder einer langsamen CPU wiederzugeben, sollte
|
|
die <CODE>-framedrop</CODE> Option aktiviert werden.</P>
|
|
|
|
<P>Um das Seitenverhältnis von DivX Dateien aufrecht und optimale Skalierungsparameter
|
|
zu erhalten (horizontale Hardwareskalierung und vertikale softwareskalierung unter
|
|
beibehaltung des Seitenverhältnis), sollte das neue dvbscale Plugin verwendet werden:</P>
|
|
|
|
<PRE>
|
|
für 3:4 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale
|
|
für 16:9 TV: -vop lavc,expand=-1:576:-1:-1:1,scale=-1:0,dvbscale=1024
|
|
</PRE>
|
|
|
|
<H4>ZUKUNFT</H4>
|
|
|
|
<P>Wenn Fragen bestehen oder Feature Ankündigungen und Diskussionen zum Thema erwünscht sind,
|
|
sollte der <A HREF="http://mplayerhq.hu/mailman/listinfo/mplayer-dvb">MPlayer-DVB</A>
|
|
Mailingliste beigetreten werden. Auf der Liste sollte immer Englisch gesprochen werden.</P>
|
|
|
|
<P>In Zukunft wird man OSD und Untertitel mit dem eingebauten OSD Feature der DVB Karten
|
|
anzeigen können, sowie eine flüssige Wiedergabe von nicht-25fps Filmen und Echtzeit
|
|
Transcodierungen zwischen MPEG2 und MPEG4 (teilweise Dekomprimierung).</P>
|
|
|
|
|
|
<H4><A NAME="dxr3">2.3.1.17. DXR3</A></H4>
|
|
|
|
<P><B>MPlayer</B> unterstützt eine hardwarebeschleunigte Wiedergabe mit den
|
|
Creative DXR3 und Sigma Designs Hollywood Plus Karten.</P>
|
|
|
|
<P>Zuerst sollten die DXR3/H+ Treiber korrekt installiert werden (Version
|
|
0.12.0 oder neuer). Sie und die Installationsanweisungen können auf der
|
|
<A HREF="http://dxr3.sourceforge.net/">DXR3 & Hollywood Plus für Linux</A>
|
|
Seite gefunden weredn. <CODE>configure</CODE> sollte die Karte automatisch erkennen.
|
|
Auch die Kompilierung sollte problemlos verlaufen.</P>
|
|
|
|
<H4>VERWENDUNG</H4>
|
|
|
|
<TABLE>
|
|
<TR><TD> </TD><TD VALIGN="top"><CODE>-vo dxr3:<noprebuf>:<codec>:<device></CODE></TD><TD> </TD>
|
|
<TD>Where <CODE><noprebuf></CODE> specifies turning off prebuffering.
|
|
Dies wird auf Athlons automatisch erledigt. Falls die Wiedergabe desynchronisiert
|
|
ist, sollte das Prebuffering deaktiviert werden. Wenn noprebuf ausgelassen wird,
|
|
wird das Prebuffering aktiviert (ausser auf Athlons).<BR>
|
|
<CODE><codec></CODE> = fame/avcodec, avcodec erzeugt eine bessere
|
|
Ausgabequalität, ist jedoch langsamer als fame, der auf langsamen Maschninen
|
|
verwendet werden sollte. Standardmässig wird libavcodec verwendet. Dazu muss
|
|
libabvcodec natürlich korrekt installiert sein (näheres dazu in
|
|
<A HREF="codecs.html">codecs.html</A>).<BR>
|
|
<CODE><device></CODE> = Gerätenummer die verwendet werden soll bei mehreren
|
|
em8300 Karten.<BR>
|
|
Alle dieser Optionen können ausgelassen werden, müssen jedoch in der genannten
|
|
Reihenfolge angegeben werden, so funktioniert <CODE>dxr3:fame</CODE> und <CODE>dxr3:1</CODE>,
|
|
<CODE>dxr3:1:avcodec</CODE> jedoch nicht.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-ao oss:/dev/em8300_ma-X</CODE></TD>
|
|
<TD></TD><TD>Für die Audioausgabe, wobei <CODE>X</CODE> die Gerätenummer ist
|
|
(0 mit einer Karte).</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-ac hwac3</CODE></TD>
|
|
<TD></TD><TD>Für die digitale anstatt analoge Audioausgabe.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-vc mpegpes</CODE></TD>
|
|
<TD></TD><TD>Erzwingt die Hardwarebeschleunigung, funktioniert jedoch nur mit MPEG1/2.</TD></TR>
|
|
<TR><TD></TD><TD VALIGN="top"><CODE>-aop list=resample:fout=xxxxx</CODE></TD>
|
|
<TD></TD><TD>Falls die Samplerate unter 44100Hz liegt, sollte entweder 44100Hz oder 48000Hz
|
|
verwendet werden. Das passendere ist dabei vorzuziehen: So sollte 44100Hz für einen
|
|
22050Hz Film verwendet werden (44100 / 2 = 22050). Bei 24000Hz sollte ensprechend 48000Hz
|
|
verwendet werden (48000 / 2 = 24000) usw... Dies funktioniert nicht mit der digitalen Audioausgabe
|
|
(<CODE>-ac hwac3</CODE>).</TD></TR>
|
|
</TABLE>
|
|
|
|
<H4>Überlagerung (overlay)</H4>
|
|
|
|
<P>Um ein overlay zu erhalten, sollte <CODE>dxr3view</CODE>, welches sich im
|
|
em8300 Paket befindet, vor dem Start von <B>MPlayer</B> aufgerufen werden.
|
|
Man kann dabei in <CODE>dxr3view</CODE> viele Optionen setzten durch Drücken der Taste
|
|
<CODE>T</CODE>, dabei muss der Mauszeiger über dem Fenster bleiben.</P>
|
|
|
|
<H4>MPEG1, MPEG2, VCD und DVD Hinweise</H4>
|
|
|
|
<P>MPEG1/2 Inhalt sollte nun automatisch von <B>MPlayer</B> erkannt mit der
|
|
Hardwarebeschleunigung von DXR3 wiedergegeben werden. Falls nicht, kann die
|
|
Hardwarebeschleunigung mit der Option <CODE>-vc mpegpes</CODE> erzwungen werden.
|
|
Falls jedoch irgendwelche Nachbearbeitungsfilter verwendet werden sollen, muss
|
|
<CODE>-vc mpeg12</CODE> verwendet werden.</P>
|
|
|
|
<P>In einigen Fällen, erscheinen die Untertitel nicht synchron mit dem A/V Stream
|
|
bei der Verwendung der Hardware Decodierung (<CODE>-vc mpegpes</CODE>). Dies ist
|
|
ein bekannter Fehler. em8300 behandelt auch zu grosse Untertitel falsch und kann dabei
|
|
1 bis 2 Sekunden stillstehen. Momentan lässt sich der Fehler bei der Wiedergabe von
|
|
DVDs mit Untertiteln nur durch die Verwendung von <CODE>-vc mpeg12</CODE> umgehen.</P>
|
|
|
|
|
|
<H4><A NAME="tvout">2.3.1.A. TV-Out Unterstützung</A></H4>
|
|
|
|
<H5><A NAME="tvout_matrox">2.3.1.A.1. Matrox G400 Karten</A></H5>
|
|
|
|
<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>
|
|
|
|
<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 <B>alle</B> 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>
|
|
</UL>
|
|
|
|
|
|
<H5><A NAME="tvout_ati">2.3.1.A.2. ATI Karten</A></H5>
|
|
|
|
<H4>EINLEITUNG</H4>
|
|
|
|
<P>ATI will momentan keine ihrer TV-out Chips unter Linux unterstützen, auf Grund
|
|
ihrer lizenzierten Macrovision Technologie.</P>
|
|
|
|
<H4>STATUS DER ATI TV-OUT KARTEN UNTER LINUX</H4>
|
|
|
|
<UL>
|
|
<LI><B>ATI Mach64</B>: unterstützt von <A HREF="http://gatos.sf.net">gatos</A>.</LI>
|
|
<LI><B>ASIC Radeon VIVO</B>: unterstütz von <A HREF="http://gatos.sf.net">gatos</A>.</LI>
|
|
<LI><B>Radeon</B> und <B>Rage128</B>: unterstützt von <B>MPlayer</B>
|
|
Es sollte die <a href="#vesa">VESA Treiber</a> und <A HREF="#vidix">Vidix</A>
|
|
Sektion überprüft werden.</LI>
|
|
</UL>
|
|
|
|
<P>Auf anderen Karten sollten bloss die <A HREF="#vesa">VESA Treiber</A>, ohne
|
|
Vidix verwendet werden. Es wird jedoch eine leistungsfähige CPU benötigt.</P>
|
|
|
|
<P>Das einzige, was zu tun ist - <B>den TV Stecker eingesteckt haben, bevor man
|
|
den PC bootet</B>, da das Video BIOS sich nur einmal während der POST Prozedur
|
|
initialisiert.</P>
|
|
|
|
|
|
<H5><A NAME="tv_out_voodoo">2.3.1.A.3. Voodoo 3</A></H5>
|
|
|
|
<P>Überprüfe <A HREF="http://www.iki.fi/too/tvout-voodoo3-3000-xfree">diese URL</A>.</P>
|
|
|
|
</BODY>
|
|
</HTML>
|