# Videó kimeneti eszközök

## Xv

XFree86 4.0.2 vagy újabb alatt használhatod a kártyád YUV rutinjait az XVideo kiterjesztés használatával. Ez az, amit a `-vo xv` kapcsoló használ. Ez a vezérlő támogatja a fényerősség/kontraszt/árnyalat/stb. állítását (hacsak nem a régi, lassú DirectShow DivX codec-et használod, ami mindenhol támogatja), lásd a man oldalt.

A beüzemeléséhez ellenőrizd a következőket:

1. XFree86 4.0.2 vagy újabbat kell használnod (korábbi verziókban nincs XVideo)

2. A kártyádnak támogatnia kell a hardveres gyorsítást (a modern kártyák tudják)

3. Az X-nek írnia kell az XVideo kiegészítés betöltését valahogy így:

       (II) Loading extension XVideo

   a `/var/log/XFree86.0.log` fájlban.

   Ez csak az XFree86 kiegészítését tölti be. Egy jó telepítésben ez mindig betöltődik, de ez nem jelenti azt, hogy a kártya XVideo támogatása is be van töltve!

4. A kártyádnak van Xv támogatása Linux alatt. Ennek az ellenőrzéséhez add ki az `xvinfo` parancsot, ez része az XFree86 disztribúciónak. Egy hosszú szöveget kell kiírnia, valami ilyesmit:

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

   Támogatnia kell a tömörített YUY2 és a YV12 planar pixel formátumokat, hogy az MPlayer használni tudja.

5. És végül, nézd meg, hogy az MPlayer 'xv' támogatással lett-e fordítva. Írd be ezt: `mplayer -vo help | grep xv` . Ha az 'xv' támogatás be van építve, egy ehhez hasonló sornak szerepelnie kell:

         xv      X11/Xv

## DGA

BEVEZETÉS

Ez a dokumentum megpróbálja pár szóban elmagyarázni, hogy mi is az a DGA tulajdonképpen és mit tehet a DGA vezérlő az MPlayernek (és mit nem).

MI AZ A DGA

A DGA a Direct Graphics Access rövidítése és azt jelenti, hogy egy program az X szerver megkerülésével direkt eléréssel módosíthatja a framebuffer memóriát. Gyakorlatilag ez úgy történik, hogy a framebuffer memória a processzed memória tartományába kerül leképezésre. Ezt a kernel csak superuser jogokkal engedélyezi. Vagy root néven történő bejelentkezéssel vagy az MPlayer futtatható állományának SUID bitjének beállításával juthatsz ilyen jogokhoz. (nem javasoljuk).

Két verziója van a DGA-nak: a DGA1 az XFree 3.x.x-ban volt használatos, a DGA2 az XFree 4.0.1-ben került bevezetésre.

A DGA1 csak direkt framebuffer elérést biztosít a fent leírt módszerrel. A videó jel felbontásának megváltoztatásához az XVidMode kiterjesztést kell használnod.

A DGA2 már tartalmazza az XVidMode kiterjesztés képességeit és a képernyő színmélységét is engedi változtatni. Így alaphelyzetben 32 bites színmélységben futtatott X szervert átállíthatsz 15 bites mélységre és vissza.

Ennek ellenére a DGA-nak van néhány hátránya. Úgy tűnik ez az általad használt grafikus chip-től függ és az ezen chip-et irányító vezérlő X szerverben való megvalósításától. Így nem minden rendszeren működik...

DGA TÁMOGATÁS TELEPÍTÉSE AZ MPLAYERHEZ

Először győződj meg, hogy az X betölti a DGA kiterjesztést: lásd a `/var/log/XFree86.0.log` fájlt:

    (II) Loading extension XFree86-DGA

XFree86 4.0.x vagy újabb nagyon javasolt! Az MPlayer DGA vezérlőjét a `./configure` automatikusan megtalálja, de elő is írhatod a használatát a `--enable-dga` kapcsolóval.

Ha a vezérlő nem tud kisebb felbontásra váltani, kísérletezz a `-vm` (csak X 3.3.x esetén), `-fs`, `-bpp`, `-zoom` kapcsolókkal a filmnek legmegfelelőbb videó mód megtalálásához. Még nincs konverter :(

Lépj be rootként. A DGA-hoz root elérés kell, hogy közvetlenül tudjon írni a videó memóriába. Ha felhasználóként akarod futtatni, telepítsd az MPlayert SUID root-tal:

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

Így már egyszerű felhasználók esetében is működik.

Biztonsági kockázat

Ez nagy biztonsági kockázatot jelent! Soha ne csináld ezt meg egy szerveren vagy egy olyan számítógépen amihez mások is hozzáférnek, mert root jogokat szerezhetnek a SUID root-os MPlayerrel.

Használd a `-vo dga` kapcsolót, és már megy is! (reméljük:) Kipróbálhatod a `-vo sdl:driver=dga` kapcsolót is, hogy működik-e! Sokkal gyorsabb!

FELBONTÁS VÁLTÁS

A DGA vezérlő lehetővé teszi a kimeneti jel felbontásának megváltoztatását. Ezzel elkerülhető a (lassú) szoftveres méretezés és ugyanakkor teljes képernyős képet biztosít. Ideális helyzetben pontosan a videó adat felbontására vált (kivéve az aspect arányt), de az X szerver csak a `/etc/X11/XF86Config` (`/etc/X11/XF86Config-4` XFree 4.X.X esetén) fájlban előírt felbontásokra enged váltani. Ezeket modline-oknak nevezik és a videó hardvered tulajdonságain múlik. Az X szerver átnézi ezt a konfigurációs fájlt indításkor és letiltja a hardverednek nem megfelelőeket. Az X11 log fájlból kiderítheted, hogy mely módok engedélyezettek. Megtalálhatóak a `/var/log/XFree86.0.log` fájlban.

Ezek a bejegyzések tudvalevőleg működnek Riva128 chip-en, az nv.o X szerver vezérlő modul használatával.

    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

A DGA két helyen használható az MPlayerben: Az SDL vezérlőnek előírhatod a használatát (`-vo sdl:driver=dga`) és a DGA vezérlőben (`-vo dga`). A fent említettek vonatkoznak mind a kettőre; a következő részben leírom, hogyan működik az MPlayer DGA vezérlője.

TULAJDONSÁGOK

A DGA vezérlő használatát a `-vo dga` kapcsoló parancssorban történő megadásával írhatod elő. Alapértelmezésként az videó eredeti felbontásához legközelebb álló felbontásra vált. Szándékosan figyelmen kívül hagyja a `-vm` és `-fs` kapcsolókat (videó mód váltás engedélyezése és teljes képernyő) - mindig a lehető legtöbbet megpróbálja elfedni a képernyődből a videó mód váltásával, így megspórolja a képméretezéshez szükséges plusz CPU ciklusokat. Ha nem tetszik az általa választott mód, kényszerítheted, hogy az általad megadott felbontáshoz legközelebbit keresse meg az `-x` és `-y` kapcsolókkal. A `-v` kapcsoló beírásának hatására a DGA vezérlő sok egyéb mellett kilistázza az aktuális `XF86Config` fájl által támogatott összes felbontást. DGA2 használata esetén előírhatod a színmélységet is a `-bpp` kapcsolóval. Az érvényes színmélységek 15, 16, 24 és 32. A hardvereden múlik, hogy ezek a színmélységek alapból támogatottak-e vagy (valószínűleg lassú) konverziót kell végezni.

Ha vagy olyan szerencsés, hogy elegendő memóriád van az egész, nem képernyőn lévő kép bemásolásához, a DGA vezérlő dupla bufferelést fog használni, ami egyenletesebb film lejátszást eredményez. Kiírja, hogy a dupla bufferelés engedélyezett-e vagy sem.

A dupla bufferelés azt jelenti,h ogy a videód következő képkockája a memória egy nem megjelenített részére másolódik, amíg az aktuális képkocka van a képernyőn. Ha kész a következő képkocka, a grafikus chip megkapja az új kép memóriabeli helyét, és egyszerűen onnan megjeleníti a képet. Eközben a másik buffer ismét feltöltődik új videó adattal.

A dupla bufferelés bekapcsolható a `-double` kapcsolóval, vagy letiltható a `-nodouble`-lal. A jelenlegi alapértelmezett beállítás szerint le van tiltva a dupla bufferelés. DGA vezérlő használata esetén az onscreen display (OSD) csak akkor működik, ha a dupla bufferelés engedélyezve van. Azonban a dupla bufferelés nagy sebességcsökkenéssel járhat (az én K6-II+ 525 gépemen további 20% CPU idő!) a hardvered DGA implementációjától függően.

SEBESSÉGI ADATOK

Általánosságban a DGA framebuffer elérésének legalább olyan gyorsnak kell lennie, mint az X11-es vezérlőnek a teljes képernyős képhez szükséges kiegészítők használatával. Az MPlayer által kiírt százalékos sebesség értékeket azonban fenntartással kezeld, mert például az X11-es vezérlő esetén nem tartalmazzák azt az időt, ami az X szervernek kell a kirajzoláshoz. Hurkold rá a terminált egy soros vonalra és indítsd el a `top` programot, akkor megtudod mi is történik valójában a dobozodban.

Kijelenthetjük, hogy a DGA gyorsítása a 'normális' X11-es használathoz képest erőteljesen függ a grafikus kártyádtól és hogy a hozzá tartozó X szerver modul mennyire optimalizált.

Ha lassú rendszered van, jobb ha 15 vagy 16 bites színmélységet használsz, mivel ezek fele akkora memória sávszélességet igényelnek, mint a 32 bites megjelenítés.

A 24 bites színmélység használata jó ötlet, ha a kártyád natívan támogatja a 32 bites mélységet, mivel ez is 25%-kal kevesebb adatátvitelt jelent a 32/32 módhoz képest.

Láttam pár AVI fájlt 266-os Pentium MMX-en lejátszva. Az AMD K6-2 CPU-k is működnek 400 MHZ vagy afölött.

ISMERT HIBÁK

Nos, az XFree néhány fejlesztője szerint a DGA egy szörnyeteg. Ők azt mondják, jobb ha nem használod. Az implementációja nem mindig tökéletes az XFree-hez tartozó chipset vezérlőkkel.

- Az XFree 4.0.3 és az `nv.o` esetén van egy hiba, ami érdekes színeket eredményez.

- ATI vezérlő esetén egynél többször kell visszaváltani a módot a DGA-s lejátszás után.

- Néhány vezérlő egyszerűen képtelen visszaváltani normál felbontásra (használd a Ctrl Alt Keypad + és Ctrl Alt Keypad - kombinációkat a kézi váltáshoz).

- Néhány vezérlő egyszerűen rossz színeket jelenít meg.

- Néhány vezérlő hamis adatot ad a processz címterébe bemappolt memória méretéről, így a vo_dga nem használ dupla bufferelést (SIS?).

- Néhány vezérlő egy használható módot sem jelez. Ebben az esetben a DGA vezérlő összeomlik és azt írja, hogy 100000x100000-es értelmetlen mód vagy valami hasonló.

- Az OSD csak engedélyezett dupla buffereléssel működik (különben villog).

## SVGAlib

TELEPÍTÉS

Telepítened kell az svgalib-et és a fejlesztői csomagjait ahhoz, hogy az MPlayer elkészítse az SVGAlib vezérlőjét (automatikusan felismeri, de lehet kényszeríteni is rá) és ne felejtsd el átírni a `/etc/vga/libvga.config` fájlt, hogy megfeleljen a kártyádnak és a monitorodnak.

Ne használd a `-fs` kapcsolót, mert bekapcsolja a szoftveres méretezést és lassú. Ha tényleg szükség van rá, használd a `-sws 4` kapcsolót, ami rossz minőséget ad, de valamivel gyorsabb.

EGA (4BPP) TÁMOGATÁS

Az SVGAlib tartalmazza az EGAlib-et és az MPlayer így képes bármely film 16 színben történő megjelenítésére, lehetővé téve az alábbi beállítások használatát:

- EGA kártya EGA monitorral: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp

- EGA kártya CGA monitorral: 320x200x4bpp, 640x200x4bpp

A bpp (bit per pixel) értéket kézzel kell 4-re állítanod: `-bpp 4`

A filmet valószínűleg át kell méretezni, hogy megfeleljen az EGA módnak:

    -vf scale=640:350

or

    -vf scale=320:200

Ehhez gyors, de rossz minőséget produkáló méretező rutin kell:

    -sws 4

Talán az automatikus arány-javítást kikapcsolhatod:

    -noaspect

A kísérleteimből úgy tűnik, a legjobb képminőség EGA monitorokon a világosság enyhe csökkentésével állítható elő: `-vf eq=-20:0`. Nálam szükséges volt az audió mintavételi ráta csökkentése is, mert a hang szétesett 44kHz-en: `-srate 22050`.

Csak az `expand` szűrő segítségével tudod bekapcsolni a feliratokat és az OSD-t, lásd a man oldalt a megfelelő paraméterekért.

## Framebuffer kimenet (FBdev)

Az FBdev elkészítése automatikusan kiválasztódik a `./configure` során. Olvasd el a framebuffer dokumentációt a kernel forrásban (`Documentation/fb/*`) a bővebb információkért.

Ha a kártyád nem támogatja a VBE 2.0 szabványt (régebbi ISA/PCI kártyák, mint például az S3 Trio64), csak a VBE 1.2-t (vagy régebbit?): Nos, a VESAfb még elérhető, de be kell töltened a SciTech Display Doctor-t (egykori UniVBE), mielőtt betöltenéd a Linuxot. Használj DOS boot lemezt vagy valamit. És ne felejtsd el regisztrálni az UniVBE-det! ;))

Az FBdev kimenetnek a fentiek mellett van néhány paramétere is:

`-fb`

  megadhatod a használni kívánt framebuffer eszközt (alapértelmezett: `/dev/fb0`)

`-fbmode`

  használni kívánt mód neve (a `/etc/fb.modes` fájlnak megfelelően)

`-fbmodeconfig`

  módokat tartalmazó konfigurációs fájl (alapértelmezett: `/etc/fb.modes`)

`-monitor-hfreq`
`-monitor-vfreq`
`-monitor-dotclock`

  fontos értékek, lásd `example.conf`

Ha egy különleges módra akarsz váltani, akkor így használd:

    mplayer -vm -fbmode mod_neve fajlnev

- Magában a `-vm` kiválasztja a legmegfelelőbb módot a `/etc/fb.modes` fájlból. Használható együtt a `-x` és `-y` kapcsolókkal is. A `-flip` kapcsoló csak akkor támogatott, ha a film pixel formátuma megfelel a videó mód pixel formátumának. Figyelj a bpp értékére, az fbdev vezérlő az aktuálisat próbálja meg használni, vagy ha megadsz valamit a `-bpp` kapcsolóval, akkor azt.

- A `-zoom` kapcsoló nem támogatott (használd a `-vf scale`-t). Nem használhatsz 8bpp (vagy kevesebb) módokat.

- Valószínűleg el szeretnéd tüntetni a kurzort:

      echo -e '\033[?25l'

  vagy

      setterm -cursor off

  és a képernyővédőt:

      setterm -blank 0

  Kurzor visszakapcsolása:

      echo -e '\033[?25h'

  vagy

      setterm -cursor on

Az FBdev videó mód váltása nem működik a VESA framebufferrel és ne is kérd, hogy működjön, mivel ez nem az MPlayer korlátja.

## Matrox framebuffer (mga_vid)

Az mga_vid egy videó kimeneti vezérlő és egy kernel modul kombinációja, ami felhasználja a Matrox G200/G400/G450/G550 videó méretező/overlay egységét a YUV->RGB színtér átalakításhoz és tetszés szerinti videó méretezéshez. Az mga_vid-ben van hardveres VSYNC támogatás tripla buffereléssel. Működik mind a framebuffer konzolon, mind X alatt, de csak 2.4.x-es Linux-szal.

Ezen vezérlő Linux 2.6.x alatti verziója itt található: vagy nézz rá az mga_vid külső Subversion repository-jára, melyet checkout-olhatsz így:

    svn checkout svn://svn.mplayerhq.hu/mga_vid

Telepítés:

- A használatához először le kell fordítanod a `drivers/mga_vid.o` fájt:

      make drivers

- Ezután futtasd (root-ként) a

      make install-drivers

  parancsot, ami telepíti a modult és létrehozza az eszköz node-ját neked. Töltsd be a vezérlőt

      insmod mga_vid.o

- Ellenőrizd a memória méret detektálását a `dmesg` parancs segítségével. Ha hibásan írja, használd a `mga_ram_size` kapcsolót (előtte `rmmod mga_vid`), a kártya memóriájának MB-ban történő megadásához:

      insmod mga_vid.o mga_ram_size=16

- Az automatikus betöltéshez/törléshez először írd be ezt a sort a `/etc/modules.conf` fájlod végére:

      alias char-major-178 mga_vid

- Ezekután le kell fordítanod (újra) az MPlayert, a `./configure` meg fogja találni a `/dev/mga_vid`-et és elkészíti az 'mga' vezérlőt. Az MPlayerben a `-vo mga` kapcsolóval használhatod, ha matroxfb konzolod van vagy a `-vo xmga`-val XFree86 3.x.x vagy 4.x.x alatt.

Az mga_vid vezérlő együttműködik az Xv-vel.

A `/dev/mga_vid` eszköz fájlt megnézheted némi infóért például a

    cat /dev/mga_vid

segítségével és beállíthatod a fényerősséget:

    echo "brightness=120" > /dev/mga_vid

Van egy `mga_vid_test` nevű teszt alkalmazás ugyan ebben a könyvtárban. Ha minden jól működik, akkor 256x256-os képeket rajzol a képernyőre.

## 3Dfx YUV támogatás

Ez a vezérlő a kernel tdfx framebuffer vezérlőjét használja a filmek YUV gyorsításával történő lejátszásához. Kell hozzá egy kernel tdfxfb támogatással, és egy újrafordítás a

    ./configure --enable-tdfxfb

paranccsal.

## tdfx_vid

Ez a Linux kernel moduljainak és egy videó kimeneti vezérlőnek a kombinációja, hasonlóan az mga_vid-hez. 2.4.x kernel kell hozzá az agpgart vezérlővel, mivel a tdfx_vid AGP-t használ. Add meg a `--enable-tdfxfb` a `configure`-nak a videó kimeneti vezérlő elkészítéséhez és készíts egy kernel modult az alábbi utasítások alapján.

A tdfx_vid.o kernel modul telepítése:

- Fordítsd le a `drivers/tdfx_vid.o` fájlt:

      make drivers

- Ezután futtasd (root-ként) a

      make install-drivers

  parancsot, ami telepíti a modult és létrehozza az eszköz node-ját neked. Töltsd be a vezérlőt

      insmod tdfx_vid.o

- A szükség esetén történő automatikus betöltéshez/törléshez, először szúrd be ezt a sort a `/etc/modules.conf` fájl végére:

      alias char-major-178 tdfx_vid

Van egy `tdfx_vid_test` nevű teszt alkalmazás ugyan ebben a könyvtárban. Ha minden jól működik, néhány hasznos információt jelenít meg.

## OpenGL kimenet

Az MPlayer támogatja a filmek OpenGL-lel történő megjelenítését is, de ha a platformod/vezérlőd támogatja az Xv-t, inkább azt használd PC-n Linux-szal, az OpenGL teljesítménye észrevehetően gyengébb. Ha Xv támogatás nélküli X11-ed van, az OpenGL jó alternatíva lehet.

Sajnos nem minden vezérlő támogatja ezt a tulajdonságot. A Utah-GLX vezérlők (az XFree86 3.3.6-hoz) minden kártya esetén támogatják. Lásd a oldalt a részletes telepítési leíráshoz.

Az XFree86(DRI) 4.0.3 vagy későbbi támogatja az OpenGL-t Matrox és Radeon kártyákkal, a 4.2.0 vagy későbbi Rage128-cal. Lásd a oldalt a letöltéshez és a telepítési utasításokért.

Egy felhasználónk tanácsa: a GL videó kimenetet függőlegesen szinkronizált TV kimenet előállításához is felhasználhatod. Csak be kell állítanod egy környezeti változót (legalábbis az nVidia-n):

`export __GL_SYNC_TO_VBLANK=1`

## AAlib – szöveges módú megjelenítés

Az AAlib egy függvény könyvtár grafika karakteres módban történő megjelenítéséhez, egy nagyszerű ASCII renderelő segítségével. Már jelenleg is rengeteg program támogatja, például a Doom, Quake, stb. Az MPlayerben is van egy roppant jól használható vezérlő hozzá. Ha a `./configure` talál telepített aalib-et, az aalib libvo vezérlő alapértelmezett lesz.

Pár billentyű segítségével állíthatod a renderelési opciókat az AA Ablakban:

Gomb | Művelet
--- | ---
1 | kontraszt csökkentése
2 | kontraszt növelése
3 | fényerő csökkentése
4 | fényerő növelése
5 | gyors renderelés be/kikapcsolása
6 | dithering módjának beállítása (nincs, hiba eloszlás, Floyd Steinberg)
7 | kép megfordítása
8 | váltás az aa és az MPlayer vezérlése között

A következő parancssori kapcsolókat használhatod:

`-aaosdcolor=V`

  OSD színének megváltoztatása

`-aasubcolor=V`

  Felirat színének megváltoztatása

  ahol a V lehet: `0` (normális), `1` (sötét), `2` (vastag), `3` (félkövér betű), `4` (ellentétes), `5` (speciális).

Maga az AAlib számtalan lehetőséget biztosít. Itt van pár fontosabb:

`-aadriver`

  Beállítja a javasolt aa vezérlőt (X11, curses, Linux).

`-aaextended`

  Mind a 256 karakter használata.

`-aaeight`

  Nyolc bites ASCII.

`-aahelp`

  Kiírja az összes aalib kapcsolót.

A renderelés nagyon CPU igényes, különösen ha AA-on-X-et (aalib használata X alatt) használsz, a legalacsonyabb a standard, nem framebuffer-es konzolon. Használd az SVGATextMode-ot a nagy felbontás beállításához, és élvezd! (másodlagos Hercules kártyák a sirályak :)) (de SZVSZ használhatod a `-vf 1bpp` kapcsolót is a hgafb-en megjelenő grafikához :)

A `-framedrop` kapcsoló használatát javasoljuk, ha nem elég gyors a géped az összes képkocka rendeléséhez!

Terminálon lejátszva jobb sebességet és minőséget kapsz a Linux vezérlővel, mint a curses-szal (`-aadriver linux`). De ehhez írási joggal kell rendelkezned a `/dev/vcsa<terminal>` fájlhoz! Ezt az aalib nem ismeri fel magától, de a vo_aa megpróbálja megtalálni a legjobb módot. Lásd a oldalt a további tuningolási dolgokhoz.

## libcaca - Színes ASCII Art függvénykönyvtár

A libcaca függvénykönyvtár egy grafikus könyvtár, ami szöveget jelenít meg pixelek helyett, így működik régebbi videó kártyákkal vagy szöveges terminálokon is. Hasonló a népszerű AAlib könyvtárhoz. A libcaca-nak egy terminál kell a működéshez, így bármilyen Unix rendszeren (beleértve a Mac OS X-et) működik, vagy a slang vagy az ncurses vagy DOS alatt a conio.h illetve Windows rendszereken akár a slang vagy az ncurses (Cygwin emuláción keresztül) vagy a conio.h könyvtárak használatával. Ha a `./configure` megtalálja a libcaca-t, a caca libvo vezérlő elkészül.

A különbség az AAlib-hez képest a következőek:

- 16 elérhető szín a karakter kimenetre (256 színű párok)

- színes kép dithering

De a libcaca-nak megvan az alábbi korlátja:

- nincs fényerő, kontraszt és gamma támogatás

Pár billentyűvel szabályozhatod a caca ablakban a renderelés opcióit:

Gomb | Művelet
--- | ---
d | Váltás a libcaca dithering metódusai között.
a | A libcaca antialiasing ki-/bekapcsolása.
b | A libcaca háttérbe küldése.

A libcaca figyel pár környezeti változót is:

`CACA_DRIVER`

  Állítsd be a javasolt caca vezérlőt, pl. ncurses, slang, x11.

`CACA_GEOMETRY (csak X11)`

  Megadja a sorok és oszlopok számát, pl. 128x50.

`CACA_FONT (csak X11)`

  Megadja a használni kívánt betűtípust, pl. fixed, nexus.

Használd a `-framedrop` kapcsolót ha a számítógéped nem elég gyors az összes képkocka rendeléséhez.

## VESA - kimenet a VESA BIOS-hoz

Ezt a vezérlőt egy általános vezérlőként terveztük meg és vezettük be bármilyen, VESA VBE 2.0 kompatibilis BIOS-szal rendelkező monitorkártya esetében. A másik előnye ennek a vezérlőnek, hogy megpróbálja használni a TV kimenetet. VESA BIOS EXTENSION (VBE) Version 3.0 Dátum: 1998. szeptember 16. (70. oldal) ezt írja:

> Duál-Vezérlős Tervezés

> A VBE 3.0 támogatja a duál-vezérlős tervezést, feltételezve hogy általában mindkét vezérlőt ugyanaz az OEM biztosítja, egy BIOS ROM vezérlésével ugyan azon a grafikus kártyán, lehetséges az alkalmazás számára elrejteni azt a tényt, hogy valójában két vezérlő van jelen. Ez ugyan megakadályozza a vezérlők egyidejűleg történő egyedi használatát, azonban lehetővé teszi a VBE 3.0 előtt kiadott alkalmazások normális működését. A 00h VBE funció (Vezérlő információkkal tér vissza) a két vezérlő kombinált információit adja vissza, beleértve a használható módok kombinált listáját. Ha az alkalmazás kiválaszt egy módot, a megfelelő vezérlő aktiválódik. Az összes többi VBE funkció ezután az aktív vezérlővel dolgozik.

Így van esélyed a TV kimenet használatára ezzel a vezérlővel. (Gondolom a TV-out legtöbbször legalább egyedülálló fej vagy egyedüli kimenet.)

ELŐNYÖK

- Van esélyed a film nézésre akkor is ha a Linux nem ismeri a videó hardveredet.

- Nem kell telepítened semmiféle grafikus dolgot a Linuxodra (mint pl. X11 (AKA XFree86), fbdev és így tovább). Ez a vezérlő fut szöveges-módban.

- Jó eséllyel működő TV-kimenetet kapsz. (Legalábbis az ATI kártyákon).

- Ez a vezérlő meghívja az `int 10h` kezelőt így nem emulátor - igazi dolgokat hív az igazi BIOS-ban valós-módban (valójában vm86 módban).

- Használhatod a VIDIX-et vele, így gyorsított videó megjelenítést kapsz és TV kimenetet egy időben! (Javasolt az ATI kártyákhoz.)

- Ha VESA VBE 3.0+-od van, és megadtad a `monitor-hfreq, monitor-vfreq, monitor-dotclock`-ot valahol (konfigurációs fájlban vagy paranccsorban), a lehető legjobb frissítési rátát kapod. (Általános Időzítő Formulát használva). Ezen képesség engedélyezéséhez meg kell adnod a monitorod összes opcióját.

HÁTRÁNYOK

- Csak x86 rendszereken működik.

- Csak a root használhatja.

- Jelenleg csak Linux alatt elérhető.

A VESA PARANCSSORI KAPCSOLÓI

`-vo vesa:opts`

  jelenleg felismert: `dga` a dga mód használatához és `nodga` a dga mód letiltásához. A dga módban engedélyezheted a dupla bufferelést a `-double` kapcsolóval. Megjegyzés: ezen paraméterek elhagyásával engedélyezed a dga mód automatikus detektálását.

ISMERT PROBLÉMÁK ÉS MEGOLDÁSAIK

- Ha telepítettél NLS betűtípust a Linux rendszeredre és VESA vezérlőt használsz szöveges-módban, akkor az MPlayerből való kilépés után a ROM betűtípusa lesz betöltve a nemzeti helyett. A nemzeti betűkészletet újra betöltheted pl. a Mandrake/Mandriva disztribúcióban található `setsysfont` nevű segédprogram használatával. (Tanács: Ugyan ez a segédprogram használható az fbdev honosítására is).

- Some Linux graphics drivers don't update active BIOS mode in DOS memory. Tehát ha ilyen problémáid vannak - mindig csak szöveges módban használd a VESA vezérlőt. Különben a szöveges mód (#03) aktiválódik mindenképp és újra kell indítanod a számítógépedet.

- Gyakran a VESA vezérlő bezárása után fekete képernyőt kapsz. Hogy visszaállítsd a képernyődet az eredeti állapotába - egyszerűen csak válts át másik konzolra (az Alt F<x> gombok megnyomásával) majd válts vissza ugyanígy.

- A működő TV kimenethez be kell dugnod a TV-csatlakozót mielőtt betöltene a PC-d, mivel a videó BIOS csak egyszer, a POST eljárás során inicializálja magát.

## X11

Ha lehet, kerüld el! Az X11-es kimenetnek (megosztott memória kiterjesztést használnak), nincs semmilyen hardveres támogatásuk. Tudja ugyan (MMX/3DNow/SSE által gyorsítva, de így is lassan) a szoftveres méretezést, használhatod a `-fs -zoom` kapcsolókat. A legtöbb hardverben benne van a hardveres méretezés támogatása, használd a `-vo xv` kimenetet hozzá vagy a `-vo xmga`-t a Matrox kártyákhoz.

A probléma az, hogy a legtöbb kártya vezérlője nem támogatja a hardveres gyorsítást a második fejen/TV-n. Ezekben az esetekben zöld/kék színű ablakot látsz a film helyett. Az ilyen esetekben jön jól ez a vezérlő, de erős CPU-val kell rendelkezned a szoftveres méretezés használatához. Ne használd az SDL vezérlő szoftveres kimenetét+méretezőjét, annak még rosszabb a képminősége!

A szoftveres méretezés nagyon lassú, jobb, ha megpróbálsz videó módot váltani inkább. Az egyszerűbb. Lásd a DGA rész modeline-jait, és írd be őket az `XF86Config` fájlba.

- Ha XFree86 4.x.x-ed van: használd a `-vm` kapcsolót. Ez átvált egy olyan felbontásra, amin elfér a film. Ha mégsem:

- XFree86 3.x.x-szel: körkörösen végigmehetsz az elérhető felbontásokon a Ctrl Alt Keypad + és Ctrl Alt Keypad - gombokkal.

Ha nem találod a beszúrt módokat, nézd át az XFree86 kimenetét. Néhány vezérlő nem tud alacsony pixelclock-ot használni, ami szükséges az alacsony felbontású videó módokhoz.

## VIDIX

BEVEZETÉS

A VIDIX a VIDeo Interface for *niX rövidítése. A VIDIX-et egy felhasználói térben használható vezérlőként tervezték és mutatták be, mely olyan videó teljesítményt nyújt, mint az mga_vid a Matrox kártyákon. Ráadásul könnyen portolható.

Ezt az interfészt úgy tervezték meg, hogy illeszkedjen a már létező videó gyorsító interfészekhez (mga_vid, rage128_vid, radeon_vid, pm3_vid) egy állandó sémával. Magas szintű interfészt biztosít a BES (BackEnd Scalers) néven ismert chip-ekhez vagy az OV-hoz (Video Overlays). Nem nyújt a grafikus szerverekhez hasonló alacsony szintű interfészt. (Nem akarok versenyezni a z X11 csapattal a grafikus mód váltásban). Pl. ezen interfész fő célja a videó lejátszás sebességének maximalizálása.

HASZNÁLAT

- Használhatsz egyedülálló videó kimeneti vezérlőt: `-vo xvidix`. Ez a vezérlő a VIDIX-es technológia X11-es front end-je. X szerver kell hozzá és csak X szerverrel működik. Jegyezd meg, hogy mivel közvetlenül éri el a hardvert az X vezérlő megkerülésével, a grafikus kártya memóriájában lévő pixmap-ok sérülhetnek. Ezt elkerülheted az X által használt videó memória korlátozásával, amit az XF86Config "VideoRam" opciójával adhatsz meg az eszköz részben. Ajánlott ezt a kártyádon lévő memória mínusz 4 MB-ra állítani. Ha kevesebb, mint 8 MB videó ram-od van, akkor ehelyett használhatod az "XaaNoPixmapCache" opciót a képernyő részben.

- Van egy konzolos VIDIX vezérlő: `-vo cvidix`. Ehhez egy működő és inicializált frambuffer kell a legtöbb kártyánál (vagy különben csak összeszemeteled a képernyőd), és hasonló eredményt kapsz, mint a `-vo mga` vagy `-vo fbdev` kapcsolókkal. Az nVidia kártyák azonban képesek tényleges grafikus kimenetre igazi szöveges konzolon. Lásd az nvidia_vid részt a további információkért. Hogy megszabadulj a határoló szövegektől és a villogó kurzortól, próbálj ki valami ilyesmit:

      setterm -cursor off > /dev/tty9

  (feltéve, hogy a tty9 eddig nem volt használva) és ezután válts a tty9-re. Másrész a `-colorkey 0`-t ajánlott megadni egy "háttérben" futó videónál, mivel a helyes működése a colorkey funkcionalításától függ.

- Használhatod a VIDIX aleszközt, ami számos videó kimeneti vezérlővel együtt használható, például: `-vo vesa:vidix` (csak Linux) és `-vo fbdev:vidix`.

Igazából nem számít, hogy melyik videó kimeneti vezérlőt használod együtt a VIDIX-szel.

KÖVETELMÉNYEK

- A videó kártyának grafikus módban kell lennie (kivéve az nVidia kártyákat a `-vo cvidix` kimeneti vezérlővel).

- Az MPlayer videó kimeneti vezérlőnek tudnia kell aktiválni a videó módot és információkat kell tudnia átadni a VIDIX aleszköznek a szerver videó karakterisztikájáról.

HASZNÁLATI MÓDOK

Ha a VIDIX-et aleszközként használod (`-vo vesa:vidix`), akkor a videó mód konfigurációt a videó kimeneti vezérlő (röviden vo_server) végzi. Ezért az MPlayer parancssorában ugyan azokat a kulcsokat használhatod, mint a vo_server-rel. Ráadásul ismeri a `-double` kulcsot mint globálisan látható paramétert. (Javaslom ezen kulcs VIDIX-szel történő használatát legalább az ATI kártyával). Ami a `-vo xvidix`-et illeti, most csak a következő kapcsolókat ismeri: `-fs -zoom -x -y -double`.

A parancssorban harmadik alkapcsolóként megadhatod közvetlenül a VIDIX vezérlőjét:

    mplayer -vo xvidix:mga_vid.so -fs -zoom -double file.avi

vagy

    mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 file.avi

De ez veszélyes, inkább ne használd. Ebben az esetben a megadott vezérlő lesz kényszerítve, így az eredmény megjósolhatatlan (lefagyaszthatja a számítógéped). CSAK akkor csinálj ilyet, ha teljesen biztos vagy benne, hogy működik és az MPlayer nem teszi meg automatikusan. Ez esetben kérjük jelezd ezt a fejlesztőknek is. A helyes módszer a VIDIX argumentumok nélküli használata, és így az automatikus detektálás engedélyezése.

### svgalib_helper

Mivel a VIDIX-nek direkt hardver elérés kell, futtathatod root-ként vagy beállíthatod a SUID bit-et az MPlayer binárisán (Figyelem: Ez biztonsági kockázatot jelent!). Alternatívaként használhatsz egy speciális kernel modult, így:

- Töltsd le az svgalib (pl. 1.9.x-es) fejlesztői verzióját.

- Fordítsd le a modult az `svgalib_helper` könyvtárban (az `svgalib-1.9.17/kernel/` könyvtáron belül található, ha az svgalib oldaláról töltötted le a forrást) és insmod-old.

- A `/dev` könyvtárban a megfelelő eszközök létrehozásához add ki a

      make device

  parancsot az `svgalib_helper` könyvtárban rootként.

- Ezután futtasd le a `configure`-t újra és add meg neki a `--enable-svgalib_helper` és a `--extra-cflags=/eleresi/ut/svgalib_helper/forrasahoz/kernel/svgalib_helper` paramétereket, ahol a /eleresi/ut/svgalib_helper/forrasahoz/ könyvtárat az svgalib_helper kicsomagolt forrását tartalmazó könyvtárnak megfelelően kell beállítani.

- Forgass újra.

### ATI kártyák

Jelenleg a legtöbb ATI kártya natívan támogatott, a Mach64-től a legújabb Radeonokig.

Két lefordított bináris van: `radeon_vid` a Radeonhoz és `rage128_vid` a Rage 128 kártyákhoz. Előírhatsz egyet vagy hagyhatod a VIDIX rendszernek automatikusan kipróbálni az összes elérhető vezérlőt.

### Matrox kártyák

A Matrox G200, G400, G450 és G550 működik a jelentések szerint.

A vezérlő támogatja a videó equalizereket és majdnem olyan gyors, mint a Matrox framebuffer.

### Trident kártyák

Van egy vezérlő a Trident Cyberblade/i1 chipset-hez, ami a VIA Epia alaplapokon található.

A vezérlőt Alastair M. Robinson írta és tartja karban.

### 3DLabs kártyák

Habár van vezérlő a 3DLabs GLINT R3 és Permedia3 chip-ekhez, senki sem tesztelte le, így örömmel fogadjuk a jelentéseket.

### nVidia kártya

Egy egyedülálló tulajdonsága az nvidia_vid vezérlőnek a sima, egyszerű, csak szöveges konzolon történő videó megjelenítés - framebuffer vagy X varázslat és egyebek nélkül. Ehhez a `cvidix` videó kimenetet kell használni, amint az itt látható:

    mplayer -vo cvidix pelda.avi

### SiS kártyák

Ez nagyon kísérleti kód, csakúgy mint az nvidia_vid.

Tesztelték SiS 650/651/740-en (a leggyakrabban használt SiS chipset verziók a "Shuttle XPC" dobozokban).

Várjuk a visszajelzéseket!

## DirectFB

> "A DirectFB egy grafikus függvénykönyvtár, amit a beágyazott rendszereket szem előtt tartva terveztek meg. Maximális hardver gyorsítási teljesítményt ad minimális erőforrás felhasználással és terheléssel." - idézet a oldalról.

Ki fogom hagyni a DirectFB tulajdonságokat ebből a fejezetből.

Mivel az MPlayer nem támogatott, mint "video provider" a DirectFB-ben, ez a kimeneti vezérlő engedélyezi a videó lejátszást DirectFB-n keresztül. Természetesen gyorsított lesz, az én Matrox G400-amon a DirectFB sebessége majdnem megegyezik az XVideo-éval.

Mindig próbáld meg a DirectFB legújabb verzióját használni. Megadhatsz DirectFB opciókat a parancssorban a `-dfbopts` kapcsoló használatával. A réteg választás egy aleszköz módszerével történhet, pl.: `-vo directfb:2` (-1-es réteg az alapértelmezett: automatikus keresés)

## DirectFB/Matrox (dfbmga)

Kérjük olvasd el a fő DirectFB részt az általános információkért.

Ez a videó kimeneti vezérlő engedélyezi a CRTC2-t (a második fejen) a Matrox G400/G450/G550 kártyákon, a videót az első fejtől függetlenül jelenítve meg.

Ville Syrjala-nak van egy README-je és egy HOWTO-ja a weboldalán, ami leírja, hogy hogyan hozhatod működésbe a DirectFB TV kimenetet a Matrox kártyákon.

Az első DirectFB verzió, amit működésre tudtunk bírni a 0.9.17 volt (hibás, kell hozzá az a surfacemanager javítás a fenti URL-ről). A CRTC2 kód portolását az mga_vid-be évekig terveztük, a javításokat szívesen fogadjuk.

## MPEG dekóderek

### DVB kimenet és bemenet

Az MPlayer támogatja a Siemens DVB chipset-tel szerelt kártyákat olyan gyártóktól, mint a Siemens, Technotrend, Galaxis vagy a Hauppauge. A legújabb DVB vezérlők elérhetőek a Linux TV oldalról. Ha szoftveres átkódolást akarsz csinálni, legalább egy 1GHz-es CPU-ra lesz szükséged.

A configure megtalálja a DVB kártyádat. Ha mégsem, kényszerítheted:

    ./configure --enable-dvb

Majd fordíts és telepíts, mint rendesen.

HASZNÁLAT

A hardveres dekódolás szabványos MPEG-1/2 videó folyamot és/vagy MPEG audiót tartalmazó fájlok esetén elvégezhető ezzel a paranccsal:

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

Bármilyen más típusú videó folyam esetén MPEG-1-be történő átkódolás szükséges, ezért lassú és nem éri meg a vesződést, különösen ha lassú a géped. Egy ehhez hasonló paranccsal végezhető el:

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

Figyelj rá, hogy a DVB kártyák PAL esetén csak a 288-as és 576-os, NTSC esetén a 240-es és 480-as magasságokat ismerik. Muszáj átméretezned más magassághoz a `scale=szélesség:magasság` kapcsolóval és a kívánt szélesség és magasság megadásával a `-vf` kapcsolónál. A DVB kártyák számos szélességet elfogadnak, mint például 720, 704, 640, 512, 480, 352 stb. és hardveres méretezést alkalmaznak vízszintes irányban, így a legtöbb esetben nem kell vízszintesen méretezned. Egy 512x384 (4:3 arányú) MPEG-4 (DivX)-hez:

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

Ha szélesvásznú filmed van és nem akarod átméretezni teljes magasságúra, használhatod az `expand=w:h` szűrőt a fekete sávok hozzáadásához. Egy 640x384 MPEG-4 (DivX) megnézésénél:

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

Ha a CPU-d túl lassú a teljes méretű 720x576 MPEG-4 (DivX)-hez, próbáld meg leméretezni:

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

Ha a sebesség nem javul, próbáld meg a függőleges leméretezést is:

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

Az OSD és a feliratokhoz használd az expand szűrő OSD tulajdonságát. Így, az `expand=w:h` vagy `expand=w:h:x:y` helyett írj `expand=w:h:x:y:1`-et (az ötödik paraméter, a `:1` a végén engedélyezi az OSD render-elést). A képet egy kicsit feljebb szeretnéd vinnni valószínűleg, hogy nagyobb hely maradjon a feliratoknak. Vagy akár a feliratokat is felviheted, ha a TV képernyőjén kívülre esnek, használd a `-subpos <0-100>` kapcsolót ennek beállításához (a `-subpos 80` egy jó választás).

A nem-25fps-es filmek PAL TV-n vagy lassú CPU-n való lejátszásához még add hozzá a `-framedrop` kapcsolót.

Az MPEG-4 (DivX) fájlok méretarányának megtartásához és az optimális méretezési paraméterekhez (hardveres vízszintes és szoftveres függőleges méretezés a helyes méretarány megtartásával) használd az új dvbscale szűrőt:

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

Digital TV (DVB bemeneti modul)

A DVB kártyád segítségével digitalis TV-t is nézhetsz.

A `scan` és `szap/tzap/czap/azap` programoknak telepítve kell lenniük; mind benne vannak a drivers csomagban.

Ellenőrizd, hogy a vezérlőid megfelelően működnek egy olyan programmal, mint a `dvbstream` (ez a DVB bemeneti modul alapja).

Most már fordíthatsz egy `~/.mplayer/channels.conf` fájlt, a `szap/tzap/czap/azap` által elfogadott szintaktikával, vagy engeded a `scan`nek, hogy elkészítse neked.

Ha több típusú kártyád van (pl. műholdas, földi, kábel és ATSC), a csatorna fájlokat elmentheted `~/.mplayer/channels.conf.sat`, `~/.mplayer/channels.conf.ter`, `~/.mplayer/channels.conf.cbl`, és `~/.mplayer/channels.conf.atsc` néven, így az MPlayernek implicit javaslod ezen fájlok használatát a `~/.mplayer/channels.conf` helyett és csak azt kell megadnod, hogy melyik kártyát akarod használni.

Győződj meg róla, hogy csak Free to Air csatornák vannak a `channels.conf` fájlodban, különben MPlayer kódolatlan átvitelre fog várni.

Az audió és a videó mezőkidben használhatsz kiterjesztett szintaxist: `...:pid[+pid]:...` (egyenként maximálisan 6 pid); ebben az esetben az MPlayer beleveszi a stream-be az összes jelzett pid-et, plusz a pid 0-t (ami a PAT-ot tartalmazza). Mindig ajánlott a PMT és MCR pid bevétele minden sorba a megfelelő csatornáknál (ha ismered őket). Megadhatsz 8192-őt is, ez kiválaszt minden pid-et ezen a frekvencián, majd ezután a TAB-bal tudsz váltani a programok között. Ez nagyobb sávszélességet igényel, de az olcsóbb kártyák mindig átviszik az összes csatornát legalább a kernelig, így ezeknél nem jelent számottevő különbséget. Egyéb lehetőségek: televideo pid, második audió sáv, stb.

Ha az MPlayer rendszeren panaszkodik

    "Túl sok videó/audió csomag a bufferben"

    "Too many video/audio packets in the buffer"

üzenettel vagy az audió és videó közötti szinkronizáció növekvő eltérését tapasztalod, nézd meg, hogy van-e PCR pid a folyamban (szükséges az átvivő bufferelésének történő megfeleléshez) és/vagy próbáld meg használni a libavformat-ban lévő MPEG-TS demuxer-t a `-demuxer lavf -lavfdopts probesize=128` opció parancssorhoz történő hozzáadásával.

A csatornák beállításainak kilistázásához futtast ezt:

    mplayer dvb://

Ha egy adott csatornát akarsz nézni, mint pl. az R1-et, írd be:

    mplayer dvb://R1

Ha egynél több kártyád van, meg kell adnod a kártya számát is, ahol a csatorna látható (pl. 2) az alábbi szintaxissal:

    mplayer dvb://2@R1

A csatornaváltáshoz nyomd meg a h (következő) vagy a k (előző) gombot vagy használd az OSD menüt.

Az audió vagy videó folyam ideiglenes kikapcsolásához másold be a következőket a `~/.mplayer/input.conf` fájlba:

    % set_property  switch_video -2
    & step_property switch_video
    ? set_property  switch_audio -2
    ^ step_property switch_audio

(A billentyűket átírhatod a kívántra.) Ha megnyomod a switch_x -2 parancshoz tartozó billentyűt, a megfelelő folyam bezárásra kerül; ha a step_x-hez tartozót, akkor a folyam újra meg lesz nyitva. Ügyelj rá, hogy ez a kapcsolási mechanizmus nem a várt módon fog működni, ha a több audió és videó folyam van.

Lejátszás közben (nem rögzítés közben), a dadogás és 'A rendszeret túl lassú ehhez' üzenetek megelőzése érdekében javasolt a

    -mc 10 -speed 0.97 -af scaletempo

használata a parancssorban, a scaletempo paramétereinek megfelelő beállításával.

Ha a `~/.mplayer/menu.conf` fájlod tartalmazza a `<dvbsel>` bejegyzést, úgy, mint az `etc/dvb-menu.conf` példafájl (ezt felhasználhatod a `~/.mplayer/menu.conf` fájl felülírásához), a fő menüben egy al-menü bejegyzést láthatsz, aminek a segítségével választhatsz a `channels.conf`-ban előre beállított csatornák közül, melyet az elérhető kártyák listája követhet, ha egynél több MPlayer által használható kártya van.

Ha el akarod menteni a programot a lemezre, használhatod az alábbi parancsot:

    mplayer -dumpfile r1.ts -dumpstream dvb://R1

Ha inkább másik formátumban akarsz rögzíteni (újrakódolni), kiadhatsz egy ehhez hasonló parancsot:

    mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 \
        -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1

Olvasd el a man oldalt a kapcsolók listájához, amiket megadhatsz a DVB bemeneti modulnak.

A JÖVŐ

Ha kérdésed van vagy további bejelentésekről szeretnél tudomást szerezni és részt venni a beszélgetéseinkben, csatlakozz az MPlayer-DVB levelezési listához. Kérjük vedd figyelembe, hogy a lista nyelve az angol.

A jövőben tervezzük a DVB kártyák által biztosított natív OSD használatát az OSD menü és a feliratok megjelenítéséhez.

### DXR2

Az MPlayer támogatja a hardveresen gyorsított lejátszást a Creative DXR2 kártyával.

Mindenek előtt megfelelően telepített DXR2 vezérlő kell. A vezérlőt és a telepítési útmutatót megtalálhatod a DXR2 Resource Center oldalán.

HASZNÁLAT

`-vo dxr2`

  TV kimenet engedélyezése.

`-vo dxr2:x11` vagy `-vo dxr2:xv`

  Átlapolásos kimenet bekapcsolása X11-en.

`-dxr2 <opció1:opció2:...>`

  Ezzel a kapcsolóval a DXR2 vezérlő irányítható.

A DXR2-n használt átlapolásos chipset elég rossz minőségű, de az alapértelmezett beállítások mindenkinél működnek. Az OSD használható az átlapolással (nem TV-n) a színkulcsban történi kirajzolással. Az alapértelmezett színkulcs beállításokkal változó eredményeket kaphatsz, valószínűleg látni fogod a színkulcsot a karakterek körül vagy más egyéb érdekes effektet. De ha megfelelően beállítod a színkulcsot, elfogadható eredményt kapsz.

Kérjük nézd meg a man oldalt a használható kapcsolókhoz.

### DXR3/Hollywood+

Az MPlayer támogatja a hardveresen gyorsított lejátszást a Creative DXR3 és Sigma Designs Hollywood Plus kártyákkal. Ezek a kártyák a Sigma Designs em8300 MPEG dekódoló chip-jét használják.

Mindenek előtt megfelelően telepített DXR3/H+ vezérlő kell, 0.12.0 verziójú vagy régebbi. A vezérlőket és a telepítési utasításokat megtalálhatod a DXR3 & Hollywood Plus for Linux oldalon. A `configure`nak automatikusan meg kell találnia a kártyádat, és a fordításnak hiba nélkül le kell futnia.

HASZNÁLAT

`-vo dxr3:prebuf:sync:norm=x:eszköz`

  Az `overlay` az átlapolást aktiválja a TV-out helyett. A helyes működéshez megfelelően beállított overlay setup kell. A legegyszerűbb út az átlapolás beállításához először az autocal majd az mplayer futtatása dxr3 kimenettel és az átlapolás bekapcsolása nélkül futtasd a dxr3view-t. A dxr3view-ban állíthatsz az átlapolási beállításokon és láthatod az effekteket valós időben, talán ezt a funkciót az MPlayer GUI is támogatni fogja a jövőben. Ha az átlapolás megfelelően be lett állítva, többet nem kell használnod a dxr3view-t. A `prebuf` bekapcsolja az előbufferelést. Az előbufferelés az em8300 chip egy olyan képessége, mellyel egynél több képkockát tud megtartani egy időben. Ez azt jelenti, hogy ha előbuffereléssel futtatod az MPlayert, az megpróbálja folyamatosan tele tartani a videó buffert adatokkal. Ha lassú gépen vagy, az MPlayer közel vagy pontosan 100% CPU kihasználtságot fog okozni. Ez különösen gyakori ha egyszerű MPEG streamet játszasz le (pl. DVD-k, SVCD-k, stb.), mivel ekkor az MPlayernek nem kell újrakódolnia MPEG-be, és nagyon gyorsan tölti a buffert. Az előbuffereléssel a videó lejátszás sokkal kevésbé érzékeny az többi program CPU foglalására, nem fog képkockát eldobni, hacsak az alkalmazások nem foglalják túl hosszú ideig a CPU-t. Ha előbufferelés nélkül futtatod, az em8300 sokkal érzékenyebb a CPU terhelésre, így nagyon javasolt, hogy használd az MPlayer `-framedrop` kapcsolóját a további szinkronvesztés elkerüléséhez. A `sync` bekapcsolja az új szinkron-motort. Ez jelenleg még egy tesztelés alatt lévő képesség. A bekapcsolt szinkron tulajdonsággal az em8300 belső órája folyamatosan figyelve lesz, és ha eltér az MPlayer órájától, resetel, ezzel az em8300-t az összes hátralévő képkocka eldobására kényszeríti. A `norm=x` beállítja a DXR3 kártya TV normáját külső segédeszköz, pl. em8300setup nélkül. A helyes norma értékek: 5 = NTSC, 4 = PAL-60, 3 = PAL. Speciális norma a 2 (auto-beállítás PAL/PAL-60 használatával) és az 1 (auto-beállítás PAL/NTSC használatával) mivel ezek a film képkocka rátájának segítségével állapítják meg a normát. A norm = 0 (alapértelmezett) nem változtat a jelenlegi normán. `eszköz` = a használni kívánt eszköz száma több em8300 kártya esetén. Ezen opciók bármelyike elhagyható. `:prebuf:sync` látszólag nagyszerűen működik MPEG-4 (DivX) filmek lejátszásakor. Többen problémákról számoltak be MPEG-1/2 fájlok lejátszásakor bekapcsolt prebuf esetén. Először mindenféle opció nélkül nézd meg, majd ha szinkron vagy DVD felirat problémáid vannak, adj egy esélyt a `:sync`-nek.

`-ao oss:/dev/em8300_ma-X`

  Audió kimenethez, ahol az X az eszköz száma (0 ha egy kártya).

`-af resample=xxxxx`

  A em8300 nem tud lejátszani 44100Hz-nél alacsonyabb mintavételű hangot. Ha a mintavételi ráta 44100Hz alatt van, válassz 44100Hz-et vagy 48000Hz-et, attól függően, hogy melyik van közelebb. Pl. ha egy film 22050Hz-et használ, válaszd a 44100Hz-et, mivel 44100 / 2 = 22050, ha 24000Hz-et, válaszd a 48000Hz-et, mert 48000 / 2 = 24000 és így tovább. Ez nem működik digitális audió kimenettel (`-ac hwac3`).

`-vf lavc`

  Nem-MPEG tartalom em8300-on történő nézéséhez (pl. MPEG-4 (DivX) vagy RealVideo) meg kell adnod egy MPEG-1 videó szűrőt, mint pl. a libavcodec (lavc). Lásd a man oldalt a további infókért a `-vf lavc` kapcsolóról. Jelenleg nem lehet az em8300 fps értékét módosítani, ami azt jelenti, hogy fixen 30000/1001 fps. Emiatt javasolt a `-vf lavc=minőség:25` kapcsoló használata, különösen ha előbufferelést használsz. Hogy miért 25 és nem 30000/1001? Nos, a dolog úgy áll, hogy ha 30000/1001-et használsz, a kép kicsit ugrálós lesz. Ennek az okát nem tudjuk. Ha beállítod valahova 25 és 27 közé, a kép stabillá válik. Jelenleg mást nem tehetünk, elfogadjuk ezt tényként.

`-vf expand=-1:-1:-1:-1:1`

  Habár a DXR3 vezérlő tud némi OSD-t tenni az MPEG-1/2/4 videóra, sokkal rosszabb minősége van, mint az MPlayer tradícionális OSD-jének és számos frissítési problémája is van. A fenti parancssor először is átkonvertálja a bemeneti videót MPEG-4-be (ez szükséges, bocs), majd alkalmazza rá az expand szűrőt, ami nem terjeszt ki semmit (-1: alapértelmezett), de a normális OSD-t teszi a képre (ezt csinálja az "1" a végén).

`-ac hwac3`

  A em8300 támogatja az AC-3 audió lejátszását (térhatású hang) a kártya digitális audió kimenetén keresztül. Lásd a `-ao oss` kapcsolót fent, a DXR3 kimenetének meghatározására használható a hangkártya helyett.

## Zr

Ez egy képernyő-vezérlő (`-vo zr`) számos MJPEG mentő/lejátszó kártyához (DC10+ és Buz-zal tesztelve, és működnie kell LML33, a DC10 esetén is). A vezérlő úgy működik, hogy kódolja a képkockát JPEG-be majd kiküldi a kártyára. A JPEG kódoláshoz a libavcodec-et használja, ami ezért szükséges hozzá. Egy speciális cinerama móddal igazi nagyképernyőn nézhetsz filmeket, feltéve, hogy két felvevőd és két MJPEG kártyád van. A felbontástól és a minőségi beállításoktól függően ez a vezérlő rengeteg CPU erőt igényel, ne felejtsd el megadni a `-framedrop` kapcsolót, ha lassú a géped. Megjegyzés: Az én AMD K6-2 350MHz-es gépem (`-framedrop`-pal) eléggé elfogadható volt VCD méretű anyag nézésekor és leméretezett filmnél.

Ez a vezérlő a címen található kernel vezérlővel társalog, így először ezt kell beizzítanod. Az MJPEG kártya jelenléte automatikusan detektálva lesz a `configure` script által, ha ez nem sikerül, kényszerítsd a detektálásra a

    ./configure --enable-zr

kapcsolóval.

A kimenet számos kapcsolóval szabályozható, a kapcsolók hosszú leírással megtalálhatóak a man oldalon, egy rövidebb listát a

    mplayer -zrhelp

parancs lefuttatásával kaphatsz.

Az olyan dolgokat, mint méretezés és OSD (on screen display) ez a vezérlő nem kezeli, de megoldhatóak videó szűrőkkel. Például tegyük fel, hogy van egy filmed 512x272-es felbontással és teljes képernyőn akarod nézni a DC10+-eden. Három lehetőséged van, méretezned kell a filmet 768, 384 vagy 192-es szélességre. Teljesítmény és minőségi okokból én a 384x204-re való méretezést választanám, gyors bilineáris szoftveres méretező használatával. A parancssor:

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

A levágás a `crop` szűrő segítségével valósítható meg és magával a vezérlővel. Feltéve, hogy a film túl széles a megjelenítéshez a Buz-odon és hogy a `-zrcrop`-ot akarod használni a film szűkítéséhez, a következő parancs a te barátod:

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

Ha használni akarod a `crop` szűrőt, ez kell:

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

Extra esetben a `-zrcrop` meghívja a cinerama módot, pl. a filmet több TV vagy beamer között sugározhatod egy nagyobb kép létrehozásához. Feltéve, hogy két beamer-ed van. A bal oldali a Buz-odhoz csatlakozik a `/dev/video1`-en, a jobb oldali a DC10+-odhoz a `/dev/video0`-án. A film felbontása 704x288. Továbbá tegyük fel azt is, hogy a jobb beamer-t fekete-fehéren szeretnéd, a balnak pedig 10-es minőségű JPEG képeket kell adnia. Ekkor a következő parancsot kell használnod:

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

Láthatod, hogy a második `-zrcrop` előtt feltűnő opciók csak a DC10+-re, a második `-zrcrop` után lévők csak a Buz-ra vonatkoznak. A cinerama-ban használható MJPEG kártyák maximális száma négy, így egy 2x2-es vidi-falat építhetsz.

Végül egy fontos megjegyzés: Ne indítsd el vagy állítsd meg a XawTV-t a lejátszó eszközön a lejátszás alatt, ez összeomlasztja a számítógépedet. Legjobb ELŐSZÖR elindítani a XawTV-t, EZUTÁN elindítani az MPlayert, várni, míg az MPlayer végez, és EZUTÁN megállítani a XawTV-t.

## Blinkenlights

Ez a vezérlő képes a lejátszásra a Blinkenlights UDP protokol felhasználásával. Ha nem tudod, hogy mi az a Blinkenlights, vagy az utóda az Arcade, nézz utána. Habár ez a legutoljára használt videó kimeneti vezérlő, kétségkívül ez a legjobb, amit az MPlayer nyújtani tud. Csak nézz meg pár Blinkenlights dokumentációs videót. Az Arcade videóban láthatod a Blinkenlights kimeneti vezérlőt akcióban a 00:07:50-en.

## TV-kimenet támogatás

### Matrox G400 kártyák

Linux alatt két módon bírhatod működésre a G400 TV kimenetét:

a Matrox G450/G550 TV-kimenet utasításaiért lásd a következő részt!

XFree86

  A vezérlő és a HAL modul használatával, mely elérhető a Matrox oldalán. Ezzel X-et kapsz a TV-n.

  Ez a módszer nem nyújt gyorsított lejátszást Windows alatt! A második fejnek csak YUV framebuffer-e van, a BES (Back End Scaler, a YUV méretező a G200/G400/G450/G550 kártyákon) nem működik rajta! A Windows-os vezérlők ezt valahogy megkerülik, talán 3D motort használnak a nagyításhoz és a YUV framebuffer-t a nagyított képek megjelenítéséhez. Ha tényleg X-et akarsz használni, válaszd a `-vo x11 -fs -zoom` kapcsolókat, de LASSÚ lesz, és Macrovision másolásvédelem van rajta (ezzel a Perl script-tel "megkerülheted" a Macrovisiont).

Framebuffer

  A 2.4-es kernelekben lévő matroxfb modulok használatával. A 2.2-es kernel-ekben nincs TV-out tulajdonság hozzájuk, így használhatatlanok erre. Engedélyezned kell az ÖSSZES matroxfb-specifikus tulajdonságot a fordítás alatt (kivéve a MultiHead-et) és modulokba kell fordítanod! Az I2C-t is engedélyezned kell és a matroxset, fbset és con2fb eszközöknek az elérési úton kell lenniük.

  - Majd töltsd be a matroxfb_Ti3026, matroxfb_maven, i2c-matroxfb, matroxfb_crtc2 modulokat a kerneledbe. A szöveges-módú konzolod framebuffer módba vált (nincs visszaút!).

  - Ezután állítsd be a monitorod és a TV-t a kedvednek megfelelően a fenti eszközökkel.

  - Yoh. A következő dolog, hogy a kurzort eltűntesd a tty1-ről (vagy akármiről) és kikapcsold a képernyő törlést. Futtasd le a következő parancsokat:

        echo -e '\033[?25l'
        setterm -blank 0

    vagy

        setterm -cursor off
        setterm -blank 0

    A fentieket valószínűleg beleírod egy script-be, egy képernyő törléssel együtt. A kurzor visszakapcsolása:

        echo -e '\033[?25h'

    vagy

        setterm -cursor on

  - Yeah sirály. Indítsd el a film lejátszást:

        mplayer -vo mga -fs -screenw 640 -screenh 512 filename

    (Ha X-et használsz, most válts át matroxfb-re, például a Ctrl Alt F1 gombokkal.) Változtasd meg a `640`-et és az `512`-t, ha másra állítottad a felbontást...

  - Élvezd az ultra-gyors ultra-különleges Matrox TV kimenetet (jobb mint az Xv)!

### Matrox G450/G550 kártyák

A TV kimenet támogatása ezeken a kártyákon csak nemrég jelent meg, és még nincs a a fő kernelben. Jelenleg az mga_vid modul nem használható AFAIK, mert a G450/G550-es vezérlő csak egy konfigurációban működik: az első CRTC chip (a sokkal több képességgel) az első képernyőn (a monitoron) és a második CRTC (nincs BES - a BES magyarázatához lásd a G400-as részt fent) TV-n. Így csak az MPlayer fbdev kimeneti vezérlőjét használhatod jelenleg.

Az első CRTC nem irányítható át a második fejre jelenleg. A matroxfb kernel vezérlő szerzője - Petr Vandrovec - talán készít támogatást ehhez, az első CRTC kimenetét egyszerre mindkét fejen megjelenítve, mint ahogy most is javasolt a G400-on, lásd a fenti részt.

A szükséges kernel javítás és a bővebb HOWTO letölthető:

### Matrox TV-kimeneti kábel készítése

Senki sem vállal ezért semmilyen felelősséget, sem garanciát bármilyen, ezen leírásból származó kárért.

Kábel a G400-hoz

A CRTC2 csatlakozójának negyedik pin-je a kompozit videó jel. A földelés a hatodik, hetedik és nyolcadik pin. (az infót Rácz Balázs adta)

Kábel a G450-hez

A CRTC2 csatlakozójának első pin-je a kompozit videó jel. A földelés az ötödik, hatodik, hetedik és tizenötödik (5, 6, 7, 15) pin. (az infót Kerekes Balázs adta)

### ATI kártyák

BEVEZETÉS

Jelenleg az ATI nem akarja támogatni semelyik TV-out chip-jét sem Linux alatt, a licenszelt Macrovision technológiájuk miatt.

ATI KÁRTYÁK TV-KIMENETÉNEK ÁLLAPOTA LINUXON

- ATI Mach64: támogatja a GATOS.

- ASIC Radeon VIVO: támogatja a GATOS.

- Radeon és Rage128: támogatja az MPlayer! Lásd a VESA vezérlő és a VIDIX részt.

- Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: támogatja az atitvout.

Egyéb kártyák esetében lásd a VESA vezérlőt, VIDIX nélkül. Bár ehhez erős CPU kell.

Az egyeten dolog, amit tenned kell - Be kell dugnod a TV csatlakozóját, mielőtt bekapcsolnád a PC-t mivel a videó BIOS csak egyszer, a POST folyamat során inicializálja magát.

### nVidia

Először le KELL töltened a zárt-forrású vezérlőt az -ról. Nem írom le a telepítés és a konfiguráció lépéseit, mert ez nem tartozik ezen dokumentáció céljához.

Miután az XFree86, az XVideo és a 3D gyorsítás is megfelelően működik, írd át a kártya Device részét az `XF86Config` fájlban, a következő példának megfelelően (a te kártyádhoz/TV-dhez igazítva):

    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

Természetesen a legfontosabb a TwinView rész.

### NeoMagic

A NeoMagic chip számos laptop-ban megtalálható, pár közülük egy egyszerű analóg TV kódolóval van felszerelve, mások sokkal fejlettebbel rendelkeznek.

- Analóg kódoló chip: A visszajelzések szerint megbízható TV kimenet a `-vo fbdev` vagy `-vo fbdev2` kapcsolókkal érhető el. Kernelbe forgatott vesafb szükséges és a következő paramétereket kell megadni a kernel parancssorában: `append="video=vesafb:ywrap,mtrr" vga=791`. Ajánlott elindítani az X-et, majd átváltani konzol módba pl. a Ctrl Alt F1-gyel. Ha nem sikerül elindítani az X-et az MPlayer konzolból történő elindítása előtt, a videó lassú és zavaros lesz (a magyarázatokat szívesen fogadjuk). Jelentkezz be a konzolodra majd add ki a következő parancsot:

      clear; mplayer -vo fbdev -zoom -cache 8192 dvd://

  Ezután a filmet konzol módban, kb. a laptop LCD képernyőjének felét kitöltve kell látnod. A TV-re váltáshoz nyomd meg az Fn F5-öt háromszor. Tesztelve Tecra 8000-en, 2.6.15 kernel vesafb-vel, ALSA v1.0.10-en.

- Chrontel 70xx kódoló chip: Az IBM Thinkpad 390E és talán más Thinkpad-okban és notebook-okban található.

  A `-vo vesa:neotv_pal`-t kell használnod a PAL-hoz vagy a `-vo vesa:neotv_ntsc`-t az NTSC-hez. TV kimenetet biztosít az alábbi 16 bpp és 8 bpp módokban:

  - NTSC 320x240, 640x480 és talán 800x600 is.

  - PAL 320x240, 400x300, 640x480, 800x600.

  Az 512x384-es módot nem támogatja a BIOS. Át kell méretezned a képet egy másik felbontásra a TV kimenet aktiválásához. Ha egy képet látsz a képernyőn 640x480-ban vagy 800x600-ban, de semmit 320x240-ben vagy kisebb felbontáson, ki kell cserélned két táblázatot a `vbelib.c` fájlban. Lásd a vbeSetTV függvényeket a részletekért. Kérlek keresd meg a szerzőt ebben az esetben.

  Ismert dolgok: Csak VESA, semmilyen más beállítás, pl. fényesség, kontraszt, blacklevel, flickfilter nincs implementálva.