### 2.3.1 Urządzenia wyjścia Wideo

#### 2.3.1.1 Ustawianie MTRR

Jest bardzo sugerowane, by sprawdzić, czy rejestry MTRR są ustawione właściwie, gdyż mogą one dużo zwiększyć wydajność.

Wykonaj '`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`

To prawda, pokazuje mojego Matrox G400 z 16Mb pamięci. Wykonałem to z XFree 4.x.x , z ustawionymi automatycznie rejestrami MTRR.

Jeśli nic nie działa, powinienieś wykonać to ręcznie. Najpierw musisz odnaleść adres bazowy. Możesz to zrobić na 3 sposoby:

- ze startowego komunikatu X11, na przykład:

  `(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
  (--) SVGA: Linear framebuffer at 0xD8000000`

- z /proc/pci (użyj polecenia lspci -v):

  `01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525` `Memory at d8000000 (32-bit, prefetchable)`

- z komunikatu sterownika jądra mga_vid (użyj `dmesg`):

  `mga_mem_base = d8000000`

Następnie wyszukaj rozmiar pamięci. Jest to bardzo łatwe, wystarczy, że przekonwertujesz rozmiar pamięci wideo do liczby heksadecymalnej, lub po prostu użyjesz poniższej tabeli:

| 1 MB |  | 0x100000
| 2 MB |  | 0x200000
| 4 MB |  | 0x400000
| 8 MB |  | 0x800000
| 16 MB |  | 0x1000000
| 32 MB |  | 0x2000000

Znasz już adres bazowy i rozmiar pamięci, więc zabierz się do ustawień! Na przykład, dla powyższej karty Matrox (bazowy=0xd8000000) z 32MB ramu (rozmiar=0x2000000) wystarczy, że uruchomisz:

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

Nie wszystkie procesory wspierają MTRRy. Na przykład starsze K6-2 [około 266Mhz, stepping 0] nie wspierają MTRR, ale stepping 12 już tak ('`cat /proc/cpuinfo`' by to sprawdzić').

#### 2.3.1.2 Wyjścia wideo dla tradycyjnych kary graficznych

#### 2.3.1.2.1 Xv

Pod XFree86 4.0.2, lub nowszymi, możesz używać sprzętowej procedury YUV twojej karty używając rozszerzenia XVideo. Używa tego opcja '-vo xv'. Także sterownik ten wspiera modyfikowanie jasności/kontrastu/hue/itp (chyba, że używasz starego, wolnego kodeka DirectShow DivX, który wspiera to wszędzie), zobacz stronę manuala.

Żeby wykonać tą czynność, powinienieś sprawdzić następujące rzeczy:

- Czy używasz XFree86 4.0.2 lub nowszego (poprzednie wersje nie zawierają XVideo)
- Czy twoja karta obecnie wspiera akcelerację sprzętową (nowoczesne karty tak)
- XSerwer ładuje rozszerzenie XVideo, jest to coś w stylu:

  `(II) Loading extension XVideo`

  w /var/log/XFree86.0.log

  INFORMACJA: to ładuje tylko rozszerzenia XFree86. W poprawnej instalacji zawsze to ładuje, ale nie oznacza, że wsparcie XVideo _karty_ jest załadowane!

- Twoja karta posiada wsparcie Xv pod Linuksem. By to sprawdzić, spróbuj 'xvinfo', jest to partia dystrybucjii XFree86. Powinno wyświetlić długi tekst, podobny do tego :

      	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)
      	(...itd...)

  Musi wspierać pakiet YUY2 i format płaskich pikseli YV12, by mógłbyć używany z MPlayerem

- I na końcu sprawdź, czy został skompilowany z obsługą 'xv'. ./configure wyświetli to.

#### 2.3.1.2.1.1 Karty 3dfx

Starsze karty 3dfx znane były z problemów z akceleracją XVideo, nie wspierały obydwu YUY2 lub YV12. Sprawdź, czy posiadasz XFree86 w wersjii 4.2.0 lub nowszej, które pracują dobrze z YV12 i YUY2. Poprzednie wersje, włączając 4.1.0 wywalały się przy YV12! Jeśli twoje doznania dają dziwne efekty przy użytku -vo xv, spróbuj SDL (posiada także XVideo) i zobacz, jeśli pomaga. Sprawdź sekcję SDLpo szczegóły.

LUB, wypróbuj nowego sterownika -vo tdfxfb! Zobacz sekcję tdfxfb.

#### 2.3.1.2.1.2 Karty S3

S3 Savage3D powinny pracować dobrze, ale dla Savage4, użyj XFree86 w wersji 4.0.3 lub nowszej (w przypadku problemów z obrazem spróbuj 16bpp). Również dla S3 Virge... istnieje wsparcie dla xv, lecz karta sama w sobie jest bardzo wolna, lepiej będzie więc jak ją sprzedaż.

INFORMACJA: nie jest obecnie jasne, które modele Savage nie posiadają wsparcia YV12 i konwertacji przez sterownik (wolne). Jeśli podejrzeważ o to twoją kartę, pobierz najnowsze sterowniki lub uprzejmie spytaj na liście mailingowej mplayer-users o sterownik włączający MMX/3DNow.

#### 2.3.1.2.1.3 Karty nVidia

nVidia nie jest najlepszym wyborem dla Linuksa (według NVidii, nie jest to prawdą).. Będziesz potrzebował binarnych, zamkniętych (bez kodu źródłowego) sterowników nVidia, dostępnych na stronie nVidii. Standardowe sterowniki XFree86 nie wspierają XVideo dla tych kard, należnych do zamkniętego kodu/specyfikacji nVidii.

O ile wiem ostatnie sterowniki XFree86 zawierają wsparcie XVideo dla Geforce 2 i 3.

Karty Riva128 nie posiadają wsparcia XVideo również ze sterownikami nvidia :( Skargi do NVidii.

#### 2.3.1.2.1.4 Karty ATI

- Sterowniki GATOS (których powninieneś używać, chyba że masz Rage128 lub Radeona) posiadają domyślnie włączone VSYNC. Oznacza to, że prędkość dekodowania (!) jest zsynchronizowana z tempem odświeżania monitora. Jeśli odtwarzanie zdaje się być wolne, spróbuj wyłączyć w jakiś sposób VSYNC, albo ustaw tempo odświeżania do n*(ilość fpsów w filmie) Hz.
- Radeon VE - obecnie tylko XFree86 CVS posiada sterowniki do tych kart, wersja 4.1.0 nie. I nie ma wsparcia dla wyjścia TV. Oczywiście za pomocą MPlayera możesz uzyskać zakcelerowane wyświetlanie, z/lub bez wyjścia TV. Nie są potrzebne żadne biblioteki lub X. Czytaj sekcję VIDIX

#### 2.3.1.2.1.5 Karty NeoMagic

Karty te mogą być znalezione w dużej ilości laptopów. Niestety sterowniki w X 4.2.0 nie potrafią wykonać Xv, ale mamy dla ciebie zmodyfikowane sterowniki zdolne do Xv. Ściągnij stąd. Sterownik dostarczony został przez Stefana Seyfrieda.

By udostępnić odtwarzanie DVD zadowalająco, zmień XF86Config tak jak niżej:

Section "Device"
[...]
Driver "neomagic"
Option "OverlayMem" "829440"
[...]
EndSection

#### 2.3.1.2.1.6 Karty Trident

Jeśli chcesz używać Xv z kartą Trident, bądź pewnien, że nie pracuje ona z 4.1.0, zainstaluj XFree 4.2.0. W 4.2.0 dodano wsparcie dla pełnoekranowego xv wspieranego przez kartę Cyberblade XP.

#### 2.3.1.2.1.7 Karty Kyro/PowerVR

Jeśli chcesz używać Xv z kartami bazyjącymi na Kyro (na przykład Hercules Prophet 4000XT), powninieneś pobrać sterowniki ze strony PowerVR.

#### 2.3.1.2.2 DGA

#### WSTĘP

Dokumant ten ma na celu wyjaśnić w kilku słowach, czym jest ogólnie DGA i co sterowniki wyjścia wideo DGA mogą zrobić dla mplayera (i czego nie mogą).

#### CZYM JEST DGA

DGA jest skrótem od Direct Graphics Access (bezpośredni dostęp graficzny) i oznacza to dla programu obejście X-Serwera i bezpośrednią modyfikację pamięci framebuffera. Technicznie rzecz mówiąc, dzieje się to przez mapowanie pamięci framebuffera w zakresie pamięci twojego procesu. Zezwalane jest to przez jądro tylko jeśli posiadasz uprawnienia superużytkownika. Możesz je otrzymać przez zalogowanie się jako roota, albo ustawiając bit suida na pliku wykonalnym mplayera (nie sugerowane).

Istnieją dwie wersje DGA: DGA1 używane jest przez XFree 3.x.x i DGA2 wprowadzone z 4.0.1.

DGA1 dostarcza tylo bezpośredni dostęp framebuffera, jak opisano wyżej. By przełączać rozdzielczość sygnału wideo, musisz polegać na rozszerzeniu VidMode.

DGA2 łączy cechy rozszerzenia XVidMode, a także zezwala na przełączanie głębi wyświetlania. Możesz więc, choć podstawowo uruchamiasz XSerwer w głębi 32-bitowej, przełączyć do głębi 15-bitowej i na odwrót.

DGA posiada jednak pewne wady. Jak widac jest trochę zależny od chipu graficznego, jakiego używasz i od implementacji sterowników wideo XServera, które sterują chipem. Więc nie działa on na wszystkich systemach

#### INSTALACJA WSPARCIA DGA DLA MPLAYERA

Najpierw sprawdź, czy rozszerzenie DGA zostało załadowane przez serwer X, zajrzyj do /var/log/XFree86.0.log:

`(II) Loading extension XFree86-DGA`

Spójrz, XFree86 4.0.x lub wyższe jest BARDZO REKOMENDOWANE! Sterownik DGA MPlayera automatycznie wykrywana przez ./configure, ale możesz wymysić go przez --enable-dga

Jeśli sterownik nie może przełączyć do mniejszej rozdzielczości, eksperymantuj z przełączaniem -vm (tylko z X 3.3.x), -fs, -bpp, -zoom, by znaleść tryb wideo, który zgadza się z filmem. Nie ma obecnie prawidłowego konwertera :(

Zostań ROOTEM. DGA wymaga dostępu roota, by móc zapisywać bezpośrednio do pamięci. Jeśli zamierzasz uruchamiać go jako użytkownik, zainstaluj MPlayera z SUID roota:

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

Teraz będzie także pracował jako zwykły użytkownik.

> Ostrzeżenie: ryzyko bezpieczeństwa
> Jest to duże ryzyko bezpieczeństwa! Nigdy nie rób tego na serwerach, lub komputerach, które są dostępne dla więcej ludzi niż tylko ciebie, ponieważ mogą oni zdobyć prawa roota poprzez suida mplayera.

Teraz użyj opcji `-vo dga` i już (mam nadzieję :))! Powinieneś spróbować także opcji `-vo sdl:dga`. Jest trochę szybsza.

#### PRZEŁĄCZANIE ROZDZIELCZOŚCI

Sterowniki DGA pozwalają na przełączenia rozdzielczości sygnału wyjściowego. Unikają one wykonywania (wolnego) skalowania sprzętowego i w tym samym czasie zapewniają pełnoekranowy obraz. Idealne wyjście, jeśli chciałeś przełączyć do ścisłej rozdzielczości (wykluczając zaszczytny stosynek) danych wideo, ale XSerwer zezwala tylko na przełączanie do zdefiniowanych wcześniej rozdzielczości w `/etc/X11/XF86Config` (`/etc/X11/XF86Config-4` odnośnie XFree 4.0.X).

Tamte zdefiniowane są przez tak zwane linie trybów i zależne są od zdolności twojego sprzętu wideo. Serwer X skanuje ten plik konfiguracyjny podczas startu, i wyłącza linie trybów nieodpowiednie dla towjego sprzętu. Możesz sprawdzić, które tryby znajdują się w logach X11. Znajdziesz je w: `/var/log/XFree86.0.log`.

Wpisy te znane są z poprawnej pracy z chipem Riva128 chip, używającego modułów X serwera `nv.o`.

      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

#### DGA & MPLAYER

DGA jest używany w dwóch miejscach w MPlayerze: Sterowniki SDL mogą być użyte przez niego (-vo sdl:dga) w wewnątrz sterownika DGA (-vo dga). Rzeczy, które powiedziałem wyżej są zarówno prawdą; w następującej sekcji wyjaśnię Jak sterownik DGA pracuje z MPlayerem.

#### CECHY

Serownik DGA wywoływany jest przez określenie -vo dga z lini poleceń. Standardowe zachowanie przełącza do rozdzielczości zestawiając oryginalną rozdzielczość wideo najbliższą z możliwych. Rozmyślnie ignoruje przełączanie -vm i -fs (włączając przełączanie trybów wideo i pełny ekran) - zawsze próbuje pokryć tyle obszaru twojego ekranu, jak to możliwe, poprzez przełączanie trybu wideo, w ten sposób powstrzymuje użycie pojedynczego okresu twojego CPU do skalowania obrazu. Jeżeli nie lubisz trybu, jego wybór możesz wymysić przez określenie -x i -y. Dostarczaną przez opcję -v, sterownik DGA wyświetli, spośród wielu innych rzeczy, listę wszystkich wspieranych rozdzielczości przez twój obecny plik konfiguracyjny XF86-Config. Posiadając DGA2 możesz także wymusić użycie określonej głębi, używając do tego opcji -bpp. Poprawne głębie to 15, 16, 24 i 32. Zależy od twojego sprzętu, czy są one wspierane lub czy (możliwe, że wolne) konwersja została wykonana.

Jeśli jesteś na tyle szczęściażem, że posiadasz dosyć miejsca, by umieścić cały obraz, sterownik DGA użyje podwójnego buforowania, który daje bardziej wygładzone odtwarzanie filmu. Zostaniesz poinformowany, czy podówjne buforowanie jest włączone, czy też nie.

Podówjne buforowanie oznacza, że kiedy następna klatka twojego wideo jest przetwarzana gdzieś w pamięci, obecna klatka jest wyświatlana. Kidy następna klatka jest gotowa chip graficzny trzyma tylko miejsce w pamięci nowej klatki i po prostu dane przechodzą do wyświetlenia stamtąd. W tym czasie inny bufor w pamięci zostanie zajęty ponownie nowymi danymi wideo.

Podówjne buforowanie może zostać włączone porzez użycie opcji -double i wyłączone przez -nodouble. Obecnie domyślna opcja wyłącza podówjne buforowanie. Kiedy jest używany sterownik DGA, wyświatlanie na ekranie (ang. on screen display (OSD)) pracuje tytlko przy włączonym podówjnym buforowaniu. Jednak włączenie podówjnego buforowania może odbić się na spadku prędkości (na moim K6-II+ 525 używał dodatkowo 20% czasu CPU!) w zależności od implementacji DGA dla twojego sprzętu.

#### WYNIKI PRĘDKOŚCI

Ogólnie powiedziawszy, dostęp bufora klatki DGA powinno być przynajmniej szybkie używając starownika X11 w dodatku z korzyścią otrzymywaniu pełnoekranowego obrazu. Procentopwa wartość prędkości wyświatlana przez MPlayera, powinna być traktowana z ostrożnością, bo na przykład ze sterownikiem X11 nie zawierają one czasu użytego przez Serwer X wymagany do aktualnego przetwarzania. Sprawdź więc co dzieje się na twoim komputerze.

Ogólnie rzecz biorąc, osiągnięte przyśpieszenie poprzez użycie DGA wbrew 'normalnego' użycia X11, wysoko zależne jest do twojej karty graficznej oraz jak dobrze zoptymalizowane są moduły X-Serwera.

Używanie głębi 24 bitowej jest równie dobrym pomysłem jeśli twoje karta własnoręcznie ubsługuje 32 bitową głębię, ponieważ odstępuje ona 25% mniej danych w porównaniu do trybu 32/32.

Widziałem niektóre pliki avi odtwarzane już na Pentium MMX 266. Procesory AMD K6-2 mogły by pracować na 400 MHZ i wyższych.

#### ZNANE BŁĘDY

Jak przyznają niektórzy deweloperzy XFree, DGA jest jak nieokiełznana bestia. Mówią, że lepiej go nie używać. Jego implementacja nie zawsze jest idealna ze wszystkimi sterownikami dla XFree.

- z XFree 4.0.3 i nv.o pojawiają się błędy rozdzielczości w dziwnych kolorach.
- Sterowniki ATI wymagają przełączenia do trybu poprzedniego więcej niż raz po użytku DGA.
- Niektóre sterownikipo prostu zawodzą podczas powracania do normalnej rozdzielczości (użyj Ctrl-Alt-Keypad +, do przywrócenia ręcznego).
- Niektóre sterowniki wyświetlają dziwne kolory
- Niektóre sterowniki nie podają poprawnnie zużycia pamięci ich mapy w przestrzeni adresów procesu, przez co vo_dga nie może użyć podwójnego buforowania (SIS?)
- Niektóre steroiwniki zdaje się zawodzą przy zgłaszaniu pojedynczych poprawnych trybów. W tym przypadku sterownik DGA wykolei się powiadamiając cię o niedorzecznym trybie 100000x100000 lub podobnym...
- OSD działa tylko przy włączonym podwójnym buforowaniu (lub jego odpowiednikach).

#### 2.3.1.2.3 SDL

SDL (Simple Directmedia Layer) jest głownie interfejsem wideo/audio. Programy wykorzystujące go wiedzą tylko o SDLu, i nic z których sterownikach audio lub wideo aktulanlnie korzysta. Na przykład port Dooma używający SDL potrafi wystartować na svgalib, aalib, X, fbdev, i innych, musisz tylko mieć określone (na przykład) sterowniki wideo używane ze środowiskiem SDL_VIDEODRIVER. No to na tyle teorii

Z MPlayerem używamy sterowników X11 ze zdolnością sprzętowego skalowania dla kart/sterowników, które nie wspierają XVideo, aż stworzymy nasz własny (szybszy, wygodniejszy) skalownik sprzętowy. Także używamy jego wyjścia aalib, ale teraz posiadamy własny, który jest wygodniejszy. Jego tryb DGA był lepszy od maszego, do niedawna. Pobrać go natychmiast? :)

Pomaga także z niektórymi dziurawymi starownikami/kartami jeśli wideo jest skokowe (nie chodzi o problem z wolnym systemem), lub jeśli audio się opuźnia.

Wyjścia wideo SDL wspiera wyświetlanie napisów pod filmem, na czarnym pasku (jeśli ten występuje).

Istnieją różne opcje linii poleceń dla SDLa:

`-vo sdl:name`
  określa, który sterownik wideo sdl użyć (tj. aalib, dga, x11)
`-ao sdl:name`
  określa, który sterownik audio sdl użyć(ie. dsp, esd, arts)
`-noxv`
  wyłącza sprzętową akcelerację Xvideo
`-forcexv`
  próbuje wymusić akcelerację Xvideo

Klucze SDL:
| `F` |  | przełącza w tryb pełnoekranowy/okna
| `C` |  | obraca dostępnymi trybami pełnegoekranowymi
| `W/S` |  | mapowanie dla * i / (kontrola miksera)

#### ZNANE BŁĘDY

- Klucze wciśnięte pod sterownamiem konsoli sdl:aalib zapętlają się. Nie mogę tego zmienić. (testowane na SDL 1.2.1).
- NIE UŻYWAJ SLD z GUI! Nie będzie chciało z nim współpracować jak powinno.

#### 2.3.1.2.4 SVGAlib

#### INSTALACJA

Oczywiście będziesz musiał zainstalować svgalib i jego pakiety, żeby MPlayer zbudował jego sterownik SVGAlib (automatycznie wykryty, ale może być wymuszony), i nie zapomnij wyedytować /etc/vga/libvga.config w dostosowaniu do twojej karty & monitora.

#### INFORMACJE

Pamiętaj, żeby nie używać przełączenia -fs, odkąd przerzuca ono wywołanie sprzętowego skalera i jest obecnie wolne. Jeśli naprawdę tego potrzebujesz użyj opcji `-sws 4`, która powoduje pogorszenie jakości, jednak jest poniekąd szybsza.

#### WSPARCIE EGA (4BPP)

SVGAlib załącza EGAlib, a MPlayer posiada możliwość wyświetlania różnych filmów w 16 kolorach, tak jest zdalny do użytku w następujących ustawieniach:

- EGA card with EGA monitor: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp
- EGA card with CGA monitor: 320x200x4bpp, 640x200x4bpp

Bpp (bits per pixel - ilość bitów na piksel) wartość musi być ustawiona ręcznie na 4:
`-bpp 4`
Film prawdopodobnie będzie trzeba zmniejszyć, by dopasować się do trybu:
`-vf scale=640:350` lub
`-vf scale=320:200`
Do tego potrzebujemy szybkiego, ale w kiepskiej jakośći skalowania:
`-sws 4`
Może automatyczną korękcję stosunku potrzeba wyłączyć:
`-noaspect`

INFORMACJA: według moich eksperymantów, najlepasza jakość obrazu na ekranach EGA można osiągnąć poprzez średnie obniżenie jasności: `-vf eq=-20:0`. Często wymaga to także niskiego próbkowania audio na moim sprzęcie, ponieważ dźwięk popsuł się na 44kHz: `-srate 22050`.

Możesz włączyć OSD i napisy tylko z filtrem `expand`, zajrzyj do manuala, po dokładne parametry.

#### 2.3.1.2.5 Wyjście Framebuffera (FBdev)

Czy do zbudowania obiektu FBdev jest on automatycznie wykryty podczas ./configure. Czytaj dokomentację framebuffera w źródłach jądra (Documentation/fb/*) dla informacji.

Jeśli twoja karta nie wspiera standardu VBE 2.0 (starsze karty ISA/PCI, takie jak S3 Trio64), tylko VBE 1.2 (lub starszy?) : Więc, VESAfb pozostaje dostępnym, ale potrzebujesz załadować SciTech Display Doctor (wcześniej UniVBE) przed butowaniem Linuksa. Użyj dyskietek butujących DOSa lub czegokolwiek innego. I nie zapomnij zarejestrować swojego UniVBE ;))

Wyjście FBdev przyjmuje niektóre dodatkowe parametry ponad inne:

`-fb`
  określ, które urządzienie framebuffer ma zostać użyte(/dev/fb0)
`-fbmode`
  nazwa trybu, który ma być użyty (zgodnie z /etc/fb.modes)
`-fbmodeconfig`
  plik konfiguracyjny trybów (domyślnie /etc/fb.modes)
`-monitor_hfreq`
`-monitor_vfreq`
`-monitor_dotclock`
  Ważne wartości, zajrzyj do `example.conf`

Jeśli zamierzasz ustawić określony tryb, użyj

`mplayer -vm -fbmode (NazwaTrybu) nazwa_pliku`

- -vm jedynie wybierze najbardziej odpowiadający tryb z /etc/fb.modes. Może także zostać użyte razem z opcjami -x i -y. Opcja -flip wspierana jest tylko jeżeli format pikseli filmu pasuje do formatu plkseli trybu wideo. Zwróć uwagę na wartość bpp, sterownik fbdev próbuje użyć obecnej, a jeśli określiłeś opcję -bpp, tej.
- opcja -zoom nie jest wspierana (sprzętowe skalowanie jest wolne). Nie jest wspierana opcja -fs. Możesz użyć trybu 8bpp (lub niższego).
- możliwe, że chcesz wyłączyć kursor: `echo -e '\033[?25l'` lub `setterm -cursor off`
  i wygaszacz ekranu: `setterm -blank 0`
  Aby przywrócić kursor: `echo -e '\033[?25h'` lub `setterm -cursor on`

INFORMACJA: przełączanie trybów wideo FBdev _nie współpracuje_ z framebuffer VESA, i nie pytaj o niego, odkiedy nie jest to ograniczenie MPlayera.

#### 2.3.1.2.6 Framebuffer Matroksa (mga_vid)

Sekcja ta jest odnośnie wsparcia Mtrox G200/G400/G450/G550 BES (Back-End Scaler) sterowników jądra mga_vid. Jest one czynnie rozwijane przeze mnie (A'rpi), i posiada ono wsparcie sprzętowe VSYNC z potrójnym buforowaniem. Działa zarówno w konsoli z framebufferem i pod X.

INFORMACJA: Jest tak tylko na Linuksie! Na systemach nie-linuksowych (testowane na FreeBSD), możesz użyć wzamian VIDIX!

Instalacja:

1. Aby ich używać, musisz najpierw skompilować mga_vid.o:

   `cd drivers
   make`

2. Następnie stwórz urządzenie `/dev/mga_vid`:

   `mknod /dev/mga_vid c 178 0`

   i załaduj muduły za pomocą

   `insmod mga_vid.o`

3. Powinienieś zweryfikowac detekcję wielkości pamięci, używając polecenia `dmesg`. Jeśli jest błędna użyj opcji `mga_ram_size` (najpierw `rmmod mga_vid`), by określić rozmiar pamięci w MB:

   `insmod mga_vid.o mga_ram_size=16`

4. Aby utworzyć go automatycznie ładowanym/wyładowywanym kiedy potrzebujesz, najpierw dodaj następującą linię na końcu `/etc/modules.conf`:

   `alias char-major-178 mga_vid`

   Następnie skopiuj moduł `mga_vid.o` do odpowiedniego miejsca w `/lib/modules/<wersja jądra>/coś`.

   I uruchom

   `depmod -a`

5. Teraz musisz (prze)kompilować MPlayera, `configure` wykryje `/dev/mga_vid` i zbuduje sterowniki 'mga'. Wykorzystuje się je w MPlayerze przez `-vo mga`, jeśli posiadasz konsolę matroxfb, lub `-vo xmga` pod XFree86 3.x.x, albo 4.x.x.

Współpraca sterowników mga_vid z Xv.

Plik urządzenia `/dev/mga_vid` może być czytany (np.: przez `cat /dev/mga_vid`) dla jakiś informacji i zapisany dla zmiany jasności: `echo "brightness=120" > /dev/mga_vid`

#### 2.3.1.2.7 Wsparcie 3dfx YUV (tdfxfb)

Sterownik ten używa urządzenia framebuffer starownika jądra tdfx, by odtwarzać filmy z akceleracją YUV. Będziesz potrzebował jądra ze wsparciem tdfxfb, i rekompilacji z `./configure --enable-tdfxfb`

#### 2.3.1.2.8 Wyjście OpenGL

MPlayer wspiera wyświetlanie filmów, używając do tego OpenGL lecz jeśli twoja platforma/sterownik wspiera xv jak powinienno być na PeCecie z Linuksem, użyj zamiast tego xv, OpenGL jest znacząco gorszy. Jeśli posiadasz implemantację X11 bez wsparcia xv, OpenGL jest możliwą alternatywą.

Niestety nie wszystkie sterowniki zapewniają tę cechę. Sterowniki Utah-GLX (dla XFree86 3.3.6) wspierają ją dla wszystkich kart. Odwiedź http://utah-glx.sourceforge.net po detale i informację jak je instalować.

XFree86(DRI) 4.0.3 lub późniejsze wspierają OpenGL z kartami Matrox i Radeon, 4.2.0 lub późniejsze wspierają Rage128. Zajrzyj na http://dri.sourceforge.net, pobrać i zapoznać się z instrukcją instalacji.

#### 2.3.1.2.9 AAlib - wyświatlanie w trybnie tekstowtym

AAlib jest biblioteką do wyświetlania grafiki w trybie tekstowym, używając pełnej renderacji ASCII. Istnieje wiele programów, które to wspierają, tak jak np. Doom, Quake, itp. MPlayer zawiera dla niego bardzo wygodny sterownik. Jeśli ./configure wykrywa zainstalowane aalib, sterownik aalib libvo zostanie zbudowany.

Możesz użyć różnych kluczy w oknie AA, by zmienać opcje renderowania:
| `1` |  | zmniejsz kontrast
| `2` |  | zwiększ kontrast
| `3` |  | zmniejsz jasność
| `4` |  | zwiększ jasność
| `5` |  | włącz/wyłącz szybsze renderowanie
| `6` |  | ustaw tryb rozpraszania (none, error distribution, floyd steinberg)
| `7` |  | odwróc obraz
| `a` |  | przełącz między kontrolą aa i MPlayera)

Możesz użyć następujących opcji linii poleceń::

`-aaosdcolor=V`
  zmień kolor OSD
`-aasubcolor=V`
  zmień kolor napisów

  gdzie V może być: (0/narmalny, 1/czarny, 2/pogrubione, 3/gruba czcionka, 4/odwrotny, 5/specialny)

AAlib samo w sobie dostarcza ogromną liczbę opcjii. Niżej znajdują się najważniejsze:

`-aadriver`
  ustaw sugerowany sterownik aa (X11, curses, linux)
`-aaextended`
  użyj wszystkich 256 znaków
`-aaeight`
  użyj 8-bitowego ASCII
`-aahelp`
  wyświetl wszytskie opcje aalib

INFORMACJA: renderowanie bardzo intensywnie obciąza CPU, w szczególności kiedy używa AA-on-X (aalib na X), i najmniej obciąza CPU na standardowej konsoli bez framebuffera. Uzyj SVGATextMode, by ustawić duży tryb tekstowy, a następnie ciesz się! (dodatkowa głowica kard Hercules :)) (ale w moiej skromniej opinii, możesz użyć opcji `-vf 1bpp`, by otrzymać grafikę na hgafb:)

Użyj opcji `-framedrop`, jeśli twój komputer nie posiada wystarczającej prędkości do renderowania wszystkich klatek!

Odtwarzając w terminalu, otrzymasz lepszą prędkość i jakość, używając sterowników linuksa, nie curses (`-aadriver linux`). Ale dlatego potrzebujesz praw zapisu do `/dev/vcsa<terminal>`. Nie jest one automatycznie wykrywane przez aalib, ale vo_aa próbuje znaleść najlepszy tryb. Zobacz http://aa-project.sourceforge.net/tune/, by wspomódz wyniki tuningu.

#### 2.3.1.2.10 VESA - wyjście na VESA BIOS

Sterownik ten został zaprojektowany i wprowadzony jako ogólny sterownik dla kard, które mają BIOS kompatybilny z VESA VBE 2.0+. Inną zaletą tego sterownika, jest to, że próbuje on wymusić wyjście TV.
VESA BIOS EXTENSION (VBE) Version 3.0 Data: 16 wrzesień, 1998 (Strona 70) mówi:

> Projekty Dual-Controller
> VBE 3.0 wspiera projekt dual-controller przypuszczając, że poniważ obydwa kontrolery są typowo zapewniane przez ten sam OEM, pod kontrolą pojedynczego na tych samych kartach graficznych. jest możliwe ukrycie faktu, że dwa kontrolery rzeczywiście są prezentowane z aplikacji. Posiada to ograniczenia w powstrzymywaniu równoczesnym użyciu niezależnych kontrolerów, ale pozwala zwolnionym aplikacjom przed VBE 3.0 by działać normalnie. Funkcja VBE Function 00h (Powrót Informacji Kontrolera) zwraca połączone informacje obydwu kontrolerów, włączając połączone listy dostępnych trybów. Kiedy aplikacja wybiera tryb, właściwy kontroler jest aktywowany. Każda z pozostawia funkcii VBE, później działa na aktywnym kontrolerze.

Więc masz szansę na pracę na wyjściu TV dzięku użyciu tego sterownika.
(Przypuszczam, że wyjście TV-out często jest niezależnym nagłówiem lub przynajmniej niezależnym wyjściem.)

#### ZALETY

- Masz szansę oglądać filmy jeśli Linux również nie widzi twojego sprzętu graficznego.
- Nie potrzebujesz instalowania jakiś graficznych programów na twoim Linuksie (jak X11 (aka XFree86), fbdev). Te sterowniki mogą być uruchamiane z trybu tekstowego.
- Masz okazję na prace na wyjściu TV. (Znane przynajmniej dla kart ATI).
- Sterowniki te wywołują finkcje obsługi int 10h, w ten sposób nie emuluje - wywołuje prawdziwe rzeczy prawdziwego BIOSu w prawdziwym-trybie. (Znakomicie - w trybie vm86).
- Możesz używać z nim VIDIX, co daje akcelerację wyświetlania wideo I wyjście TV w tym samym czasie! (zalecane dla kart ATI)
- Jeśli posiadasz VESA VBE 3.0+, i masz gdzieś określone `monitor_hfreq`, `monitor_vfreq`, `monitor_dotclock` (plik konfiguracyjny lub linia poleceń) otrzymasz najwyższe z możliwych tempo odświeżania. Używa Ogólnej Formóły Taktowania. By aktywować tą cechę, musisz określić wszystkie opcje twojego monitora.

#### WADY

- Współpracuje tylko na sysemach x86.
- Może być użyty tylko przez ROOTA.
- Obecnie dostępny jest tylko dla Linuksa.

Nie używaj tych sterowników z GCC 2.96! Nie chcą działać!

#### OPCJE LINII POLECEŃ DOSTĘPNE DLA VESA

`-vo vesa:opts`
  obecnie rozpoznane: dga, by wymusić tryb dga i nodga, by wyłączuć tryb dga. W trybie dga możesz włączyć podwójne buforowanie przez opcję `-double`. Informacja: możesz pominąć te paramerty włączając autodetekcję trybu dga.

#### ZNANE BŁĄĘDY

- Jeśli zainstalowałeś czcionki NLS na swoim Linuksie i uruchamiasz sterownik VESA z trybu tekstowego, to po zakończeniu mplayera masz załadowane czcionki ROM zamiast narodowych. Możesz załadowac czcionki narodowe ponownie używając narzędzia setsysfont np. z dystrybucji Mandrake. (Napomknięcie: Niektóre narzędzia są użyte do lokalizacji fbdev).
- Niektóre sterowniki graficzne Linuksa nie aktualizuja trybu BIOS w pamięci DOS. Więc jeśli masz podobny problem - zawsze używaj sterowników VESA tylko z trybu tekstowego. W przeciwnym razie tryb tekstowy (#03) zostanie tak, czy inaczej aktywowany i będziesz musiał restartować komputer.
- Często po przerwaniu sterowników VESA dostajesz czarny ekran. By przywrócić twój ekran do pierwotnego stanu - po prostu przełącz na inną konsolę (przez wciśnięcie Alt-Fx), a następnie powróć na swoją poprzednią konsolę tym samym sposobem.
- By otrzymać dziające wyjście TV musisz posiadać wtyczkę łącznika TV, zanim butujesz swojego PeCeTa, ponieważ BIOS wideo inicjalizuję się tylko raz podczas procedyry POST.

#### 2.3.1.2.11 X11

Jęśli jest to możliwe to unikaj go. Wyjście na X11 (używające rozszerzenia dzielonej pamięci), jest bez żadnej akceleracji sprzętowej. Wspiera (MMX/3DNow/SSE akcelerację, ale nadal pozostaje wolne skalowanie sprzętowe, użyj opcji `-fs -zoom`. Wiele kart posiada wsparcie skalowania sprzętowego, użyj do tego wyjścia `-vo xv` lub `-vo xmga` dla Matroksów.

Problem jest taki, że wiele sterowników kart nie posiada wsparcia sprzętowej akceleracji na drugiej głowicy/TV. W tych przypadkach widzisz zielone/niebieskie okno zamiast filmu. Występuje to w przypadku, kiedy twoje sterowniki są poręczne, lecz wymagają silnego CPU, by użyć sprzętowe skalowanie. Nie używaj sprzętowgo wyjścia+skalowania sterowników SDL, posiadają gorszą jakość obrazu!

Sprzętowe skalowanie jest bardzo wolne, lepiej jak zamiast tego spróbujesz zmienić tryb wideo. Jest to bardzo proste. Zobacz sekcję lini trybów DGA i wstaw je do twojego XF86Config.

- Jeśli posiadasz XFree86 4.x.x - użyj opcji `-vm`. Zmieni ona rozdzielczość do wymiarów filmu. Jeśli nie posiadasz:
- Z XFree86 3.x.x - możesz przełączać między dostępnymi rozdzialczościami używając do tego klawiszy CTRL-ALT-plus i minus.

Jeżeli nie możesz znaleść trybów, które wstawiłeś, przejrzyj wyjście XFree86. Niektóre sterowniki nie portafią użyć niskich pixelclocków, które są wymagane do niskich trybów rozdzielczości wideo.

#### 2.3.1.2.12 VIDIX

#### WSTĘP

VIDIX jest skrótem od VIDeo Interface for *niX (Interfejs wideo dla *niksów). Został zaprojektowany i wydany jako interfejs dla szybkich sterowników przestrzeni użytkownika dostarczających takie wrażenia wideo, jak mga_vid dla kart Matrox. Jest także przenośny.

Interfejs ten został zaprojektowany jako próba przystosowanaia istniejących interfejsów akceleracji wideo (znanych jako mga_vid, rage128_vid, radeon_vid, pm3_vid) do stałego schematu. Dostarcza on wysokopoziomowych interfajsów do chipów, znanych jako BES (BackEnd scalers) lub OV (Video Overlays). Nie dostarcza niskopoziompwych interfejsów do rzeczy znanych jako serwery graficzne. (Nie chcę konkurować z zespołem X11 w przełączaniu trybów graficznych). Głównym celem tego interfejsu jest zapewnianie maksymalnej prędkości odtwarzania wideo.

#### UŻYCIE

- Możesz używać niezależnych sterowników wyjścia wideo: `-vo xvidix`
  Ten sterownik był rozwijany jako frontend X11 do technologii VIDIX. Wymaga X serwera i może pracować tylko pod nim. Zwróć uwagę, że jako ma bezpośredni dostęp do sprzętu i omija sterowniki X, piksmapy przechowywane w pamięci karty graficznej mogą być uszkodzone. Możesz temu zaradzić poprzez ograniczanie ilości pamięci wideo wżytej przez X z opcją "VideoRam" w sekcji urządzenia pliku XF86Config. Powinieneś ustawić na ilość pamięci zainstalowanej na twojej karcie minus 4MB. Jeśli posiadasz mniej niż 8MB pamięci wideo, możesz zamiast tego użycj opcji "XaaNoPixmapCache" w sekcji Screen (ekran).
- Możesz używać podurządzenia VIDIX które zostało zastosowane do rozmaitych sterowników wideo, takich jak:
  `-vo vesa:vidix` (tylko Linux) oraz `-vo fbdev:vidix`

Rzeczywiście nie ma to znaczenia, który sterownik wyjścia jest używany przez VIDIX.

#### WYMAGANIA

- Karta grafiki powinna być w trybie graficznym (napisałem powinna, ponieważ testawałem ją w trybie tekstowym - i pracuje ale ma okropne wyjście ;) Użyj do tego AAlib).
  Informacja: Każdy może próbowac tych trików, po przez komentowanie przełączania w sterownik vo_vesa.
- Sterowniki wyjścia MPlayera powinny znać aktywny tryb wideo i być w stanie przekazać podurządzeniu VIDIX cechy charakteru wideo serwera.

#### METODY UŻYCIA

Kiedy VIDIX is używany jako podurządzenie (`-vo vesa:vidix`), to konfiguracja trybu wideo jest ustawiona przez urzadzenie wyjścia wideo (vo_server w skrócie). Dlatego też możesz przekazywać z linii poleceń MPlayera te same klucze, co dla vo_server. W dodatku rozumie klucze `-double`, jako globalnie widoczne parametry. (Proponuje używać tego klucza z VIDIX na ostatnich kartach ATI).
Jako dla `-vo xvidix`: obacnie uznaje następujące opcje: `-fs -zoom -x -y -double`.

Możesz także określić bezpośrednoi sterownik VIDIX jako trzeci podargument w linii poleceń:
`mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi`
lub
`mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi`
Ale jest to niebezpieczne i nie powinienieś tego robić. W tym wypadku podany sterownik zostanie wymuszony i skutki są nieprzewidywalne (może zawiesić twój komputer). Powinieneś tak zrobić TYLKO, jeśli jesteś absolutnie pewny, że zadziała i MPlayer nie zrobi tego automatycznie. Proszę zwróć się z tym do deweroperów. Z poprawnej strony jest możliwość użycia VIDIX bez argumkentów, by włączyć autodetekcję.

VIDIX jest bardzo nową technologią i jest bardzo możliwe, że na twoim systemie nie działa. W tym przypadku jedynym rozwiązniem dla ciebie jest jego przełożenie (głownie libdha). Ale jest nadzieje, że będzie dziłał na tych systemach, gdzie X11.

Ponieważ VIDIX wymaga bezpośredniego dostępu do sprzętu, możesz uruchamiać go na dwa sposoby, jako root lub możesz ustawić bit SUID na pliki binarnym MPlayera (Ostrzeżenie: Jest to ryzyko związane z bezpieczeństwem!). Alternatywnie możesz użyć specialnych modułów jądra, takich jak te:

1. Pobierz wersję rozwijaną svgaliba (na przykład 1.9.17),
   LUB
   ściągnij wersję stworzoną przez Aleksa w szczególności do użytku MPlayerem (nie potrzebuje źródeł svgalib do kompilacji) stąd.
2. Skompiluje moduły w katalogu `svgalib_helper` (możesz je znaleść wewnątrz katalogu `svgalib-1.9.17/kernel/` jeśli masz pobrane źródła ze strony svgalib) i zainstaluj je insmodem.
3. Przenieś katalog `svgalib_helper` do `mplayer/main/libdha/svgalib_helper`.
4. Wymagane, jeśli pobrałeś źródła ze strony svgalib: Usuń komentarz przed linią CFLAGS zawierającą ciąg "svgalib_helper" z `libdha/Makefile`.
5. Przekompiluj i zainstaluj libdha.

#### 2.3.1.2.12.1 Karty ATI

Obecnie większość kart ATI jest wspieranych, począwszy od Mach64 do najnowszych Radeonów.

Istnieją 2 skompilowane binaria: `radeon_vid` dla Radeona oraz `rage128_vid` dla kart Rage 128. Może wymusisz któryś bądź zezwolisz systemowi VIDIX automatycznie rozpoznać wszystkie gostępne sterowniki.

#### 2.3.1.2.12.2 Karty Matrox

Matrox G200,G400,G450 i G550 zostały zgłoszone, że działają.

Sterowniki wspierają equalizery wideo i powinny być bliskie szybkości jako framebuffer Matroksa.

#### 2.3.1.12.3 Karty Trident

Istnieją sterowniki dostępne dla chipsetów Trident Cyberblade/i1, które znaleść można na płuyach głównych VIA Epia.

Sterownik został napisany i jest utrzymywany przez Alastaira M. Robinsona, który oferuje najnowsze starowniki do ściągnięcia z jego strony domowej. Sterowniki są dodane do MPlayera tylko z lekkim opuźnieniem, więc CVS powinien być zawsze uaktualniany.

#### 2.3.1.2.12.4 Karty 3DLabs

Chciaż istanieją sterowniki dla chipów 3DLabs GLINT R3 oraz Permedia3, nikt ich nie testował, raporty są więc mile widziane.

#### 2.3.1.2.13 DirectFB

"DirectFB jest graficzną biblioteką, którą zaprojektowano z przemyślanym systemem. Oferuje maksymalną akcelerację przy minimalmyn zużyciu i obiciążeniu zasobów." - cytowane z http://www.directfb.org.

Wyklucze cechy DirectFB z tej sekcji.

Pomimo, że MPlayer nie jst utzrymany jako "dostawca wideo" w DirectFB, te sterowniki wyjścia włączą odtwarzanie wideo output driver will enable video playback przez DirectFB. Bezie - oczywiści - akcelerowane, na moim Matroksie G400 prędkość DirectFB była taka sama jak na XVideo.

Zawsze próbuj używać najnowszej wersji DirectFB. Możesz użyć opcji DirectFB w linii poleceń, używając opcji `-dfbopts`. Warstwa selekcji może zostać określona przez metodę podurządzenia, np.: `-vo directfb:2` (warstwa -1 jest domyślną: autodetekcja)

#### 2.3.1.2.14 DirectFB/Matrox (dfbmga)

Proszę przeczytać główną sekcję DirectFB po ogólne informacje.

Te sterowniki wyjścia włączą CRTC2 (na drugiej głowicy) na kartach Matrox G400/G450/G550, wyświatlając wideo niezależnie od pierwszej głowicy.

Instrukcje, co zrobić, bu to działało możesz znaleść pod sekcją techniczną lub bezpośrednio na stronie domowej Ville Syrjala.

Informacja: nie byliśmy w stanie zrobić tego, by działałowo, lecz inni tak. W każdym razie, przenoszenie kodu CRTC2 do mga_vid jest w trakcie.

#### 2.3.1.3 Dekodery MPEG

#### 2.3.1.3.1 DVB

MPlayer wspiera krty z chipsetam Siemens DVB od sprzedawców takich jak Siemens, Technotrend, Galaxis lub Hauppauge. Ostatnie sterowniki DVB są dostępne na stronie Linux TV. Jeśli chcesz wykonywać programowe transkodowanie powinieneś posiadać co najmniej 1GHz CPU.

Configure powinien wykryć twoją kartę DVB. Jeśli tak nie zrobił, wymuś detekcję poprzez

      ./configure --enable-dvb

Jeśli posiadasz nagłówki ost w niestandardowej ścieżce, ustaw ją przez

      ./configure --with-extraincdir=<DVB source directory>/ost/include

Następnie skompiluj i zainstaluj, jak zazwyczaj.

#### UŻYCIE

Sprzętowe dekodowanie (odtwarzając standardowe pliki MPEG1/2) może zostać wykonane z tym poleceniem:

      mplayer -ao mpegpes -vo mpegpes file.mpg|vob

Sprzętowe dekodowanie lub transkodowanie różnych formatów do MPEG1 może być dokonane używając polecenia podobnego do:

      mplayer -ao mpegpes -vo mpegpes yourfile.ext
      mplayer -ao mpegpes -vo mpegpes -vf expand yourfile.ext

Zauważ, że karty DVB wspierają tylko wielkości 288 i 576 dla PAL lub 240 i 480 dla NTSC. Musisz zeskalować do innych wielkości poprzez dodawanie `scale=szerokość:wysokość` z szerokością i wysokością chcesz opcji `-vf`. Karty DVB akceptują rozmaite szerokośći, jak 720, 704, 640, 512, 480, 352 itd i wykonują skalowanie sprzętowe w poziomym kierunku, więc nie potrzebujesz skalowanie poziomego w większości wprzypadków. Dla 512x384 (stosunek 4:3) DivX wypróbuj:

      mplayer -ao mpegpes -vo mpegpes -vf scale=512:576

Jeśli masz szerokoekranowy film i nie chcesz skalować go do penej wysokości, możesz użyć filtra `expand=s:w`, by dodać czarne bandy. Dla widoku 640x384 DivX, spróbuj:

      mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 file.avi

Jeśli twój CPU jest zbyt wolny dla pełnych 720x576 DivX, wypróbuj zaniżone skalowanie:

      mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 file.avi

Jeśli prędkość się nie poprawiła, spróbuj z zaniżeniem pionowym, także:

      mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 file.avi

Dla OSD i podpisów użyj cechy OSD filtra. Więc zamiast of `expand=s:w` lub `expand=s:w:x:y`, użyj `expand=s:w:x:y:1` (piąty parametr `:1` na końcu włączy renderowanie OSD). Potrzebujesz może podnieść lekko obraz, by otzrymać większą, czarną przestrzeń dla napisów. Potzrebujesz może podnieść napisy, jeśli zą poza twoim ekranem TV, użyj opcji `-subpos <0-100>`, by to wyregulować (`-subpos 80` jest dobrym wyborem).

Żeby odtwarzać filmy, które nie mają 25 fpsów na PAL TV lub na wolnym CPU, dodaj opcję `-framedrop`.

By zachować stosunek plików DivX i otrzymać optymalne parametry skalowania (poziome skalowanie sprzętow oraz pionowe skalowanie programowe podczas zatrzymywania poprawnego stosunku), użyj filtra dvbscale:

    for  4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
    for 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1

#### PRZYSZŁOŚĆ

Jeśli masz pytania lub chcesz poznać zgłoszenia i wziąść udział w dyskusji na ten temat, wstąp do naszej listy mailingowej MPlayer-DVB Proszę pamiętać, że lista jest w języku angielskim.

W przyszłości możesz spodziewać się możliwości wyświetlania OSD i napisów, używając rodzimych cech OSD kart DVB, jak również bardziej płynnego odtwarzania plików posiadających inną ilość klatek na sekundę, niż 25 w transkodowaniu w czasie rzeczywistym pomiędy MPEG2 i MPEG4 (czściowa dekompresja).

#### 2.3.1.3.2 DXR2

MPlayer wspiera sprzętową akcelerację odtwarzania z kartą Creative DXR2.

Najpierw będziesz potrzebował odpowiednio zainstalowanych sterowników DXR2. Sterowniki i instrukcje instalacji możesz znaleść na stronie Centrum Zasobów DXR2.

#### UŻYCIE

`-vo dxr2`
  włącz wyjście TV
`-vo dxr2:x11` lub `-vo dxr2:xv`
  włącz wyjście Overlay (nakładkowanie) w X11
`-dxr2 <option1:option2:...>`
  Opcja ta jest używana do kontroli sterownika DXR2.

Chipset nakładkowania użyty w DXR2 jest dość kiepskiej jakości, lecz domyślne ustawienia powinny działać dla każdego. OSD może być użytkowe z nakładkowaniem (nie na TV) przez rysowanie w kolorze. Z domyślnymi ustawieniami koloru, możesz otrzymać zmienne rezultaty, zazwyczaj zobaczysz kolorową obramówkę wokól znaku lub inny zabawny efekt. Jeśli jednak właściwie dobrałeś ustawienia kolorów powiniwnieś otrzymać dość pozytywne rezultaty.

Proszę zajrzeć do manuala po dostępne opcje.

#### 2.3.1.3.3 DXR3/Hollywood+

MPlayer wspiera sprzętową akcelerację dotwarzania z kartami Creative DXR3 oraz Sigma Designs Hollywood Plus. Obydwie karty używają dekodera em8300 MPEG z Sigma Designs.

Na początku potrzebujesz odpowiednio zainstalowanych sterowników DXR3/H+, w wersji 0.12.0 lub późniejszej. Sterowniki i instrukcje instalacji możesz znaleść na stronie the DXR3 & Hollywood Plus dla Linuksa. Configure powinien wykryć twoją kartę automatycznie, kompilacja powinna przebiec bezproblemowo.

#### UŻYCIE

`-vo dxr3:prebuf:sync:norm=x:<device>`
  `overlay` aktywuje nakładkowanie zamiast wyjścia TV. Do poprawnej pracy wymaga właściwie skonfigurawanego setupu. Najłatwiejszą drogą, by skonfigurowć nakładkowanie, jest najpierw uruchomienie autocal. Następnie uruchom MPayera z wyjściem dxr3 i bez włączonego nakładkowania, uruchom dxr3view. W dxr3view możesz ustawiać nakładkowanie i oglądać efektu w czasie rzeczywistym, być może ta cecha będzie wspierana w GUI MPlayera w przyszłości. Kiedy nakładkowanie ustawione jest odpowiednio, nie będziesz dłużej potrzebował dxr3view.
  `prebuf` włącza prebuforowanie. Prebuforowanie jest cechą chipu em8300, włączającą tzrymanie więcej niż jednej klatki wideo w czasie. Oznacza to, że kierdy uruchamiasz prebuforowaniem, MPlayer spróbuje zatrzymać stały byfor wideo z danymi przez cały czas. Jeśli masz wolną maszynę, MPlayer prawdopodobnie użyje prawie cały lub dokładnie 100% CPU. Jest to wszczególności powszechne, kiedy odtwarzasz czyste strumienie MPEG (jak DVD, SVCD a.s.o.) od kiedy MPlayer nie miał przetwarzania go do MPEG użyje bardzo szybkiego zapełnianie bufora.
  Z prebuforowaniem dotwarzanie wideo mniejszą wrażliwość do innych programów w całości wykorzystujących CPU, nie będzie przesuwał klatek, chyba że aplikacje wukorzystują CPU przez długi czas.
  Kiedy uruchamiasz bez probuforowania em8300 jest wrażliwszy na ładowanie CPU, więc jest bardzo sugerowane, by włączyć MPlayera z opcję `-framedrop`, by uniknąc desynchronizacji.
  `sync` włączy nowy silnik synchronizujący. Obecnie jest to w fazie eksperymentów. Z włączoną sunczegar wewnętrzny em8300 będzie monitorował przez cały czas, jeśli startuje z opóźnieniem zegar z MPlayera zresetuje powodując, że em8300 porzucki klatki powodujące opóźnianie.
  `norm=x` ustawi normę TV karty DXR3 bez potrzeby użycia zewnętrznych narzędzi, takich jak em8300setup. Poprawne normy, to 5 = NTSC, 4 = PAL-60, 3 = PAL. Specialnymi są 2 (autodopasowanie używające PAL/PAL-60) i 1 (autodopasowanie używające PAL/NTSC), ponieważ decydują one, którą normę użyć, przez zaglądanie do tempa klatek filmu. norm = 0 (domyślna) nie zmienia obecnej normy.
  `<device>` = numer urządzenia, które ma być użyte, jeśli posiadasz więcej, niż jedną kartę em8300.
  Niektóre z tych opcji mogą zostać pominięte.
  `:prebuf:sync` zdaje się, że świetnie pracuje podczas odtwarzanie filmów DivX. Osoby zgłaszały problemy podczas używania opcji `prebuf` kiedy odtwarzały pliki MPEG1/2. Możesz spróbować uruchomić najpierw bez żadnych opcji, jeśli masz problem z synchronizacją lub problem z napisami DVD, spróbuj z `:sync`.
`-ao oss:/dev/em8300_ma-X`
  Dla wyjścia audio, gdzie `X` jest numerem urządzenia (0 jeśli jest jedna karta).
`-aop list=resample:fout=xxxxx`
  em8300 nie może odtwarzać próbkując niżej niż 44100Hz. Jeśli próbka jest poniżej 44100Hz wybierz jedną z dwóch 44100Hz lub 48000Hz w zależności, która jest bliższa. T.j. jeśli film używa 22050Hz użuj 44100Hz jako 44100 / 2 = 22050, jeśli jest 24000Hz użyj 48000Hz jako 48000 / 2 = 24000 i tak dalej. Nie działa to z cyfromym wyjściem audio (`-ac hwac3`).
`-vf lavc/fame`
  (AUTO-ZAMIESZCZANIE) By odtwarzać zawartość plików innych MPEG na em8300 (t.j. DivX lub RealVideo) musiszs określić któryś z filtrów wideo MPEG1, takich jak libavcodec (lavc) lub libfame (fame). W tym momencie lavc jest zarówno szybki i daje lepszą jakość obrazu, jest sugerowane, abyć go użych, chociaż jeśli masz z nim problemy. Zajrzyj do manuala po informacje odnoście `-vf lavc/fame`.
  Używanie lavc jest wielce proponowane. Obecnie nie ma sposoby na ustawienie fpsów em8300 co oznacza, że wartość ta jest stała - 29.97fps. Jest sugerowane, by użuwać `-vf lavc=<quality>:25`, w szczególności, jeżeli używasz prebuforowania. Ale skąd 25, a nie 29.97? Więc, rzecz się ma tak, że kiedy używasz 29.97 obraz staje się lekko skokowy. Uzasadnienie tego jest nam nie znane. Ale kiedy ustawisz fpsy na gdzieś pomiędzy 25 i 27 obraz jest stabilny.
`-vf expand=-1:-1:-1:-1:1`
  Mimo, że sterownik DXR3 potrafi umieścić OSD wewnątrz wideo MPEG1/2/4, posiada ono gorszą jakość, niż tradycyjne OSD MPlayera i ma problemy z odświeżaniem. Powyższa linia poleceń najpierw przekonwertuje wejście wideo do MPEG4 (jest to wymagane prawnie, przepraszam), a następnie zastosuje rozszerzony filter, który nie rozszerzy niczego (-1: domyślnie), ale zastosuje normalne OSD na obrazkie (jest to to, co robi "1"na końcu).
`-ac hwac3`
  em8300 wspiera odtwarzanie audio AC3 (dźwięk surround) przez cyfrowe wyjście karty audio. Zobacz powyższą opcję `-ao oss`, która musi być użyta do określenia wyjścia DXR3 zamiast karty dźwiękowej.

#### 2.3.1.4 Inna sprzętowa wizualizacja

#### 2.3.1.4.1 Zr

Są to sterowniki wyświetlania (`-vo zr`) dla członków kart przechwytujących/odtwarzających MJPEG (testowane na DC10+ i Buz i powinno działać dla LML33 i oryginalnej DC10). Sterowniki pracują, kodując klatkę do jpeg i przesyłając ją do karty. Dla kodowania jpeg libavcodec jest użyteczne, i sugerowane is. Ze specialnym trybem cinerama, możesz oglądać filmy w obnszernym ekranie pod warunkiem, że piosiadasz dwa beamery i dwie karty MJPEG. W zależności od rozdzielnczości i ustawień jakości, sterownik ten może wymagać dużo mocy obliczeniowej CPU, pamiętaj, by okreslić `-framedrop` jeśli twoja maszyna jest zbyt wolna. Informacja: Mój AMD K6-2 350MHz jest (z `-framedrop`) dostatecznmie wystarczający do oglądania filmów VCD o zminienionym rozmiarze i z zmniejszeniem skali.

Sterownik ten kontaktuje się ze sterownikami jądra dostępnych na http://mjpeg.sourceforge.net, więc musisz zrobić je najpierw. Obecność karty MJPEG jest automatycznie wykrywana przez skrypt configure, jeśli detekcje nie powiodła się, wymuś ją przez

      ./configure --enable-zr

Wyjście może być kontrolowane przez różne opcje, obszerne ich objaśnienie możesz znaleść w manualu, krótką listę opcji możesz otrzymać przez uruchomienie

      mplayer -zrhelp

Rzeczy, takie ja skalowanie i OSD (on screen display - wyświetlanie na ekarnie) nie są utrzymywane przez ten sterownik, ale może byc to wykonane poprez filtry wideo. Na przykład, przypuśćmy, że masz film z rozdzielczością `512x272`, a chcesz oglądać go na pełnym ekarnie na twojej DC10+. Istnieją trzy główne możliwośći, możesz skalowac film do szerokości `768`, `384` lub `192`. W związku z quality powinienieś wybrać skalowanie do `384x204` używając szybkiego dwuliniowego skalowanika sprzętowego (fast bilinear). Polecenie jest takie

      mplayer -vo zr -sws 0 -vf scale=384:204 movie.avi

Kadrowanie może być wykonane poprzez filter `crop` i "własnoręcznie" przez sterownik. Przypuśćmy, że film jest zbyt szeroki, wyświeltać go na twojej Buz, a nie chcesz używać `-zrcrop`. By zmniejszyć film powinienieć użyć następującego polecenia

      mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi

Jeśli chcesz użyć filtra `crop`, powinieneś wykonać

      mplayer -vo zr -vf crop=720:320:80:0 benhur.avi

Ekstra zdarzenie `-zrcrop` wzywa tryb cinerama, t.j. możesz rozdzialić film przez rożne beamery TV, by stworzyc większy ekran. Przypuśćmy, masz dwa beamery. Lewy podłączony do twojego Buz na `/dev/video1` i prawy podłączony do DC10+ na `/dev/video0`. Film ma rozdzielczość `704x288`. Przypuśćmy także, że chcesz prawy beamer w czarnobieli, a prawy powninien mieć klatki jpeg w jakośći `10`, powinieneś wykonać następujące polecenie

      mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
              -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 movie.avi

Widzisz, że opcje pojawiające się przed drugim `-zrcrop` zastosowują się tylko do DC10+, a te opcje op drugim `-zrcrop` - do Buz. Maksymalna liczba kart MJPEG uczestniczących w cinerama to cztery, więc możesz zbudować vidiwall `2x2`.

Końcowa ważna uwaga: Nie startuje lub nie stopuj XawTV na urządzeniu odtwarzającym, podczas odtwarzania, zawiesi to twój komputer. Jest tak, jednak, NAJPIERW wystartuj XawTV, PÓŹNIEJ MPlayera, poczekaj, aż MPlayer skończy i NASTĘPNIE zatrzymaj XawTV.

#### 2.3.1.4.2 Blinkenlights

Sterownik ten potrafi użyc protokołu Blinkenlights UDP. Jeśli nie wiesz, czym jest Blinkenlights, nie potrzebujesz tych sterowników.

#### 2.3.1.5 Wsparcie dla wyjścia TV

#### 2.3.1.5.1 Karty Matrox G400

Pod Linuksem masz dwie możliwośći, otzrymanie działającego wyjścia TV dla G400:

WAŻNE: dla instrukcji wyjścia TV Matroksa G450/G550, proszę zajrzeć do następnej sekcji!

- XFree86: używając sterowników modułow HAL, dostępnych na stronie Matroksa. Da ci to X na TV.
  Metopda ta nie daje możliwości akceleracji odtwarzania jak pod Windoze! Druga głowica posiada tylko framebuffer YUV framebuffer, BES (Back End Scaler, skaler YUV na kartach G200/G400/G450/G550) nie działa na nich! Sterowniki Windows w jakiś sposób działają wokół tego, prawdopodobnie używając silnika 3D do powiększania, i framebuffera YUV do wyświetlania powiększonego obrazu. Jeśli naprawdę chcesz używac X, użyj opcji `-vo x11 -fs -zoom`, lecz będzie ona WOLNA oraz posiada ona włączone zabezpieczenie przed kopiowaniem Macrovision (możesz obchodzić Macrovision używając tego skryptu perla.
- Framebuffer: używa modułów matroxfb z jądra 2.4. Jądro 2.2 nie posiada cechy wyjścia TV w sobie, dlatego też jest nieużyteczne do tego. Możesz włączyć wszytskie określone cechy matroxfb w czasie kompilacji (oprócz MultiHead) i przekompilowac je w moduły! Będziesz potrzebował także włączonego I2C.
  1. Wejdź do `TVout/matroxset` i wytypuj `make`. Zainstaluj `matroxset` gdzieś w twojej ścieżce.
  2. Jeśli nie masz zainstalowanego `fbset`, wejdź do `TVout/fbset` i wytypuj `make`. Zainstaluje `fbset` gdzieś w twojej ścieżce.
  3. Następnie wejdź do katalogu `TVout/` w źródłach MPlayera i wykonaj `./modules` jako root. Twój tyrb tekstowy przejdzie do trybu framebuffera (nie ma drogi powrotnej!).
  4. Następnie WEDYTUJ i uruchom skrypt `./matroxtv`. Zaprezentuje się jako proste menu. Naciśnij 2 i ENTER. Teraz powinieneś mieć ten sam obraz na monitorze i na TV. Jeżeli obraz TV (domyślnie PAL) ma dziwne pasy, skrypt nie był w stanie ustawwić ustawić poprawnie rozdzielczości (domyślnie do 640x512). Spróbuj innych rozdzielczości z menu i/albo poeksperymentuj z fbset.

  Yoh. Następnym zandaniem jest utworzenie kursora na tty1 (lub cokolwiek) wyłączonegoto, i wyłączebnie pustego ekranu. Urucham następujące polecenie:

  `echo -e '\033[?25l'` or `setterm -cursor off
  setterm -blank 0`

  Możliwe, że chcesz umieścić powyższe polecenie wewnątrz skryput, a także wyczyścić ekaran.. By przywrócić kursor:
  `echo -e '\033[?25h'` lub `setterm -cursor on`

  Yeah kewl. Wystartuj odtwarzanie filmu przez `mplayer -vo mga -fs -screenw 640 -screenh 512 <filename>`
  (jeśli używaszX, zmień teraz do matroxfb przez np. CTRL-ALT-F1!)
  Zmień 640x512 jeśli ustawiłeś rozdzielczość do innej.
  Ciesz się ultraszybkim, ultrauwydatnionym wyjściem TV Matrosa (lepsze niż Xv)!

#### Bodowanie kabla wyjścia TV Matroksa

Nikt nie bierze odpowiedzialności i nie poręcza za uszkodzenia wynikłe z tej dokumentacji.

Kabel dla G400: Czwarta końcówka złącza CRTC2 jest złożonym sygnałem wideo. Uziemienia to szusta, siódma i ósma końcówka. (informacje zaczerpnięte od Balázsa Rácza)

Kabel dla G450: Pierwsza końcówka złącza CRTC2 jest złożonym sygnałem wideo. Uziemienia to piąta, szusta, siódma i piętnasta końcówka (5, 6, 7, 15). (informacje zaczerpnięte od Balázsa Kerekesa)

#### 2.3.1.5.2 Karty Matrox G450/G550

Wyjście tw wspierane dla tych kart zostało niedawno wprowadzone, i nie mag go jeszcze w głównej gałęzi jądra. Obecnie moduł mga_vidjak mi wiadomo nie może być użyty, ponieważ sterownik G450/G550 pracujue tylko na jednej konfiguracji: pierwszy chip CRTC (z większośćią dodatków) na pierwszym wyświetlaniu (na monitorze) i drugi CRTC (nie BES - po wyjaśnienia BES, proszę zajrzyj do powyższej sekcji G400) na TV. Więc obecnie możesz użyć tylko sterowników wyjścia fbdev MPlayera.

Pierwszy CRTC obecnie nie może być przekierowany do drugiej głowicy. Autor sterowników jądra matroxfb - Petr Vandrovec - możliwe, że napisze wsparcie do tego, prze wyświetlanie pierwszego wujścia CRTC na obydwu głowicach jednocześnie obecnie proponowane dla G400, zobacz sekcję wyżej.

Niezbędna łata na jądro oraz szczegółowe howto można popbrać z http://www.bglug.ca/matrox_tvout/

#### 2.3.1.5.3 Karty ATI

#### WSTĘP

Obecnie ATI nie chce wsparcia dla jakichkolwiek wyjść TV pod Linuksem, ponieważ są one licencjowane na technologi Macrovision.

#### STATUS WYJŚĆ TV KAR ATI POD LINUKSEM

- ATI Mach64: Wsparte przez gatos.
- ASIC Radeon VIVO: Wsparte przez gatos.
- Radeon i Rage128: Wsparte przez MPlayer! Sprawdź sterownik VESA oraz sekcję VIDIX.
- Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: Wsparte przez atitvout.

Na innych kartach użyj tylko sterownika VESA, bez VIDIX. Jednak silne CPU jest wymagane.

Jedyna rzecz, jaką musisz wykonać - musisz mieć podłączone złącze TV przed butowaniem PeCta ponieważ BIOS inicjalizuje się tylko raz podczas procedury POST.

#### 2.3.1.5.4 Voodoo 3

Sprawdź ten URL.

#### 2.3.1.5.5 nVidia

Najpierw musisz pobrać zamknięte, binarne sterowniki z http://nvidia.com. Nie będę opisywał procesu instalacji i konfiguracji, ponieważ nie jest to celem tej dokumantacji.

Jeżeli XFree86, XVideo oraz akceleracji 3D poprawnie pracuje, wyedytuj swoją sekcję Urządzenie (Device) w pliku `XF86Config`, według poniższego przykładu (przystosowanego do twojej karty/TV):

    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

Oczywiście najważniejszą rzeczą jest część TwinView.