2.2.1. Video Ausgabe-Geräte

Allgemein:

x11X11 mit optionaler SHM Erweiterung
xvX11, unter Verwendung oder Overlays mit der Xvideo Erweiterung (hardwarehäßiges YUV & Scaling)
glOpenGL Renderer, funktioniert nur mit:
  • allen Karten mit Utah-GLX
  • Matrox Karten mit X/DRI >=4.0.3
  • Radeon mit X/DRI CVS
dgaX11 DGA Erweiterung
fbdevAusgabe zu allgemeinen Framebuffern
svgaAusgabe zu SVGAlib
sdl   1.1.7: unterstützt Software-Scaling
  1.1.8: unterstützt Xvideo (hardaremäßiges Scaling/Vollbild)
  1.2.0: unterstützt AAlib (-vo aa ist sehr empfohlen, siehe unten!)
ggivergleichbar mit SDL
aaTextmodus-Rendering mit AAlib

Kartenspezifisch:

  mga  Matrox G200/G400 Hardware-YUV-Overlay via mga_vid-Device
xmgaMatrox G200/G400 Overlay (mga_vid) in X11 Fenster
(Xv Emulation auf X 3.3.x !)
syncfbMatrox G400 YUV Unterstützung auf Framebuffer (verwende besser mga/xmga)
3dfxVoodoo 3 / Banshee Hardware YUV (/dev/3dfx) Unterstützung (noch nicht getestet, möglicherweise keine Funktion)
tdfxfbVoodoo 3 / Banshee Hardware YUV auf tdfx-Framebuffer (funkioniert!)

Speziell:

  png  PNG-Datei Ausgabe (-z Parameter um die Kompression einzustellen)
pgmPGM-Datei Ausgabe (für Testzwecke oder ffmpeg-Encoding)
md5MD5sum Ausgabe (für MPEG Tests)
odivxOpenDivX AVI-Datei Ausgabe (-br um die Bitrate einzustellen) (OHNE SOUND)
nullNull Ausgabe (für Geschwindigkeitsmessungen/Benchmark)

HINWEIS: prüfe die folgende Untersektion für Details und Voraussetzungen!

2.2.1.1. MTRR

Es ist SEHR zu empfehlen, dass man die MTRR Register aktiviert, denn sie können eine großen Geschwindigkeits-Schub bringen.

Mache ein 'cat /proc/mtrr' :

--($:~)-- cat /proc/mtrr
reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

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.

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:

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:

  1 MB0x100000
2 MB0x200000
4 MB0x400000
8 MB0x800000
16 MB0x1000000
32 MB0x2000000

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:

  echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr

Nicht alle CPUs unterstützen MTRRs. Zum Beispiel ältere K6-2's [etwas bei 266Mhz, stepping 0] unterstützen kein MTRR, aber stepping 12 CPUs tuen es ('cat /proc/cpuinfo' um es zu überprüfen').

2.2.1.2. Xv

Mit XFree86 4.0.2 oder neurer kannst du die Hardware-YUV-Routinen deiner Karte verwenden, mit Hilfe der XVideo Erweiterung. Das ist, was die Option '-vo xv' verwendet. Das es funktioniert, prüfe folgendes:

2.2.1.2.1. 3dfx Karten

Ältere 3dfx Treiber sind bekannt, dass sie Probleme mit der XVideo Beschleu- nigung machen, der Treiber unterstütze weder YUY2 noch YV12. Prüfe ob du XFree86 Version 4.1.0 oder neuer hast, da funktioniert es. Alternativ kannst auch auch DRI cvs verwenden. Wenn du eigenartige Effekte beim Verwenden von -vo xv siehst, versuche SDL (es unterstützt auch XVideo) und schaue ob es funkioniert. Siehe SDL Sektion für Details.

Oder versuche den NEUEN -vo tdfxfb -Treiber! Siehe Sektion 2.2.1.9!

2.2.1.2.2. S3 Karten

S3 Savage3Ds sollten gut funktionieren, aber für Savage4 verwende XFree86 Version 4.0.3 oder neuer (bei Bildproblemen versuche 16bpp). Und für S3 Virge.. verkaufe sie.

2.2.1.2.3. nVidia Karten

nVidia ist keine gute Wahl für Linux.. 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.

2.2.1.2.4. ATI Karten

  • Beim GATOS Treiber (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 irgentwie VSYNC auszu- schalten, oder setze die Refreshrate auf n*(fps des Films) Hz.
  • Radeon VE - zur Zeit hat nur die XFree86 CVS-Versionen einen Treiber für diese Karte, Version 4.1.0 hat keinen. Keine TV-Out Unterstützung.
  • 2.2.1.2.5. NeoMagic Karten

    Diese Karte kann in vielen Laptops gefunden werden. Unter Linux ist deren Höchstleitung leider nur DGA. Unglücklichweise funktioniert der DGA-Treiber in X 4.1.0 nicht, also musst du auf 4.2.0 warten oder den modifizierten Treiber für 4.0.3 oder 4.1.0 von hier downloaden: http://www.mplayerhq.hu/MPlayer/incoming/NeoMagic-driver (hier findet man auch einen Patch für die Treiber-Sourcen).
    Treiber wurden bereitgestellet von Tomek Jarzynka.

    2.2.1.3. DGA

    2.2.1.3.1. Zusammenfassung

    Dieses Dokument versucht mit einigen Worten was DGA allgemein ist und was der DGA Video-Ausgabetreiber für MPlayer alles machen kann (und was es nicht kann).

    2.2.1.3.2. Was ist DGA

    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 zu ändern. Technisch gesprochen passiert dies durch verschieben des Framebuffer-Speichers in den Speicherbereich des Prozesses. Dies wird vom Kernel nur erlaubt, wenn du Superuser-Rechter besitzt. Du kannst diese bekommen duch Einloggen als Rooot oder durch das Setzen des Suid-Bits für das MPlayer-Programm (NICHT empfohlen!).

    Es gibt zwei Versionen von DGA: DGA1 wird verwendet von XFree 3.x.x und DGA2 wurde zu XFree 4.0.1 entwickelt.

    DGA1 unterstützt nur den direkten Framebuffer-Zugriff, wie oben beschrieben. Für das Andern der Farbtiefe eines Video-Signals muss man auf die XVidMode Er- weiterung zugeifen.

    DGA2 arbeitet mit dem Feature der XVidMode Erweiterung zusammen, und erlaubt auch das Ändern der Farbtiefe. So kannst du dem XServer allgemein auf einer 32 Bit Auflösung betreiben und die Farbtiefe damit auf 15 Bits verringern.

    Wie auch immer, DGA hat auch einige Nachteile. Es scheint, als ob es irgendwie abhängig ist vom Grafik-Chip und an der Implementation des XServer's Video- Treiber, welcher der Chip kontrolliert. Also funktioniert es nicht auf jedem System ...

    2.2.1.3.3. Installation von DGA Unterstützung für MPlayer

    Als erstes prüfe, dass X die DGA Erweiterung läd, siehe in /var/log/XFree86.0.log:

        (II) Loading extension XFree86-DGA

    Siehe, XFree86 4.0.x oder neuer ist SEHR EMPFOHLEN! MPlayers DGA-Treiber wird automatisch von ./configure erkannt, oder du kannst es erzwingen mit --enable-dga.

    Wenn der Treiber nicht zu einer kleineren Auflösung wechseln kann, versuche mit den Befehlen -vm (nur mit X 3.3.x), -fs, -bpp, -zoom um ein Video-Modus zu finden, dass das Video passt. Es gibt noch keinen Konverter.. :(

    Werde ROOT. DGA braucht Root-Rechte um direkt in den Video-Speicher zu schreiben. Wenn du es auch also Anwender starten willst, installiert bei MPlayer die SUID root:

        chown root /usr/local/bin/mplayer
        chmod 750 /usr/local/bin/mplayer
        chmod +s /usr/local/bin/mplayer

    Nun funktioniert es auch als einfacher Anwender.

    !!!! ABER SEIT GEWARNT !!!!
    Dies ist ein GROSSES Sicherheitsrisiko! Mache das nie auf einem Server oder einem Computer, der von mehreren Personen verwendet wird, da sie durch das SUID Root von MPlayer Root-Rechte erhalten könnten.
    !!!! DU WURDEST ALSO GEWARNT ... !!!!

    Verwende nun die '-vo dga' Option, und es sollte funktionieren! (hoffe es:) Du solltest auch probieren, ob die '-vo sdl:dga' Option bei die funktioniert! Es ist um einiges schneller!!!

    2.2.1.3.4. Änderung der Auflösung

    Der DGA Treiber erlaubt das Ändern der Auflösung des Ausgabe-Signals. Es er- spart die Verwendung von (langsamen) softwaremäßigen 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 veraussetzen), aber der XServer erlaubt nur das Änderen in eine Auflösung, die in /etc/X11/XF86Config (/etc/X11/XF86Config-4 für XFree 4.0.X) vordefiniert. Dies sind so genannte "Modelines" und sind von den Fähigkeiten deiner Video- Hardware abhängig. Der XServer scannt die Konfigurationsdatei beim Starten und schaltet die Modelines aus, die nicht zu der Hardware passen. Du kannst die funktionierenden Modelines mithilfe der X11-Logdatei herausfinden. Sie kann funden werden unter: /var/log/XFree86.0.log.

    Siehe Anhang A für einige Beispiele für Modeline-Einstellungen.

    2.2.1.3.5. DGA & MPlayer

    DGA wird in zwei Plätzen von MPlayer verwendet: Der SDL Treiber kann davon Verwendung nehmen (-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 MPlayer funktioniert.

    2.2.1.3.6. Features des DGA-Treibers

    Der DGA Treiber wird wird duch die -vo dga Option auf der Komandozeile aus- gewä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ög- lich durch Ändern des Videomodus, dies erspartet eine zusätzliche Verwendung der CPU um das Bild zu vergrößern/verkleinern. Wenn du den Modus nicht magst, den der Treiber gewählt hat, kannst du das Modus das am ehestens passt möglicherweise mit -x und -y auswählen. 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. Unter DGA2 kannst du auch die Farbtiefe mit der -bpp Option einstellen. Gültige Farbtiefen sind 15, 16, 24 und 32. Es hängt von deiner Hardware ab, ob diese Tiefen grundlegend unterstützt werden oder ob sie (was möglichweise langsam ist) konventiert wenden müssen.

    Wenn du Genug glück hast und genug Offscreen-Speicher übrig ist und eine ganzes Bild darin zu speichern, wird der DGA Treiber "Doublebuffering" verwen- den, was ein flüssigeres Bild ermöglicht. Es wird der sagen, ob Doublebuffering eingeschaltet ist oder nicht.

    Doublebuffering bedeutet, dass der nächste Frame des Videos bereits in den Offscreen-Speicher während der akutelle Frame angezeigt wird. Wenn der nächste Wenn der nächster Frame fertig ist, wird dem Grafik-Chip nur die Position im Speicher mitgeteilet, wo sich der nächste Frame befindet und die Grafik ver- verwendet das Bild einfach von dort. In der Zwischenzeit wird der anderer Buf- fer wieder mit Video-Daten aufgefüllt.

    Doublebuffering kann man mit der Option -double ein- und mit der Option -nodouble ausschalten. Zur Zeit ist die Standard-Option den zusätzlichen Buffer ausschaltet. Wenn der DGA-Treiber verwendet wird, funktioniert das Onscreen Display (OSD) nur mit eingeschaltetem Doublebuffering. Wie auch immer, das ein- schalter von Doublebuffering kann ein 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.

    2.2.1.3.7. Geschwindigkeit

    Allgemein gesprochen sollte der DGA-Framebuffer Zugriff mindestens so schnell sein wie Verwendung des X11-Treibers mit den zusätzlichen Vorteils des möglichen Vollbildes. Die Prozentuelle Geschwindigkeitsangaben von MPlayer sollten aber mit Vorsicht gesehen werden, denn zum Beispiel wird beim X11-Trei- ber die Zeit, die vom X-Server benötigt wird um das Bild aufzubauen, nicht ein- gerechnet. Logge dich über ein Terminal über eine serielle Verbindung in deine Box ein und starte MPlayer damit du wirklich siehst, was los ist ...

    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.

    Wenn du ein langsames system hat, verwende lieber 15 oder 16bit Farbtiefen, denn es verwendet nur halbe Speicherbandbreiten im Vergleich mit 32 bit.

    Die Verwendung von 24bit ist eine gute Idee, wenn deine Karte 32 Bit Tiefe grundlegend unterstützt, denn es sind 25% weniger Daten im vergleich zu einem 32/32 Modus.

    Ich habe einige AVI-Dateien schon auf einem Pentium MMX 266 wiedergeben wur- den. AMD K6-2 CPUs funktioniere vielleicht ab 400 MHZ oder mehr.

    2.2.1.3.8. Bekannte Probleme

    Nun, nach einigen Entwicklern von XFree zur Folge ist DGA immer noch ein wildes Tier. Sie sagen, es ist besser es nicht zu verwenden. Die Implemetation ist noch nicht immer fehlerfrei mit jedem Chipset-Treiber von XFree.

    2.2.1.3.9. Zukünftige Arbeiten

    2.2.1.3.A. Einige Modus-Einstellungen

      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
    

    Diese Einstellungen funktionen sehr gut mit meinem Riva128 Chip unter ver- wendung des nv.o XServer Treibermodules.

    2.2.1.3.B. Fehlerberichte

    Wenn du Probleme mt dem DGA-Treibers hat, sende mit einen Fehlerbericht (e-Mail Adresse siehe untern). Bitte starte MPlayer mit der -v Option und sende alle Zeilen in dem Fehlerbericht die mit vo_dga: beginnen

    Bitte schreibe auch, welche Version von X11 du verwendest, die Grafikkarte und die Art von CPU. Das X11-Treiber Module (definiert in XF86-Config) hilft auch möglicherweise. Danke!

    Acki (acki@acki-netz.de, www.acki-netz.de)

    2.2.1.4. SDL

    Hier sind einige Hinweise über SDL-Ausgabe in MPlayer.

    Es gibt einige Commandline-Optionen für SDL:

      -vo sdl:name   wählt den zu verwendenden Video Treiber aus (z.B. aalib, dga, x11)
    -ao sdl:namewählt den zu verwendenden Audio Treiber aus (z.B. dsp, esd, arts)
    -noxvschaltet die Xvideo Hardwarebeschleunigung aus
    -forcexvversucht die Xvideo-Beschleunigung zu erzwingen

    SDL-Tasten:

    Fwählt Vollbild/Fenster Modus
    Cverfügbare Zyklen beim Vollbild-Modus
    W/Szusammenhängend mit * und / (Mixer-Kontrolle)

    BEKANNTE FEHLER:

    2.2.1.5. SVGAlib

    Wenn du kein X hast, kannst du SVGAlib verwenden! Sie dir sicher, dass du nicht die -fs Option verwendest, seit es Software-Scaling unterstützt und es nun sehr LANGSAM ist, ausser wenn du eine echt schnelle CPU (und/oder MTRR?) hast. :(

    Natürlich musst du die svgalib und das Development-Paket installieren, damit MPlayer seinen SVGAlib Treiber einbaut (wird automatisch erkannt, kann aber erzwungen werden) und vergiss nicht die /etc/vga/libvga.config passend zu deiner Karte & Monitor zu editieren.

    2.2.1.6. Framebuffer Ausgabe (FBdev)

    Ob die FBdev Unterstützung eingebaut wird 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.. !

    Wenn deine Karte den VBE 2.0 Standard (ältere ISA/PCI Karten wie S3 Trio64) nicht unterstützt, nur VBE 1.2 (oder älter?) : Nun, VESAfb ist auch verfügbar, aber du musst den SciTech Display Doctor (genannt UniVBE) vor Linux laden. Verwenden eine DOS-Startdiskette oder was auch immer. Und vergiss nicht deinen UniVBE zu registrieren ;))

    Bei der FBdev Ausgabe können einige zusätzliche Parameter verwendet werden:

      -fb   spezifiziert den zu verwendenden Framebuffer (/dev/fd0)
    -fbmodeModus-Name der verwendet werden soll (siehe /etc/fb.modes)
    -fbmodeconfigKonfiguratiosdatei für Modus-Namen (standard ist /etc/fb.modes)
    -monitor_hfreqWICHTIGE Werte, siehe example.conf
    -monitor_vfreq
    -monitor_dotclock

    Wenn du zu einem speziellen Modus welchsel willst, verwende

        mplayer -vm -fbmode (NamedesModus) Dateiname

    HINWEIS: FBdev Video-Modus-Änderungen _funktionieren nicht_ mit dem VESA Framebuffer, also frage nicht danach, wenn ist keine MPlayer Beschrän- kung ist.

    2.2.1.7. Matrox Framebuffer (mga_vid)

    Diese Abschnitt ist über Matrox G200/G400/G450/G550 BES (Back-End Scaler) Unter- stützung, dem mga_vid Kernel-Treiber. Ist wird aktiv entwickelt von mir (A'rpi), und es hat Hardware-VSYNC-Unterstützung mit dreifach-Buffering. Es funktiert auf beidem, Konsole oder auch unter X.

    Um es zu verwenden, kompiliere als erstes mga_vid.o:

        cd drivers
        make

    Dann erstelle das /dev/mga_vid Gerät:

        mknod /dev/mga_vid c 178 0

    und laden den Treiber mit

        insmod mga_vid.o

    Du sollst die erkannte Videospeichergröße prüfen, dazu verwende den 'dmesg' Befehl. Wenn es nicht stimmt, verwende die mga_ram_size Option (rmmod mga_vid als erstes) und gib die Speichergröße der Karte in MB an:

        insmod mga_vid.o mga_ram_size=16

    Um den Treiber automatisch geladen/ungeladen zu machen, wenn er braucht wird, füge die folgende Zeile an Ende der /etc/modules.conf Datei ein:

        alias char-major-178 mga_vid

    Dann starte

        depmod -a

    Jetzt musst du MPlayer (neu)kompilieren, ./configure wird automatisch /dev/mga_vid erkennen und den 'mga' Treiber einbauen. Die Verwendung mit MPlayer wird mit '-vo mga' wenn man eine matroxfb Konsole hat oder mit '-vo xmga' unter XFree86 3.x.x oder 4.x.x realisiert.

    Der mga_vid Treiber arbeitet nun auch mit dem Xv zusammen.

    2.2.1.8. SiS 6326 Framebuffer (sis_vid)

    SiS 6326 YUV Framebuffer Treiber -> sis_vid Kerneltreiber

    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.

    2.2.1.9. 3dfx YUV Unterstützung (tdfxfb)

    Dieser Treiber verwendet den Kernel-tdfx Framebuffer-Treiber um Filme mit YUV-Beschleunigung zu spielen. Du brauchst einen Kernel mit tdfxfb Support und rekompiliere MPlayer mit ./configure --enable-tdfxfb

    2.2.1.10. OpenGL Ausgabe

    MPlayer unterstützt die Ausgabe von Videos über OpenGL. Unglück- licherweise unterstützten nicht alle Treiber diese Fähigkeit. Zum Beispiel haben es allen Karte mit Utah-GLX Treibern Unterstützung (für XFree86 3.3.6). Siehe http://utah-glx.sourceforge.net für Details für die Installation.

    XFree86(DRI) >= 4.0.3 unterstützt nur Matrox und Radeon Karden. Siehe http://dri.sourceforge.net für Downloads und Installtionsanweisungen.

    2.2.1.11. AAlib - text mode displaying

    AAlib ist eine Library für die Anzeige im grafischen Modus, unter Ver- wendung des ASCII Renderer. Es gibt EINE MENGE von Programmen die es bereits unterstützen, wie Doom, Quake, usw. MPlayer enthält einen sehr gut brauchbaren Treiber dafür. Wenn ./configure erkennt, dass aalib installiert ist, wird der aalib libvo Treiber eingebaut.

    Du kannst einige Tasten verwenden im AA Fenster, um Rendering-Optionen zu ändern:

      1  verringert Kontrast
    2erhöht Kontrast
    3verringert Schärfe
    4erhöht Schärft
    5schaltet schnelles Rendern ein/aus
    6setzt das Farbmischungs-Modus (keine, error dithering, floyd steinberg)
    7Invertiere Bild
    awelchselt zwischen AA und MPlayer Kontrolle)

    Die folgenden Kommandozeilen-Optionen können verwendet werden:

    -aaosdcolor=Vändert OSD-Farbe
    -aasubcolor=Vändert Untertitel-Farbe

    wobei V sein kann: (0/Normal, 1/Dunkel, 2/Fett, 3/Fettschift, 4/Rückwärts, 5/Spezial)

    AAlib selbst unterstützt eine größe Summe von Optionen. Hier einige wichtige:

    -aadriversetzt erforderlichen AA Treiber (X11, curses, linux)
    -aaextendedverwende alle 256 Zeichen
    -aaeightverwendet acht-bit ASCII
    -aahelpgibt alle AAlib-Optionen aus

    HINWEIS: Das Rendering ist sehr CPU-Intersiv, besonders bei AA-on-X (AAlib Verwendung unter X) und brauch am wenigsten CPU-Leistung auf einer standard, nicht-Framebuffer Konsole. Verwende SVGATextMode im ein großes Textmodus ein- zustellen und geniese es! (Zweikopf (Dual Head) Hercules Karten rock :)) (kann vielleicht irgendjemand bdev erweiteren, um Konversion/Farbmischung bei hgafb? Wäre nett :)

    Verwende die -framedrop Option wenn dein Computer nicht schnell genug ist, um alle Frames zu Verarbeiten!

    Beim Abspielen auf einem Terminal wirst du eine bessere Geschwindigkeit und Qualität bekommen, wenn du den Linux-Treiber, und nicht den Curses (-aadriver linux) 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 http://aa-project.sourceforge.net/tune/ für zusätzliche Tuning-Möglichkeiten.

    2.2.1.A. TV-Out Unterstützung

    2.2.1.A.1. Matrox Karten

    Ich würde gerne MPlayer mit dem selben Feature sehen, wie auf meiner Windows-Box. Wenn ich ein Video unter Windoes starte (als ein Fenster oder in Vollbild) wird das Bild auch über TV-Out wiedergegeben und ich kann es auch mit Vollbild auf meinem Fernseher sehen. Ich liebe diese Feature aber wir ich war verwundet, wie schwer es sich einbauen ließe.

    Dies ist eine Treiberbeschränkung. BES (Back-End Scaler, dies ist der Overlay-Erzeuger und die YUV Scaling-Engine für G200/G400/G450/G550 Karte) funitniert nur mit CRTC1. Normalerweise wird CRTC1 (Textmodus, jeder Farbtiefe und BES) auf den Kopf1 (HEAD1) geroutet, und CRTC2 (nur 16/32bpp Grafiken) wird auf den HEAD2 (TV-out) geroutet.

    Unter Linux hast du 2 Möglichkeiten, dass der TV-Out funktioniert:

    Folge diesen Anweisungen:

    Ja, es ist zur Zeit noch ein "hack". Aber ich warte, dass das Marvel-Projekt fertig gestellt wurde. Es wird eine richtigen TV-Out Treiber enhalten, hoffe ich.

    Zur Zeit ist mein Problem das BES nur mit CRTC1 funktioniert. Also wird das Bild immer auf dem Kopf, der auf CRTC1 (normalerweise der Monitor) geroutet ist, darum muss man auch die CRTCs vertauschen, aber dabei wird deine Konsole ein Framebuffer (CRTC2 kann kein Textmode) und ein bisschen schnell (keine Beschleunigung). :(

    Irgendwie bekomme ich nur eine Schwarz-Weiss Ausgabe am Fernseher ... Hast du vielleicht einen NTSC Fernseher? Oder hast du vielleicht nicht einen der TV-* Scripts laufen lassen?

    2.2.1.A.2. ATI Karten

    Einige Worte über ATI's TV-Out:
    Zur Zeit will ATI keine Unterstützt für TV-Out Chipsets unter Linux. Hier ist die offzielle Antwort von ATI Inc.:


    > Hallo!
    >
    > Auf eurer Seite steht, dass ihr Linux-Entwickler unterstützt.
    > Zur Zeit beteilige ich mich am MPlayer Projekt (www.mplayerhq.hu).
    > Ich bin interessiert am Einschalten des TV-Outs bei Radeon VE-Chips während
    > Video-Wiedergabe. Ich würde dieses Feature dem radeonfb-Treiber hinzufügen
    > (kann man im CVS-Tree vom MPlayer-Projekt unter main/drivers/radeon finden).
    > Ich hab eine Chance eine offizielle Dokumentation zu erhalten?

    Wir können aufgrund des Macrovision-Konzern keine Dokumente im Bezug auf TV-Out
    hergeben. Auf das MPEG2-Decoding ist etwas das wir MÖGLICHWEISE in der Zukunft
    erwägen, aber nicht zur Zeit. Dies ist ebenfall aufgrund einen Eigentümer und einer
    3. Partei.

    Bemitleidenswert, nicht?

    Q:Was ist Macrovision?
    A:Es ist ein Kopierschutz-Mechanismus.

    Dies bedeutet, wenn sie die TV-Out anbelangenden Informationen veröffentlichen, dass Hacker es ermöglicht werden könnte, den Kopierschutz ihrer Chips zu umgehen. Deshalb gibt es keine Möglichkeit den TV-Out bei ATI-Karten zu aktivieren.

    Wie ist der Status von ATI TV-Out-Chips unter Linux:

  • ATI Mach64 verwendet ImpacTV, welcher von Gatos unterstützt wird.
  • ASIC Radeon VIVO verwendet Rage Theatre, welcher von Gatos unterstützt wird.
  • Radeon VE und Rage PRO LT verwenden ImpacTV2+, welcher unter Linux nicht unterstützt wird.

    Von anderen Seite gesehen können wir eine Change haben den TV-Out Support durch die VESA-Treiber auf x86 Systemen zu aktivieren, habe seit Linux auch vm86 syscall beschränkt hat, ist praktisch unerreichbar. Nun bildet ein Zugriff auf einen IO-Raum eine Ausnahme und der Treiber versucht VESA-Befehle zu emulieren anstatt die als normale int_10h zu verwenden.