Videó kimeneti eszközök Az MTRR beállítása NAGYON javasoljuk, hogy ellenőrizd le, hogy az MTRR regiszterek megfelelően be vannak-e állítva, mert hatalmas teljesítményjavulást hozhatnak. Írd be: 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 Ez jó, mutatja a 16 MB memóriával rendelkező Matrox G400-as kártyámat. Ezt XFree 4.x.x-ből csináltam, ami automatikusan beállítja az MTRR regisztereket. Ha semmi sem működik, kézzel kell beállítanod. Először meg kell találnod a bázis címet. 3 módszer van a megtalálására: az X11 indulási üzeneteiből, például: (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 (--) SVGA: Linear framebuffer at 0xD8000000 a /proc/pci fájlból (használd az lspci -v parancsot): 01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 Memory at d8000000 (32-bit, prefetchable) az mga_vid kernel vezérlő üzeneteiből (használd a dmesg-et): mga_mem_base = d8000000 Ezután keresd meg a memória méretét. Ez nagyon egyszerű, csak számold át a videó RAM méretét hexadecimálisra, vagy használd ezt a táblázatot: 1 MB0x100000 2 MB0x200000 4 MB0x400000 8 MB0x800000 16 MB0x1000000 32 MB0x2000000 Már tudjuk a bázis címet és a memória méretét, hát állítsuk be az MTRR regisztereket! Például a fenti Matrox kártyánál (base=0xd8000000) 32MB RAM-mal (size=0x2000000) csak futtasd ezt: echo "base=0xd8000000 size=0x2000000 type=write-combining" > /proc/mtrr Nem minden CPU-ban van MTRR. Például a régebbi K6-2 (266MHz körül, stepping 0) CPU-kban nincs MTRR, de a stepping 12-ben van (futtasd le a cat /proc/cpuinfo parancsot az ellenőrzéshez). Videó kimenet tradícionális videó kártyákhoz 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 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: XFree86 4.0.2 vagy újabbat kell használnod (korábbi verziókban nincs XVideo) A kártyádnak támogatnia kell a hardveres gyorsítást (a modern kártyák tudják) 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! 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. É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 3dfx kártyák A régebbi 3dfx vezérlőknek tudvalevőleg problémáik vannak az XVideo gyorsítással, nem támogatják a YUY2 és YV12 színtereket. Nézd meg, hogy 4.2.0 vagy újabb XFree86-tal rendelkezel-e, ez jól kezeli a YV12-őt és a YUY2-őt, míg a korábbi verziók beleértve a 4.1.0-t is, összeomlanak az YV12-vel. Ha különös effekteket tapasztalsz a használatakor, próbáld ki az SDL-t (ebben is van XVideo) és nézd meg, hogy ez segít-e. Lásd az SDL fejezetet a részletekért. VAGY, próbáld ki az ÚJ vezérlőt! Lásd a tdfxfb részt. S3 kártyák Az S3 Savage3D nem működik megfelelően, de a Savage4 igen 4.0.3 vagy újabb XFree86 használata mellett (képhibák esetén próbáld 16bpp-vel). Ami az S3 Virge-eket illeti: van xv támogatás, de maga a kártya túl lassú, így jobb, ha eladod. Már van natív framebuffer vezérlő az S3 Virge kártyákhoz, hasonlóan a tdfxfb-hez. Állítsd be a framebuffer-ed (pl. add hozzá a "" opciót a kernel parancssorához) és használd a opciót ( és szintén segíthet). Jelenleg nem tisztázott, hogy mely Savage modellekből hiányzik a YV12 támogatás, és konvertál a vezérlő (lassú). Ha a kártyára gyanakodsz, szerezz be egy újabb vezérlőt, vagy udvariasan kérj az MPlayer-users levelezési listán egy MMX/3DNow! támogatású vezérlőt. nVidia kártyák Az nVidia nem mindig a legjobb választás Linux alatt... Az XFree86 nyílt forráskódú vezérlője támogatja a legtöbb kártyát, de a legtöbb esetben a bináris, zárt forrású nVidia vezérlőt kell használnod, ami elérhető az nVidia weboldalán. Erre a vezérlőre mindenképpen szükséged lesz, ha 3D gyorsítást akarsz. A Riva128 kártyákkal nincs XVideo támogatás az XFree86 nVidia vezérlőjével :( Panaszkodj az nVidia-nak. Habár az MPlayer a legtöbb nVidia kártyához rendelkezik VIDIX vezérlővel. Jelenleg még béta állapotú, és van pár bökkenője. További információkért lásd az nVidia VIDIX részt. ATI kártyák A GATOS vezérlő (amit használnod illene, hacsak nem Rage128 vagy Radeon kártyád van) alapértelmezésként engedélyezi a VSYNC-et. Ez azt jelenti, hogy a dekódolási sebesség (!) a monitor frissítési rátájához van szinkronizálva. Ha a lejátszás lassúnak tűnik, próbáld meg valahogy kikapcsolni a VSYNC-et vagy állítsd be a frissítést n*(film fps értéke) Hz-re. A Radeon VE - ha X kell, használj XFree 4.2.0-t vagy újabbat ehhez a kártyához. Nincs TV kimenet támogatás. Természetesen az MPlayerrel simán is gyorsított megjelenítést kapsz, TV kimenettel vagy anélkül, és így sem függvénykönyvtárra sem X-re nincs szükség. Olvasd el a VIDIX részt. NeoMagic kártyák Ilyen kártyák általában laptopokban találhatóak. XFree86 4.3.0 vagy újabbat kell használnod, vagy Stefan Seyfried Xv-t támogató vezérlőjét. Csak válaszd ki az te XFree86-odhoz illő verziót. Az XFree86 4.3.0-ban van Xv támogatás, Bohdan Horst pedig küldött egy kis javítást az XFree86 forrásához, ami a framebuffer műveleteket felgyorsítja (XVideo-t is) akár négyszeresére is. A javítás belekerült az XFree86 CVS-ébe és a 4.3.0 utáni következő kiadásban is benne lesz. A DVD méretű tartalmak lejátszásához az XF86Config-odat módosítanod kell: Section "Device" [...] Driver "neomagic" Option "OverlayMem" "829440" [...] EndSection Trident kártyák Ha az Xv-t Trident kártyával akarod használni, feltéve hogy nem megy 4.1.0-val, telepítsd fel az XFree 4.2.0-t. A 4.2.0-ban teljes képernyős Xv támogatás van a Cyberblade XP kártyával. Alternatívaként az MPlayer is tartalmaz egy VIDIX vezérlőt a Cyberblade/i1 kártyához. Kyro/PowerVR kártyák Ha az Xv-t Kyro alapú kártyával akarod használni (például Hercules Prophet 4000XT-vel), akkor le kell töltened a vezérlőt a PowerVR oldaláról 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 kapcsolóval. Ha a vezérlő nem tud kisebb felbontásra váltani, kísérletezz a (csak X 3.3.x esetén), , , 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 kapcsolót, és már megy is! (reméljük:) Kipróbálhatod a 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 () és a DGA vezérlőben (). 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 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 és 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 és kapcsolókkal. A 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 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 kapcsolóval, vagy letiltható a -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 CtrlAltKeypad + és CtrlAltKeypad - 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). SDL Az SDL (Simple Directmedia Layer) tulajdonképpen egy egységesített videó/audió interfész. Az ezt használó programok csak az SDL-ről tudnak, arról nem, az hogy milyen videó és audió vezérlőt használ. Például egy SDL-t használó Doom port futhat svgalib, aalib, X, fbdev és még más vezérlők segítségével, de neked csak (például) a videó vezérlőt kell megadnod az SDL_VIDEODRIVER környezeti változóval. Legalábbis elméletben. Az MPlayerrel mi az X11 vezérlő szoftveres képméretező képességét használtuk XVideo-t nem támogató kártyák/vezérlők esetén, amíg el nem készült a mi saját (gyorsabb, szebb) szoftveres méretezőnk. Használtuk az aalib kimeneti képességét is, de most már abból is van saját, ami sokkal komfortosabb. A DGA módja jobb volt a mienkénél, legalábbis a közelmúltig. Vágod? :) Segít pár hibás vezérlő/kártya esetén is, ha a videó szaggatott (nem lassú rendszer miatt) vagy az audió késett. Az SDL videó kimenet támogatja a feliratok megjelenítését a film alatt, a (ha van) fekete soron. 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 kapcsolót, mert bekapcsolja a szoftveres méretezést és lassú. Ha tényleg szükség van rá, használd a 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: 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ő: . Nálam szükséges volt az audió mintavételi ráta csökkentése is, mert a hang szétesett 44kHz-en: . Csak az 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: megadhatod a használni kívánt framebuffer eszközt (alapértelmezett: /dev/fb0) használni kívánt mód neve (a /etc/fb.modes fájlnak megfelelően) módokat tartalmazó konfigurációs fájl (alapértelmezett: /etc/fb.modes) 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 kiválasztja a legmegfelelőbb módot a /etc/fb.modes fájlból. Használható együtt a és kapcsolókkal is. A 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 kapcsolóval, akkor azt. A kapcsoló nem támogatott (használd a -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ó: . Telepítés: A használatához először mga_vid.o-t kell forgatnod: cd drivers make Ezután futtasd (root-ként) a make install 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 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 kapcsolóval használhatod, ha matroxfb konzolod van vagy a -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 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 tdfx_vid.o fájlt: cd drivers make Ezután futtasd (root-ként) a make install 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: GombMű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: OSD színének megváltoztatása 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: Beállítja a javasolt aa vezérlőt (X11, curses, Linux). Mind a 256 karakter használata. Nyolc bites ASCII. 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 kapcsolót is a hgafb-en megjelenő grafikához :) A 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 (). 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. <systemitem class="library">libcaca</systemitem> - 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 <systemitem class="library">AAlib</systemitem>-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 <systemitem class="library">libcaca</systemitem>-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: GombMű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 <systemitem class="library">libcaca</systemitem> figyel pár környezeti változót is: Állítsd be a javasolt caca vezérlőt, pl. ncurses, slang, x11. Megadja a sorok és oszlopok számát, pl. 128x50. Megadja a használni kívánt betűtípust, pl. fixed, nexus. Használd a 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 -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ő. Ne használd ezt a vezérlőt GCC 2.96-tal! Nem fog menni! A VESA PARANCSSORI KAPCSOLÓI 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 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 AltF<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 kapcsolókat. A legtöbb hardverben benne van a hardveres méretezés támogatása, használd a kimenetet hozzá vagy a -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 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 CtrlAltKeypad + és CtrlAltKeypad - 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: . 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ő: . 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 vagy 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 -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: (csak Linux) és . 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 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 (), 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 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 -et illeti, most csak a következő kapcsolókat ismeri: . 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. 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.17-es) fejlesztői verzióját, VAGY az Alex által speciálisan az MPlayerrel történő használatra készítettet (a lefordításához nem kell az svgalib forrás) innen. 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. Mozgasd át az svgalib_helper könyvtárat az mplayer/main/libdha/svgalib_helper-be. Töröld a megjegyzést az "svgalib_helper"-t tartalmazó CFLAGS sor elől a libdha/Makefile-ban. Fordítsd újra és telepítsd a libdha-t. 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 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 kapcsoló használatával. A réteg választás egy aleszköz módszerével történhet, pl.: (-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 Ha ost fejléc fájlaid vannak egy nem szabványos elérési útvonalon, add meg: ./configure --with-extraincdir=DVB forrás könyvtár/ost/include 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 kapcsolóval és a kívánt szélesség és magasság megadásával a 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 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 vagy helyett írj -et (az ötödik paraméter, a 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 kapcsolót ennek beállításához (a 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 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 scannek, 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, vagy az MPlayer a következő nézhetőig ugrik, de ez sokáig tart, ha egymás után sok kódolt csatorna van. Az audió és a videó mezőkidben használhatsz kiterjesztett szintaxist: (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). Javasolt a PMT pid bevétele minden sorba a megfelelő csatornáknál (ha tudod). 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, próbáld meg használni a libavformat-ban lévő MPEG-TS demuxer-t a 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. 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, valamint a nem-25fps-es filmek sokkal folyékonyabb lejátszását és a valós idejű átkódolást MPEG-2 és MPEG-4 között (részleges kitömörítés). 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 TV kimenet engedélyezése. vagy Átlapolásos kimenet bekapcsolása X11-en. 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 configurenak automatikusan meg kell találnia a kártyádat, és a fordításnak hiba nélkül le kell futnia. HASZNÁLAT Az az átlapolást aktiválja a TVOut 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 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 kapcsolóját a további szinkronvesztés elkerüléséhez. A 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 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. = a használni kívánt eszköz száma több em8300 kártya esetén. Ezen opciók bármelyike elhagyható. 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 -nek. Audió kimenethez, ahol az X az eszköz száma (0 ha egy kártya). 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 (). 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 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 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. 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). A em8300 támogatja az AC3 audió lejátszását (térhatású hang) a kártya digitális audió kimenetén keresztül. Lásd a kapcsolót fent, a DXR3 kimenetének meghatározására használható a hangkártya helyett. Egyéb vizualizációs hardverek Zr Ez egy képernyő-vezérlő () 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 kapcsolót, ha lassú a géped. Megjegyzés: Az én AMD K6-2 350MHz-es gépem (-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 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 -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 szűrőt, ez kell: mplayer -vo zr -vf crop=720:320:80:0 benhur.avi Extra esetben a 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 előtt feltűnő opciók csak a DC10+-re, a második 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 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 TVout 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 engedélyezett I2C-re is szükséged lesz. Lépj be a TVout-ba és írd be: ./compile.sh. Telepítsd a TVout/matroxset/matroxset-et valahova a PATH-odon belülre. Ha nincs telepítve fbset-ed, tedd a TVout/fbset/fbset-et valahova a PATH-odba. Ha nincs con2fb-ed telepítve, tedd a TVout/con2fb/con2fb-t valahova a PATH-odba. Majd lépj be a TVout/ könyvtárba az MPlayer forrásában és futtasd le a ./modules-t root-ként. A szöveges módú konzolod átvált framebuffer módba (nincs visszaút!). Ezután ÍRD ÁT és futtasd a ./matroxtv script-et. Ez egy roppant egyszerű menüt kínál neked. Nyomd meg a 2-est és az Enter-t. Most már ugyan azt a képet kell látnod a monitorodon és a TV-n. ha a TV (PAL alapértelmezettként) képén furcsa csíkok vannak, a script nem tudta beállítani jól a felbontást (640x512-ra alapesetben). Próbálj meg másik felbontást a menüből és/vagy kísérletezz az fbset-tel. 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 CtrlAltF1 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 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) 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ő: 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 vagy kapcsolókkal érhető el. Kernelbe forgatott vesafb szükséges és a következő paramétereket kell megadni a kernel parancssorában: . Ajánlott elindítani az X-et, majd átváltani konzol módba pl. a CtrlAltF1-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 FnF5-ö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 -t kell használnod a PAL-hoz vagy a -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.