Výstupní video zařízení/rozhraníNastavení MTRR
VELMI doporučujeme skontrolovat, zda jsou MTRR registry
správně nastaveny, jelikož mohou velice zvýšit výkon.
Proveďte 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
Takto to správně ukazuje má Matrox G400 se 16MB paměti. Provedl jsem to z
XFree 4.x.x, které nastavuje MTRR registry automaticky.
Pokud nic nefunguje, budete to muset udělat ručně. Nejprve musíte najít
bázovou adresu. Máte tři možnosti, jak ji zjistit:
ze startovacích informací X11, například:
(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
(--) SVGA: Linear framebuffer at 0xD8000000
z /proc/pci (použijte příkaz lspci -v
):
01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
Memory at d8000000 (32-bit, prefetchable)
ze zpráv jaderného modulu mga_vid (použijte dmesg):
mga_mem_base = d8000000
Pak zjistěte velikost paměti. Je to velmi snadné, stačí převést velikost
video RAM do hexadecimální soustavy, nebo použijte následující tabulku:
1 MB0x1000002 MB0x2000004 MB0x4000008 MB0x80000016 MB0x100000032 MB0x2000000
Pokud znáte bázovou adresu a velikost paměti, začněme nastavovat MTRR registry!
Například pro výše uvedenou kartu Matrox (base=0xd8000000)
s 32MB RAM (size=0x2000000) stačí spustit:
echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr
Ne všechny procesory mají MTRR. Například starší CPU K6-2 (okolo 266MHz,
stepping 0) nemají MTRR, ale stepping 12 je mají
(pro ověření spusťte cat /proc/cpuinfo).
Video výstupy pro tradiční video kartyXv
Pod XFree86 4.0.2, nebo novějším, můžete použít hardwarové YUV rutiny karty
pomocí rozšíření XVideo. Přesně toto používá volba
''. Toto rozhraní také podporuje nastavování
jasu/kontrastu/barevného tónu atd. (pokud nepoužíváte strarý, pomalý DirectShow
DivX kodek, který to podporuje všude), viz man stránka.
Abyste to zprovoznili, ujistěte se o následujícím:
Musíte používat XFree86 4.0.2 nebo novější (předchozí verze nemají XVideo)
Vaše karta aktuálně podporuje hardwarovou akceleraci (moderní karty ano)
X nahrává rozšíření XVideo. Zpráva ve /var/log/XFree86.0.log
vypadá asi takto:
(II) Loading extension XVideo
Takto se nahraje pouze rozšíření pro XFree86. To je v dobré instalaci nahráno
vždy a neznamená to, že je načtena i podpora XVideo pro
kartu!
Vaše karta má podporu Xv pod Linuxem. Abyste si to ověřili, zkuste
xvinfo, které je součástí distribuce XFree86. Měl by se
vypsat dlouhý text podobný tomuto:
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)
(...atd...)
Musí podporovat pixelové formáty YUY2 packed a YV12 planar, aby byla
použitelná s MPlayerem.
A nakonec si ověřte, jestli byl MPlayer skompilován
s podporou 'xv'. Proveďte mplayer -vo help | grep xv .
Pokud byla skompilována podpora 'xv', měl by se objevi řádek podpobný tomuto:
xv X11/XvKarty 3dfx
Starší ovladače 3dfx byly známy svými problémy s XVideo akcelerací.
Nepodporovaly ani YUY2 ani YV12, atp. Ověřte, že máte XFree86
verze 4.2.0 nebo vyšší, které pracuje dobře s YV12 a YUY2. Předchozí verze,
včetně 4.1.0, padá s YV12.
Pokud zažívate podivné situace při používání , zkuste SDL
(má rovněž XVideo) a uvidíte, zda to pomůže. Prostudujte si sekci
SDL pro více informací.
NEBO, zkuste NOVÉ
rozhraní! Viz sekce
tdfxfb.
Karty S3
S3 Savage3D by měly fungovat dobře, ale pro Savage4 použijte XFree86 verze 4.0.3
nebo vyšší (v případě problémů s obrazem, zkuste 16bpp). Stejně ajko S3 Virge:
má sice podporu xv, ale karta samotná je velmi pomalá, takže ji raději prodejte.
Pro karty S3 Virge nyní existuje nativní framebuffer ovladač podobný
tdfxfb. Nastavte si framebuffer (čili přidejte
"" do kernelu) a použijte
( a
rovněž pomůžou).
Zatím není jasné, kterým modelům Savage chybí podpora YV12 a konvertují
ovladačem (pomalé). Pokud podezříváte kartu, opatřete si novější ovladač, nebo
slušně požádejte v konferenci MPlayer-users o ovladač s MMX/3DNow!.
Karty nVidia
nVidia není vždy pod Linuxem nejlepší volbou... Open-source ovladač
v XFree86 podporuje většinu těchto karet, ale v některých případech musíte
použít binární closed-source ovladač od nVidie, který je k dispozici na
serveru nVidia.
Tento ovladač budete potřebovat vždy, pokud zároveň chcete 3D akceleraci.
Karty Riva128 nemají podporu XVideo v nVidia ovladači z XFree86 :(
Stěžujte si nVidii.
Ačkoli MPlayer obsahuje
VIDIX ovladač pro většinu nVidia karet, zatím je
ve stavu beta verze a má jisté nedostatky. Více informací naleznete v sekci
nVidia VIDIX.
Karty ATIOvladač GATOS
(který byste měli použít, pokud nemáte Rage128 nebo Radeon) má zapnutý VSYNC
ve výchozím stavu. To znamená, že rychlost dekódování (!) je synchronizována
s obnovovacím kmitočtem monitoru. Pokud se vám zdá přehrávání pomalé, zkuste
nějak vypnout VSYNC, nebo nastavte obnovovací kmitočet na n*(snímková rychlost
filmu) Hz.
Radeon VE - pokud potřebujete X, použijte pro tuto kartu XFree86 4.2.0 nebo
vyšší. Není zde podpora pro TV out. Samozřejmě s
MPlayerem můžete mít s trochou štěstí
akcelerovaný display s nebo bez
TV výstupu a nepotřebujete žádné X knihovny.
Přečtěte si sekci VIDIX.
Karty NeoMagic
Tyto karty lze nalézt v mnoha laptopech. Musíte použít XFree86 4.3.0 nebo
vyšší, nebo použijte
ovladače s podporou Xv
od Stefana Seyfrieda.
Stačí vybrat ten, který je vhodný pro vaši verzi XFree86.
XFree86 4.3.0 obsahuje podporu Xv, avšak Bohdan Horst poslal malý
patch
pro zdrojový kód XFree86, který zrychluje operace s framebufferem (čili XVideo)
až čtyřikrát. Patch byl zařazen do XFree86 CVS a měl by být v další verzi
vydané po 4.3.0.
Abyste mohli přehrávat obsah velikosti DVD, změňte svůj XF86Config takto:
Section "Device"
[...]
Driver "neomagic"
Option "OverlayMem" "829440"
[...]
EndSectionKarty Trident
Chcete-li používat Xv s kartou Trident, což nepracuje s 4.1.0,
nainstalujte si XFree 4.2.0. 4.2.0 přidává podporu pro celoobrazovkové Xv
pro kartu Cyberblade XP.
Alternativně, MPlayer obsahuje
VIDIX ovladač pro kartu Cyberblade/i1.
Karty Kyro/PowerVR
Pokud chcete používat Xv s kartou založenou na čipu Kyro (například Hercules
Prophet 4000XT), měli byste si stáhnout ovladače z
PowerVR serveru.
DGAPŘEDMLUVA
Tento dokument se několika slovy snaží vysvětlit co je to DGA a co
výstupní videorozhraní DGA pro MPlayer
udělat může (a co ne).
CO JE DGA
DGA je zkratka pro Direct Graphics
Access, což je program pro obejití X servru a
přímou modifikaci paměti framebufferu. Technicky to znamená mapování paměti
framebufferu do paměťového prostoru vašeho procesu.
To kernel umožňuje pouze pokud máte práva superuživatele. Ty dostanete buď
nalogováním se jako root, nebo
nastavením SUID bitu spustitelnému souboru
MPlayeru (nedoporučujeme
).
Existují dvě verze DGA: DGA1 je používáno XFree 3.x.x a DGA2 bylo
představeno v XFree 4.0.1.
DGA1 poskytuje pouze přímý přístup k framebufferu jak byl popsán výše.
Chcete-li přepínat rozlišení videosignálu, musíte se spolehnout na
rozšíření XVidMode.
DGA2 zahrnuje vlastnosti rozšíření XVidMode a rovněž umožňuje přepínat
barevnou hloubku zobrazovače. Takže můžete jendoduše provozovat X server
s hloubkou 32 bitů a přepnout na barevnou hloubku 15 bitů a naopak.
DGA má ovšem i jisté obtíže. Zdá se, že je nějak závislé na grafickém čipu,
který používáte a na implementaci video ovladače X serveru, který tento čip
obsluhuje. Takže nefunguje na všech systémech...
INSTALACE PODPORY DGA PRO MPLAYER
Nejprve si ověřte, že X nahrávají rozšíření DGA, viz v
/var/log/XFree86.0.log:
(II) Loading extension XFree86-DGA
XFree86 4.0.x nebo vyšší je vřele doporučován!
Video rozhraní DGA MPlayeru je autodetekováno
./configure, nebo jej můžete vynutit pomocí
.
Pokud rozhraní nemůže přepnout do menšího rozlišení, experimentujte s
volbami (pouze s X 3.3.x), ,
, , abyste nalezli videorežim, do
kterého se video napasuje. Momentálně není žádný převodník :(
Staňte se rootem. DGA vyžaduje
práva roota, aby mohl přímo zapisovat do video paměti. Pokud jej chcete
provozovat jako uživatel, pak nainstalujte MPlayer
jako SUID root:
chown root /usr/local/bin/mplayer
chmod 750 /usr/local/bin/mplayer
chmod +s /usr/local/bin/mplayer
A nyní to bude pracovat také pod obyčejným uživatelem.
Bezpečnostní riziko
Toto je velké bezpečnostní riziko!
Nikdy to nedělejte na serveru nebo počítači
ke kterému mohou mít přístup ostatní lidé, jelikož ti mohou získat
superuživatelská práva díky SUID root
MPlayeru.
Nyní použijte volbu a je to! (doufám:)
Také byste měli vyzkoušet, jestli vám pracuje volba
!
Je mnohem rychlejší!
PŘEPÍNÁNÍ ROZLIŠENÍ
Rozhraní DGA umožňuje přepínání rozlišení výstupního signálu.
To odstraňuje potřebu (pomalého) softwarového škálování a zároveň
poskytuje obraz na celou obrazovku. Ideálně by se mělo přepnout na přesné
rozlišení (s výjimkou dodržení poměru stran) video dat, ale X
server umožňuje poze přepínání do rozlišení předdefinovaných v
/etc/X11/XF86Config
(nebo /etc/X11/XF86Config-4 pro XFree 4.X.X).
Ty jsou definovány takzvanými "modelines" a závisí na
schopnostech vašeho video hardwaru. X server projíždí tento konfigurační
soubor při startu a zakáže režimy (modelines) nevhodné pro váš hardware.
Povolené videorežimy naleznete v X11 log souboru. Tel lze nalézt zde:
/var/log/XFree86.0.log.
Tyto vstupy jsou známy dobrou funkcí na Riva128 čipu, s použitím modulu
ovladače nv.o X serveru.
Section "Modes"
Identifier "Modes[0]"
Modeline "800x600" 40 800 840 968 1056 600 601 605 628
Modeline "712x600" 35.0 712 740 850 900 400 410 412 425
Modeline "640x480" 25.175 640 664 760 800 480 491 493 525
Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan
Modeline "352x288" 25.10 352 368 416 432 288 296 290 310
Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan
Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan
EndSection
DGA & MPLAYER
DGA je v MPlayeru použito na dvou místech: SDL
rozhraní může být nastaveno pro jeho použití () a
přímé DGA rozhraní (). Výše uvedené je platné
pro obě varianty; v následující sekci vysvětlíme jak pracuje DGA rozhraní
MPlayeru.
VLASTNOSTI
DGA rozhraní je použito zadáním volby na příkazovém
řádku. Výchozím chováním je přepnout na rozlišení co nejbižší originálním
rozměrům videa. Zcela záměrně se ignorují volby a
(umožňující přepínání videorežimů a zobrazení na celou
obrazovku) - vždy zkouší pokrýt tak velkou plochu obrazovky, jak je to jen možné
pomocí přepnutí videorežimu, což nás oprostí od využívání dalších CPU cyklů
pro škálování obrazu. Pokud se vám nelíbí režim, který vybere automatika,
můžete ji přinutit pro výběr režimu nejblíže odpovídajícímu rozlišení,
které zadáte pomocí a .
Při zadání volby , vypíše DGA rozhraní, spolu s dalšími
věcmi, seznam všech rozlišení podporovaných vašim aktuálním
XF86Config souborem.
Máte-li DGA2, můžete jej rovněž přinutit použít různé barevné hloubky pomocí
volby . Platné barevné hloubky jsou 15, 16, 24 a 32.
To jestli jsou tyto barevné hloubky nativně podporovány, nebo musí být provedena
(pravděpodobně pomalá) konverze závisí na vašem hardware.
Pokud jste natolik šťastlivci, že máte dostatek volné mimoobrazové paměti,
aby se zde vměstnal celý obrázek, použije DGA rozhraní dvojitou vyrovnávací
paměť, což vám zajistí mnohem plynulejší přehrávání filmů. Rozhraní vás bude
informovat jestli je dvojitý buffer zapnutý nebo ne.
Dvojitou vyrovnávací pamětí se rozumí to, že je další snímek vykreslován do
paměti mimo zobrazovanou plochu, zatímco je zobrazován aktuální snímek.
Jakmile je další snímek připraven, grafický čip je informován o pozici v paměti,
kde je nový snímek a jednoduše přesune data k zobrazení odtud.
Mezitím je další buffer v paměti zaplňován novými videodaty.
Dvojitá vyrovnávací paměť může být zapnuta volbou
a vypnuta volbou
. Současná výchozí hodnota je vypnutí dvojité
vyrovnávací paměti. Při použití DGA rozhraní bude display na obrazovce (OSD)
pracovat pouze při zapnuté dvojité vyrovnávací paměti.
Zapnutí dvojité vyrovnávací paměti však může vyústit velkou ztrátou výkonu
(na mé K6-II+ 525 to použije dalších 20% CPU výkonu!) v závislosti na
implementaci DGA pro váš hardware.
OTÁZKA RYCHLOSTI
Obecně by přístup přes DGA framebuffer měl být alespoň tak rychlý jako
použití rozhraní X11 navíc s celoobrazovkovým režimem.
Procentní hodnoty rychlosti vypisované
MPlayerem byste měli brát s rezervou, jelikož
například při použití X11 nezahrnují čas spotřebovaný X serverem pro
vlastní vykreslování. Zavěste terminál na sériovou linku počítače a
spusťte top, abyste viděli co se opravdu děje ve vašem
počítači.
Obecně zrychlení použitím DGA oproti 'běžnému' X11 velmi závisí na vaší
grafické kertě a jak dobře je pro ni optimalizován modul X serveru.
Pokud máte pomalý stroj, raději použijte 15 nebo 16 bitovou hloubku, jelikož
vyžaduje pouze poloviční průchodnost paměti oproti 32 bitovému zobrazení.
Použití hloubky 24 bitů je dobré i v případě, že vaše karta nativně podporuje
pouze barevnou hloubku 32 bitů, jelikož se přenáší o 25% méně dat oproti
režimu 32/32.
Viděl jsem pár AVI souborů přehrávat na Pentiu MMX 266. Procesory AMD K6-2
pracují při 400 MHZ a výše.
ZNÁMÉ CHYBY
Podle některých vývojářů XFree je DGA zvěrstvo. Říkají, abyste je raději
nepoužívali. Jeho implementace není vždy bezproblémová v každém dostupném
ovladači pro XFree.
V XFree 4.0.3 je v nv.o chyba vedoucí
k podivným barvám.
Ovladač pro ATI vyžaduje více než jedno zpětné přepnutí režimu po skončení
používání DGA.
Některé ovladače selžou při přepnutí do normálního rozlišení (použijte
Ctrl+Alt+Keypad + a
Ctrl+Alt+Keypad -
pro ruční přepnutí).
Některé ovladače zobrazují divné barvy.
Některé ovladače lžou o množství paměti kterou mapují do adresového prostoru
procesu, takže vo_dga nepoužije dvojitou vyrovnávací paměť (SIS?).
Některé ovladače nezvládnou ohlásit dokonce ani jeden platný režim.
V tom případě rozhraní DGA spadne s hláškou o nesmaslném režimu
100000x100000 nebo tak.
OSD pracuje pouze se zapnutou dvojitou vyrovnávací pamětí (jinak poblikává).
SDL
SDL (Simple Directmedia Layer) je zjednodušeně unifikované
video/audio rozhraní. Programy, které ji používají, znají pouze SDL a ne
jaký audio nebo video ovladač SDL aktuálně používá. Například klon DOOMa
může běžet na svgalib, aalib, X, fbdev a dalších. Musíte jen nastavit
(například) video ovladač pomocí proměnné prostředí
SDL_VIDEODRIVER. Aspoň teoreticky.
V MPlayeru používáme její softwarový škálovač
ovladače X11 pro karty/ovladače, které nepodporují XVideo, dokud nevytvoříme
vlastní (rychlejší, hezčí) softwarový škálovač. Rovněž jsme používali její
výstup na aalib, ale nyní máme vlastní, což je mnohem pohodlnější.
Její DGA režim byl až doposud lepší než náš. Sledujete? :)
Rovněž pomáhá s některými chybnými ovladači/kartami, pokud je video roztřesené
(nikoli problém pomalého stroje), nebo se zpožďuje zvuk.
SDL video rozhraní podporuje zobrazování titulků pod filmem, v (pokud je) černém
okraji.
Pro SDL existuje několik voleb příkazového řádku:
nastavuje použití SDL video ovladače (např. aalib,
dga, x11)
nastavuje použití SDL audio ovladače (např. dsp,
esd, artsc)
vypíná hardwarovou akceleraci XVideo
zkusí vynutit XVideo akceleraci
Klávesy pouze pro SDLKlávesaAkcec
cykluje dostupné celoobrazovkové režimy
n
změní režim zpět na normální
Známé chyby:
Klávesy stisknuté při použití sdl:aalib konzolového ovladače se donekonečna
opakují. (použijte !) Je to chyba v SDL, já to nezměním
(testováno s SDL 1.2.1).
NEPOUŽÍVEJTE SDL s GUI! Nefunguje to jak by mělo.
SVGAlibINSTALACE
Budete muset nainstalovat svgalib i s development balíčkem, aby
MPlayer vytvořil své SVGAlib rozhraní
(autodetekováno, ale nelze vynutit) a nezapomeňte upravit
/etc/vga/libvga.config tak, aby odpovídal vaší kartě a
monitoru.
Ujistěte se, že nepoužíváte volbu , jelikož zapíná
použití softwarového škálování, což je pomalé. Pokud jej opravdu potřebujete,
použijte volbu , což poskytuje špatnou kvalitu, ale je
o poznání rychlejší.
PODPORA EGA (4BPP)
SVGAlib obsahuje EGAlib a MPlayer umí zobrazovat
jakýkoli film v 16 barvách, což je vhodné v následujících konfiguracích:
EGA karta s EGA monitorem: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp
EGA karta s CGA monitorem: 320x200x4bpp, 640x200x4bpp
Hodnota bpp (bitů na pixel) musí být nastavena na 4 ručně:
Obraz bude nejspíš muset být zmenšený tak, aby se vešel v EGA režimu:
-vf scale=640:350
nebo
-vf scale=320:200
Když potřebujeme rychlou, ale nekvalitní škálovací rutinu:
-sws 4
Možná bude muset být vypnuta automatická korekce poměru stran:
-noaspect
Podle mých zkušeností lze dosáhnout nejlepší kvality obrazu na
EGA obrazovkách mírným snížením jasu:
. Na svém počítači jsem rovněž musel snížit
vzorkovací kmitočet zvuku, protože zvuk pří 44kHz byl vadný:
.
Zapnout OSD a titulky můžete pouze v kombinaci s
filtrem, viz man stránka pro přesné parametry.
Výstup na Framebuffer (FBdev)
Podpora pro cíl FBdev je autodetekována během
./configure. Přečtěte si dokumentaci framebufferu ve
zdrojových kódech kernelu (Documentation/fb/*) pro více
informací.
Pokud vaše karta nepodporuje standard VBE 2.0 (starší ISA/PCI karty, jako
S3 Trio64), pouze VBE 1.2 (nebo straší?): Nuže, stále máte k dispozici VESAfb,
ale budete muset nahrát SciTech Display Doctor (původně UniVBE) před startem
Linuxu. Použijte bootovací disk DOSu nebo tak. A nezapoměňte si zaregistrovat
svůj UniVBE ;))
Výstup FBdev přijímá několik dodatečných voleb:
nastaví zařízení framebufferu k použití (výchozí: /dev/fb0)
název režimu k použití (podle /etc/fb.modes)
config soubor režimů (výchozí: /etc/fb.modes)
důležité hodnoty, viz
example.conf
Pokud se chcete přepnout do určitého režimu, pak použijte
mplayer -vm -fbmode name_of_modesoubor
samotná zvolí nejpříhodnější režim z
/etc/fb.modes. Může být rovněž použita spolu s volbami
a . Volba
je podporována pouze pokud pixelový formát filmu
odpovídá pixelovému formátu videorežimu. Věnujte pozornost hodnotě bpp.
Ovladač fbdev zkusí použít aktuální, nebo pokud zadáte volbu
, pak tuto.
Volba není podporována (použijte ).
Nelze použít režimy 8bpp (nebo nižší).
Pravděpodobně budete chtít vypnout kursor:
echo -e '\033[?25l'
nebo
setterm -cursor off
a spořič obrazovky:
setterm -blank 0
Pro opětovné zapnutí kursoru:
echo -e '\033[?25h'
nebo
setterm -cursor on
Změna videorežimu FBdev nepracuje ve VESA
framebufferu a nechtějte to po nás, jelikož to není omezení
MPlayeru.
Matrox framebuffer (mga_vid)
Tato sekce je o podpoře Matrox G200/G400/G450/G550 BES (Back-End Scaler)
jaderného modulu mga_vid.
Má hardwarovou podporu VSYNC s trojitou vyrovnávací pamětí.
Pracuje jak v konzoli, tak pod X.
Toto je pouze pro Linux! Na ne-Linuxech (testováno na FreeBSD) můžete místo něj
použít VIDIX.
Instalace:
Pokud jej chcete použít, nejdříve musíte sestavit
mga_vid.o:
cd drivers
make
Pak vytvořte zařízení /dev/mga_vid:
mknod /dev/mga_vid c 178 0
a nahrajte ovladač pomocí
insmod mga_vid.o
Měli byste ověřit velikost detekované paměti pomocí příkazu
dmesg. Pokud je špatná, použijte volbu
(nejdřív rmmod mga_vid),
nastavte velikost paměti karty v MB:
insmod mga_vid.o mga_ram_size=16
Aby se nahrával/odstraňoval automaticky podle potřeby, nejdříve přidejte
následující řádek na konec /etc/modules.conf:
alias char-major-178 mga_vid
Pak zkopírujte modul mga_vid.o na vhodné místo
pod /lib/modules/verze jádra
/někde.
Pak spusťte
depmod -a
Teď budete muset (pře)kompilovat MPlayer,
./configure zdetekuje
/dev/mga_vid a zakompiluje 'mga' rozhraní.
V MPlayeru se používá pomocí
pokud máte matroxfb konzoli, nebo pod XFree86
3.x.x nebo 4.x.x.
Ovladač mga_vid spolupracuje s Xv.
Určité informace lze přečíst z /dev/mga_vid zařízení,
například pomocí
cat /dev/mga_vid
a může do něj být zapsána změna jasu:
echo "brightness=120" > /dev/mga_vidPodpora 3Dfx YUV
Tento ovladač používá ovladač framebufferu tdfx z jádra pro přehrávání
filmů s YUV akcelerací. Budete potřebovat jádro s podporou tdfxfb a
rekompilovat s
./configure --enable-tdfxfbRozhraní OpenGLMPlayer podporuje zobrazování filmů pomocí OpenGL,
ale pokud vaše platforma/ovladač podporuje xv což by měl být případ PC s
Linuxem, použijte raději xv, jelikož výkon OpenGL je o poznání horší.
Pokud máte X11 implementaci bez podpory xv, je OpenGL slušná alternativa.
Naneštěstí ne všechny ovladače tuto vlastnost podporují. Ovladače Utah-GLX
(pro XFree86 3.3.6) ji podporují pro všechny karty.
Viz pro detaily jak je nainstalovat.
XFree86(DRI) 4.0.3 nebo pozdější podporují OpenGL s kartami Matrox a Radeon,
4.2.0 a pozdější podporují Rage128.
Viz pro stažení a instalační instrukce.
Rada od jednoho z uživatelů: GL video výstup lze použít pro dosažení
vertikálně synchronizovaného TV výstupu. Budete muset nastavit proměnnou
prostředí (aspoň na nVidii):
export $__GL_SYNC_TO_VBLANK=1AAlib - zobrazování v textovém režimu
AAlib je knihovna pro zobrazování grafiky v textovém režimu pomocí výkonného
ASCII renderovače. Existuje spousta programů, ktaré ji již
podporují, jako DOOM, Quake, atd. MPlayer
pro ni obsahuje šikovné rozhraní. Pokud ./configure
zjistí nainstalovanou aalib, sestaví se aalib libvo rozhraní.
Můžete použít některé klávesy v AA okně pro změnu renderovacích voleb:
KlávesaAkce1
sníží kontrast
2
zvýší kontrast
3
sníží jas
4
zvýší jas
5
vypíná/zapíná rychlé renderování
6
nastaví rozhodovací režim (žádný, error distribution, Floyd Steinberg)
7
inverze obrazu
8
přepíná mezi ovládáním aa a MPlayeru
Můžete použít následující volby příkazového řádku:
změna barvy OSD
změna barvy titulků
kde V může být:
0 (normální),
1 (tmavé),
2 (tučné),
3 (polotučný font),
4 (reverz),
5 (speciální).
AAlib samotná poskytuje velké množství voleb. Zde je několik
důležitých:
Nastaví doporučený aa ovladač (X11, curses, Linux).
Použití všech 256 znaků.
Použití osmibitového ASCII.
Vypíše všechny aalib volby.
Renderování je velmi náročné na CPU, zvlášť při použití AA-na-X
(aalib na X) a nejméně náročné je na standardní neframebuferované
konzoli. Použijte SVGATextMode pro nastavení velkého textového režimu
a užijte si! (secondary head Hercules cards rock :)) (ale IMHO můžete použít
volbu pro grafiku na hgafb:)
Použijte volbu , pokud váš počítač není dostatečně
rychlý pro renderování všech snímků!
Při přehrávání na terminálu dosáhnete lepší rychlosti i kvality použitím
ovladače Linux, bez curses (). Ale pak budete
potřebovat práva k zápisu do
/dev/vcsa<terminal>!
Aalib to nedetekuje, ale vo_aa zkouší najít nejlepší režim.
Pro více ladících možností viz .
libcaca - Barevná ASCII Art knihovna
Knihovna libcaca
je grafická knihovna produkující text místo pixelů, takže může fungovat na
starších video kartách a textových terminálech. Není nepodobná známé knihovně
AAlib.
libcaca vyžaduje k činnosti terminál,
takže by měla fungovat na všech Unixových systémech (včetně Mac OS X) pomocí buď
knihovny slang nebo knihovny
ncurses, pod DOSem pomocí knihovny
conio.h a na systémech Windows
pomocí buď slang nebo
ncurses (pomocí emulace Cygwin) nebo
conio.h. Pokud
./configure
detekuje libcaca, bude sestaveno
rozhraní caca libvo.
Odlišnosti od AAlib jsou:
16 dostupných barev pro znakový výstup (256 barev pro pár)
rozhodování podle barev v obrázku
Ale libcaca má také následující
omezení:
nemá podpora pro jas, kontrast a gamu
V caca okně můžete použít některé klávesy pro změnu renderovacích volby:
KlávesaAkced
Přepíná metody rozhodování v libcaca.
a
Přepíná vyhlazování v libcaca.
b
Přepíná pozadí v libcaca.
libcaca také respektuje některé
proměnné prostředí:
Nastaví doporučený caca ovladač, jako ncurses, slang, x11.
Nastaví počet řad a sloupců. Např. 128x50.
Nastaví použitý font. Např. fixed, nexus.
Použijte volbu , pokud váš počítač není dost rychlý
pro renderování všech snímků.
VESA - výstup do VESA BIOSu
Tento ovladač byl navržen a představen jako obecný
ovladač pro jakoukoli video kartu, která má VESA VBE 2.0 kompatibilní
BIOS. Další výhodou tohoto ovladače je, že zkouší vynutit zapnutí výstupu na TV.
VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16,
1998 (Strana 70) uvádí:
Karty Dual-Controller
VBE 3.0 podporuje karty s dual-controllerem za předpokladu že, jelikož jsou
typicky oba controllery vybaveny stejným OEM a nastavovány jedinou
BIOS ROM na stejné grafické kartě, je možné skrýt před aplikací přítomnost
dvou controllerů. To omezuje nezávislé použití jednotlivých controllerů,
ale umožňuje aplikacím vydaným před VBE 3.0 pracovat normálně.
VBE funkce 00h (Návrat informací o controlleru) vrací kombinované informace
obou conrollerů, včetně kombinovaného seznamu platných režimů.
Příslušný controller je aktivován jakmile aplikace vybere režim. Všechny
ostatní VBE funkce pak pracují s aktivním controllerem.
Máte tedy možnost s tímto rozhraním dostat funkční TV výstup.
(Soudím že TV výstup má velmi často samostatnou jednotku, nebo aspoň samostatný
výstup.)
VÝHODY
Máte šanci sledovat video dokonce i když Linux nezná
váš video hardware.
Nepotřebujete mít ve svém Linuxu nainstalovány žádné věci související s
grafikou (jako X11 (alias XFree86), fbdev atd). Toto rozhraní lze provozovat
z textového režimu.
Máte šanci získat funkční TV-out.
(Je to pravda minimálně s kartami ATI).
Toto rozhraní volá int 10h handler, takže není
emulátorem – volá skutečné věci
skutečného BIOSu v reálném režimu
(ve skutečnosti v režimu vm86).
Můžete s ním použít VIDIX, takže dostanete akcelerované video
a TV výstup současně!
(Doporučeno pro karty ATI.)
Máte-li VESA VBE 3.0+ a nastavili jste si někde
(config soubor nebo příkazový řádek) dostanete nejvyšší možný obnovovací
kmitočet. (Using General Timing Formula). Abyste této funkce dosáhli, musíte
nastavit všechna nastavení monitoru.
NEVÝHODY
Pracuje pouze na systémech x86.
Může to použít pouze root.
Zatím je dostupné pouze pro Linux.
Nepoužívejte toto rozhraní s GCC 2.96!
Nefunguje!
VOLBY PŘÍKAZOVÉHO ŘÁDKU DOSTUPNÉ PRO VESA
zatím dostupné: dga pro vynucení dga režimu a
nodga pro jeho potlačení. V režimu dga můžete zapnout
dvojitou vyrovnávací paměť pomocí volby .
Poznámka: Tyto volby můžete vynechat, abyste zapli
autodetekci dga režimu.
ZNÁMÉ PROBLÉMY A KLIČKY
Pokud máte nainstalován NLS font v
Linuxové konzoli a použijete VESA rozhraní v textovém režimu, pak po
ukončení MPlayeru budete mít nahrán
ROM font místo národního.
Můžete si opět nahrát národní font například pomocí utility
setsysfont z distribuce Mandrake/Mandriva.
(Tip: Stejná utilita je použita pro
lokalizaci fbdev).
Některé Linuxové grafické ovladače neobnovují
aktivní režim BIOSu v DOSové paměti.
Takže pokud máte tento problém – vždy používejte VESA rozhraní pouze v
textovém režimu. Jinak bude přesto aktivován
textový režim (#03) a budete muset restartovat počítač.
Často po ukončení VESA rozhraní dostanete černou
obrazovku. Chcete-li vrátit obraz do původního stavu – jednoduše se
přepněte do jiné konzole (stiskem Alt+F<x>)
a pak se přepněte zpět stejným způsobem.
Chcete-li funkční TV-out, musíte mít
připojený TV konektor před startem počítače, jelikož se video BIOS
inicializuje pouze jednou během POST procedury.
X11
Pokud možno se mu vyhněte. Posílá obraz do X11 (používá rozšíření sdílená paměť)
bez jakékoli hardwarové akcelerace. Podporuje (MMX/3DNow/SSE akcelerované, ale
přesto pomalé) softwarové škálování. Použijte volby .
Většina karet má hardwarovou podporu škálování, použijte pro ně volbu
, nebo pro karty Matrox.
Problém je, že většina karet nepodporuje hardwarovou akceleraci na sekundárním
výstupu/TV. V těchto případech uvidíte místo filmu zelenou/modrou obrazovku.
Teď se hodí toto rozhraní, ale potřebujete silný procesor pro použití
softwarového škálování. Nepoužívejte SDL softwarový výstup a škálování, má horší
kvalitu obrazu!
Softwarové škálování je velmi pomalé, zkuste raději měnit videorežimy.
Je to jednoduché. Viz modelines v DGA sekci
a přidejte je do svého XF86Config.
Máte-li XFree86 4.x.x: použijte volbu . Ta změní
rozlišení tak, aby do něj film dobře vešel. Když ne:
S XFree86 3.x.x: musíte cyklovat dostupnými rozlišeními pomocí tlačítek
Ctrl+Alt+plus
a
Ctrl+Alt+minus.
Pokud nemůžete najír rozlišení, která jste vložili, pročtěte si výstup XFree86.
Některé ovladače nezvládnou nízké bodové kmitočty potřebné pro režimy s nízkým
rozlišením videa.
VIDIXPŘEDMLUVA
VIDIX je zkratka pro VIDeo
Interface for *niX
(video rozhraní pro *nix).
VIDIX bylo navrženo a představeno jako rozhraní pro rychlé uživatelské ovladače
dosahujících video výkonu jako dosahuje mga_vid na kartách Matrox. Je rovněž
dobře přenositelné.
Toto rozhraní bylo navrženo jako pokus napasovat existující video akcelerující
rozhraní (známé jako mga_vid, rage128_vid, radeon_vid, pm3_vid) do pevného
schéma. Poskytuje vysokoúrovňové rozhraní k čipům známým jako BES
(BackEnd scalers) nebo OV (Video Overlays). Neposkytuje nízkoúrovňové rozhraní
k věcem známým jako grafické servery.
(Nechci konkurovat X11 týmu v přepínání grafických režimů). Čili hlavním cílem
tohoto rozhraní je maximalizace rychlosti přehrávání videa.
POUŽITÍ
Můžete použít samostatné video rozhraní: .
Toto rozhraní bylo vytvořeno jako front end X11 k technologii VIDIX.
Vyžaduje X server a může pracovat pouze pod X serverem. Poznamenejme, že
jelikož přímo komunikuje s hardwarem a obchází X ovladač, pixmapy uložené
v paměti grafické karty můžou být poškozeny. Můžete se tomu vyhnout omezením
množství video paměti použité X pomocí volby "VideoRam" v XF86Config o 4MB.
Pokud máte méně než 8MB video ram, můžete místo toho použít volbu
"XaaNoPixmapCache" v sekci screen.
Existuje konzolové VIDIX rozhraní: .
To vyžaduje pro většinu karet funkční inicializovaný framebuffer (jinak pouze
rozhodíte obrazovku) a dosáhnete podobného efektu jako s
nebo . nVidia karty však
jsou schopny zobrazit plně grafické video na reálné textové konzoli. Viz
sekci nvidia_vid pro více informací.
Můžete použít VIDIXové podzařízení, které bylo zabudováno do několika video
ovladačů, například:
(pouze Linux) a
.
Nezáleží na tom, které video výstupní rozhraní je použito s
VIDIX.
POŽADAVKY
Video karta by měla být v grafickém režimu (vyjma karet nVidia s výstupním
rozhraním ).
Výstupní video rozhraní MPlayeru by mělo znát
aktivní video režim a být schopno sdělit VIDIXovému podzařízení některé video
charakteristiky serveru.
METODY POUŽITÍ
Když použijete VIDIX jako subdevice
(), pak je konfigurace video režimu je provedeno
výstupním video rozhraním (zkrátka vo_serverem).
Takže můžete zadat na příkazovém řádku MPlayeru
stejné volby jako pro vo_server. Návdavkem rozeznává volbu
jako globální parametr. (Doporučuji použít tuto volbu
s VIDIX aspoň pro ATI kartu). Stejně jako , dosud
zná následující volby: .
Rovněž můžete uvést VIDIXový ovladač jako třetí podvolbu na příkazovém řádku:
mplayer -vo xvidix:mga_vid.so -fs -zoom -double soubor.avi
nebo
mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 soubor.avi
Ale je to nebezpečné a neměli byste to dělat. V tomto případě bude zadaný
ovladač vynucen a výsledek je nepředvídatelný (může vám
zatuhnout počítač). Měli byste to použít
POUZE pokud jste si absolutně jistí, že to bude fungovat a
MPlayer to neudělá automaticky. Řekněte o tom prosím
vývojářům. Správný způsob je použití VIDIX bez argumentů, aby proběhla
autodetekce.
Jelikož VIDIX vyžaduje přímý přístup k hardware, můžete jej buď spustit jako
root, nebo nastavit SETUID bit binárce MPlayeru
(Varování: Toto je bezpečnostní risk!).
Alternativně můžete použít speciální jaderný modul, například:
Stáhněte si vývojovou verzi
svgalib (například 1.9.17), NEBO si
stáhněte verzi vatvořenou Alexem speciálně pro použití s
MPlayerem (ke kompilaci nepotřebuje zdrojový kód
svgalib)
odtud.
Skompilujte modul v adresáři svgalib_helper
(naleznete ji v svgalib-1.9.17/kernel/,
pokud jste si stáhli zdrojový kód ze serveru svgalib) a nahrajte (insmod) jej.
Pro vytvoření potřebných zařízení v adresáři
/dev proveďte jako root
make device v adresáři
svgalib_helper.
Přesuňte adresář svgalib_helper do
mplayer/main/libdha/svgalib_helper.
Pokud jste si stáhli zdroj ze stránek svgalib, musíte odkomentovat řádek
CFLAGS obsahující text "svgalib_helper" v souboru
libdha/Makefile.
Překompilujte a nainstalujte libdha.
Karty ATI
V současnosti je většina ATI karet podporována nativně od Mach64 až po
nejnovější Radeony.
Existují dvě skompilované binárky: radeon_vid pro Radeony a
rage128_vid pro karty Rage 128. Můžete některou vynutit,
nebo nechat VIDIX rozhraní autodetekovat všechny dostupné ovladače.
Karty Matrox
Matrox G200, G400, G450 a G550 jsou hlášeny jako funkční.
Ovladač podporuje video ekvalizéry a měl by být téměř tak rychlý jako
Matrox framebuffer
Karty Trident
Existuje ovladač pro čipset Trident Cyberblade/i1, který lze nalézt na
motherboardech VIA Epia.
Ovladač byl napsán a je udržován
Alastairem M. RobinsonemKarty 3DLabs
Ačkoli existuje ovladač pro čipy 3DLabs GLINT R3 a Permedia3, nikdo je
netestoval, takže hlášení vítáme.
Karty nVidia
Unikátní vlastností ovladače nvidia_vid je jeho schopnost zobrazit video na
jednoduché, čisté, pouze textové konzoli
– bez framebufferu nebo nějaké X magie. Pro tento účel budete muset
použít video rozhraní , jak to ukazuje následující
příklad:
mplayer -vo cvidix příklad.aviKarty SiS
Toto je velmi experimentální kód, stejně jako nvidia_vid.
Byl testován na SiS 650/651/740 (nejobvyklejší čipsety použité v SiS
verzích "Shuttle XPC" barebones boxes out there)
Hlášení očekávána!
DirectFB
"DirectFB je grafická knihovna navržená se zřetelem na vestavěné systémy.
Nabízí maximálně hardwarově akcelerovaný výkon při minimální spotřebě
zdrojů a zatížení." – citováno z
Vlastnosti DirectFB v této sekci vynechám.
Ačkoli MPlayer není podporován jako "video
provider" v DirectFB, toto video rozhraní umožní přehrávání videa přes
DirectFB. Bude to samozřejmě akcelerované. Na mém Matroxu G400 byla rychlost
DirectFB stejná jako XVideo.
Vždy se snažte používat nejnovější verzi DirectFB. Můžete nastavovat volby pro
DirectFB na příkazovém řádku pomocí volby . Volbu
vrstvy lze provést metodou podzařízení, např.:
(výchozí je vrstva -1: autodetekce)
DirectFB/Matrox (dfbmga)
Přečtěte si prosím hlavní DirectFB sekci pro
obecné informaci.
Toto video výstupní zařízení zapne CRTC2 (na sekundárním výstupu) na kartách
Matrox G400/G450/G550, takže zobrazuje video
nezávisle na hlavním výstupu.
Ville Syrjala's má
README
a
HOWTO
na své domácí stránce, kde vysvětluje, jak rozběhnout DirectFB TV výstup na
kartách Matrox.
První DirectFB verze se kterou se nám to povedlo byla
0.9.17 (je chybová, potřebuje surfacemanager
patch z výše uvedeného URL). Portace CRTC2 kódu do
mga_vid bylo plánováno léta,
patche vítáme.
MPEG dekodéryDVB výstup a vstupMPlayer podporuje karty s čipsetem Siemens DVB od
výrobců jako Siemens, Technotrend, Galaxis nebo Hauppauge. Poslední DVB
ovladače jsou dostupné na Linux TV stránkách.
Pokud chcete provádět softwarové transkódování, měli byste mít aspoň 1GHz CPU.
Configure by měl detekovat vaši DVB kartu. Pokud ne, vynuťte detekci pomocí
./configure --enable-dvbPokud máte ost hlavičky na nestandardním místě, nastavte cestu pomocí./configure --with-extraincdir=zdrojový adresář DVB/ost/include
Pak kompilujte a instalujte obvyklým způsobem.POUŽITÍ
Hardwarové dekódování (přehrávání standardních MPEG-1/2 souborů) lze provést
tímto příkazem:
mplayer -ao mpegpes -vo mpegpes soubor.mpg|vob
Softwarového dekódování nebo transkódování odlišných formátů do MPEG-1 můžete
dosáhnout příkazem podobným tomuto:
mplayer -ao mpegpes -vo mpegpes váš_soubor.ext
mplayer -ao mpegpes -vo mpegpes -vf expand váš_soubor.ext
Pamatujte, že DVB karty podporují pouze výšky 288 a 576 pro PAL nebo 240 a 480
pro NTSC. Jiné výšky musíte přeškálovat
přidáním s šířkou a výškou, které chcete
do volby . DVB karty akceptují různé šířka jako 720, 704,
640, 512, 480, 352 atd, ale neprovádí žádné vodorovné hardwarové škálování,
takže ve většině případů nemusíte vodorovně škálovat. Pro 512x384
(poměr stran 4:3) MPEG-4 (DivX) zkuste:
mplayer -ao mpegpes -vo mpegpes -vf scale=512:576Pokud máte širokoúhlý film a nechcete jej škálovat na plnou výšku, můžete
použít filtr pro přidání černých okrajů. Pro
promítání 640x384 MPEG-4 (DivX), zkuste:
mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 soubor.avi
Pokud je váš procesor příliš slabý pro 720x576 MPEG-4 (DivX), zkuste podškálovat:
mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 soubor.aviPokud se rychlost nezlepší, zkuste podškálovat i výšku:mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 soubor.avi
Pro OSD a titulky použijte OSD vlastnost expand filtru. Takže místo
nebo , použijte
(pátý parametr
na konci zapne renderování OSD). Možná byste měli trochu posunout obraz nahoru,
abyste měli větší černý okraj pro titulky. Rovněž byste měli posunout nahoru
titulky, pokud jsou mimo TV obrazovku. Použijte volbu
pro toto nastavení ( je dobrá volba).
Chcete-li přehrávat filmy s jinou snímkovou rychlostí než 25 fps na PAL TV, nebo
na pomalém CPU, přidejte volbu .
Chcete-li zachovat poměr stran MPEG-4 (DivX) souborů a dosáhnout optimálních
škálovacích parametrů (hardwarové horizontální škálování a softwarové vertikální
škálování zatímco zachováte správný poměr stran), použijte filtr dvbscale:
pro 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
pro 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
Digitální TV (vstupní DVB modul)Můžete použít svou DVB kartu pro sledování Digitální TV.
Měli byste mít nainstalovány programy scan a
szap/tzap/czap/azap; všechny jsou zařazeny v balíčku
ovladačů.
Ověřte si, zda vaše ovladače pracují správně s progamy jako je
dvbstream
(to je základ vstupního DVB modulu).
Nyní byste měli skompilovat soubor ~/.mplayer/channels.conf,
se syntaxí akceptovanou szap/tzap/czap/azap, nebo nechat
scan, aby jej skompiloval.
Pokud máte více než jeden typ karty (Např. Satellitar, Terrestrial, Cable a ATSC)
můžete si uložit své channels soubory podle typu jako
~/.mplayer/channels.conf.sat,
~/.mplayer/channels.conf.ter,
~/.mplayer/channels.conf.cbl,
a ~/.mplayer/channels.conf.atsc,
kdy MPlayer použije tyto soubory spíše než
~/.mplayer/channels.conf,
a vy musíte pouze nastavit, kterou kartu použít.
Ujistěte se, že máte pouze nekódované
kanály ve svém channels.conf souboru, jinak se
MPlayer pokusí přeladit na nejbližší zobrazitelný,
ale to může trvat dlouho, pokud je zde mnoho po sobě jdoucích šifrovaných
kanálů.
V polích audio a video můžete použít rozšířenou syntaxi:
(maximálně 6 pidů každé);
v tom případě zahrne MPlayer do datového proudu
všechny zadané pidy plus pid 0 (který obsahuje PAT).
Doporučujeme zahrnout do každého řádku PMT pid pro odpovídající kanál
(pokud jej znáte)
Další možná použití jsou: televideo pid, druhá audio stopa, atd.
Pokud MPlayer často protestuje o
Příliš mnoha video/audio paketech ve vyrovnávací paměti nebo
pokud si povšimnete rostoucí desynchronizace mezi zvukem a
videem, zkuste použít MPEG-TS demuxer z libavformat přidáím
na příkazovém řádku.
Pro zobrazení prvního z kanálů uvedeného v seznamu, spusťte
mplayer dvb://
Pokud chcete sledovat určitý kanál, například R1, spusťte
mplayer dvb://R1
Pokud máte více než jednu kartu, musíte rovněž uvést číslo karty, na které lze
kanál sledovat (např. 2). Syntyxe je:
mplayer dvb://2@R1
Pro změnu kanálu stiskněte klávesu h (další) a
k (předchozí), nebo použijte
OSD menu.
Pokud váš ~/.mplayer/menu.conf obsahuje řádek
<dvbsel> podobný tomu v ukázkovém souboru
etc/dvb-menu.conf (který můžete použít k přepsání
~/.mplayer/menu.conf), bude v hlavním menu podseznam,
kde si budete moci zvolit kanál ze svého channels.conf.
Může mu případně předcházet menu se seznamem dostupných karet, pokud máte
více než jednu použitelnou MPlayerem.
Pokud si chcete uložit program na disk, můžete použít
mplayer -dumpfile r1.ts -dumpstream dvb://R1
Pokud jej chcete zaznamenat v odlišném formátu (reenkódovat jej), spusťte
místo toho příkaz podobný následujícímu
mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1
Přečtěte si man stránku pro seznam voleb, které můžete předat vstupnímu
DVB modulu.
BUDOUCNOST
Máte-li otázky, nebo chcete dostávat oznámení o nových vlastnostech a zapojit
se do diskuse o těchto věcech, připojte se k naší
MPlayer-DVB
e-mailové konferenci. Pamatujte prosím, že jazykem konference je angličtina.
V budoucnu můžete očekávat schopnost zobrazovat OSD a titulky pomocí nativní
podpory OSD v DVB kartách, stejně jako plynulejší přehrávání filmů s jinou
snímkovou rychlostí, než 25 fps a transkódování MPEG-2 na MPEG-4 v reálném čase
(částečná dekomprese).
DXR2MPlayer podporuje hardwarově akcelerované
přehrávání pomocí karty Creative DXR2.
Nejdříve musíte mít správně nainstalované DXR2 ovladače. Ovladače a návod
k jejich instalaci naleznete na stránkách
DXR2 Resource Center.
POUŽITÍZapíná TV výstup. nebo Zapíná Overlay výstup v X11.Tato volba je použita k ovládání DXR2 ovladače.
Overlay čipset použitý v DXR2 má mizernou kvalitu, ale výchozí nastavení pracuje
vždy. OSD lze použít spolu s overlay (ne na TV) při jeho vykreslení v klíčovací
barvě. S výchozím nastavením klíčovací barvy můžete dosáhnout různých výsledků,
obvykle uvidíte klíčovací barvu kolem znaků nebo jiné srandovní věci. Pokud ale
vhodně upravíte klíčování, můžete dosáhnout použitelných výsledků.
Prostudujte si prosím man stránku pro dostupné volby.DXR3/Hollywood+MPlayer podporuje hardwarově akcelerované
přehrávání videa pomocí karet Creative DXR3 a Sigma Designs Hollywood Plus.
Obě tyto karty používají MPEG dekodér em8300 od Sigma Designs.
Nejprve budete potřebovat správně nainstalované DXR3/H+ ovladače verze 0.12.0
nebo pozdější. Ovladače a návod na jejich instalaci naleznete na stránkách
DXR3 & Hollywood Plus for Linux.
configure by mělo automaticky detekovat vaši kartu a
kompilace by se měla obejít bez potíží.
POUŽITÍ
aktivuje overlay místo TVOut. Pro správnou funkci
vyžaduje, abyste měli správně nakonfigurované nastavení overlay. Nejjednodužší
způsob nastavení overlay, je spuštění autocal. Pak spusťte MPlayer s video
výstupem nastaveným na dxr3 s vypnutým overlay, spusťte dxr3view. V dxr3view
si můžete hrát s nastavením overlay a pozorovat změny v reálném čase. Snad bude
tato funkce časem dostupná z GUI MPlayeru. Jakmile
máte správně nastaveno overlay, není již nutné používat dxr3view.
zapíná prebuffering. Prebuffering je vlastnost čipu
em8300, terá mu umožňuje podržet si více než jeden videosnímek v daném čase.
To znamená, že pokud jej máte zapnutý, snaží se MPlayer
udržet vyrovnávací paměť videa (buffer) naplněný daty. Pokud jej provozujete na
pomalém stroji, použije MPlayer téměř nebo přesně
100% výkonu CPU. To je zvlášť časté, pokud přehráváte čisté MPEG datové proudy
(jako DVD, SVCD atp.) jelikož je MPlayer nemusí
převádět do MPEG, naplní buffer velmi rychle.
S prebufferingem je přehrávání videa mnohem
méně citlivé na zaměstnávání CPU jinými programy. Nebudou zahozeny snímky, pokud
si aplikace neuzme CPU na dlouhou dobu.
Pokud přehráváte bez prebufferingu, je em8300 mnohem citlivější na vytížení CPU,
takže doporučujeme zapnout MPlayerovu volbu
pro zachování synchronizace.
zapíná nový sync-engine. To je zatím experimentální
vlastnost. Se zaplým sync budou vnitřní hodiny em8300 neustále sledovány a
pokud se začnou rozcházet s časovačem MPlayeru,
budou resetovány, což způsobí, že em8300 zahodí veškeré snímky, které čekají ve
frontě.
nastaví TV normu DXR3 karty bez nutnosti externího
nástroje jako em8300setup. Platné normy jsou 5 = NTSC, 4 = PAL-60,
3 = PAL. Zvláštní normy jsou 2 (automaticné nastavení s použitím PAL/PAL-60) a
1 (automatické nastavení s použitím PAL/NTSC), jelikož ty určí použitou normu
podle snímkové rychlosti filmu. norm = 0 (výchozí) nezmění aktuální normu.
= číslo zařízení, které se
má použít, pokud máte více než jednu em8300 kartu.
Jakoukoli z těchto voleb můžete vynechat.
Volby zdá se pracují skvěle při přehrávání filmů
v MPEG-4 (DivX). Lidé však hlásili potíže s volbou prebuf při přehrávání souborů
v MPEG-1/2. Měli byste je nejprve zkusit přehrát bez dodatečných voleb a pokud
narazíte na potíže se synchronizací nebo DVD titulky, zkuste to s volbou
.
Pro zvukový výstup, kde X je číslo zařízení
(0 máte-li jen jednu kartu).
Čip em8300 neumí přehrávat signál vzorkovaný méně než 44100Hz. Pokud je
vzorkovací kmitočet pod 44100Hz, zvolte buď 44100Hz nebo 48000Hz podle toho,
násobek kterého je blíž. Čili pokud má film zvuk 22050Hz použijte 44100Hz,
jelikož 44100 / 2 = 22050, pokud jej má 24000Hz použijte 48000Hz jelikož
48000 / 2 = 24000 a tak dále.
S výstupem digitálního audia to nefunguje ().
Pro přehrávání ne-MPEG obsahu na em8300 (např. MPEG-4 (DivX) nebo RealVideo)
musíte nastavit MPEG-1 video filtr jako
libavcodec (lavc) nebo
libfame (fame). V tuto chvíli
je lavc jak rychlejší, tak poskytuje lepší kvalitu obrazu, takže vám radíme jej
používat, pokud s ním nemáte potáže. Prostudujte si v man stránce dodatečné
informace o .
Použití lavc silně doporučujeme. Zatím nelze nastavit snímkovou rychlost em8300,
takže je pevně nastavena na 30000/1001 fps. Z toho důvodu doporučujeme,
abyste použili
zvlášť pokud používáte prebuffering. Proč tedy 25 a ne 30000/1001? Nu, důvodem
je, že pokud zadáte 30000/1001, začne obraz trochu poskakovat. Důvod tohoto
jevu nám není znám. Pokud to nastavíte někdemezi 25 a 27, obraz se ustálí.
Pro tuto chvíli se to dá pouze uznat jako fakt.
Ačkoli DXR3 ovladač umí dodat OSD do MPEG-1/2/4 videa, má to mnohem nižší
kvalitu než tradiční OSD MPlayeru a má i různé
problémy s obnovováním. Výše uvedený příkazový řádek nejprve převede vstupní
video do MPEG-4 (je to nutné, sorry), pak aplikuje filtr expand, který však
nic neexpanduje (-1: výchozí), ale doplní normální OSD do obrazu
(na to je ta "1" na konci).
Čip em8300 podporuje přehrávání zvuku v AC3 (prostorový zvuk) přes digitální
audio výstup na kartě. Viz výš volbu . Ta musí být
použita pro nastavení výstupu do DXR3 místo zvukové karty.
Ostatní vizualizační hardwareZr
Toto je zobrazovací rozhraní () pro mnoho MJPEG
zachytávacích/přehrávacích karet (testováno na DC10+ a Buz a mělo by pracovat
i s LML33, tedy DC10). Rozhraní pracuje tak, že snímek zakóduje do JPEG a pak
jej pošle do karty. Pro enkódování do JPEG se používá
libavcodec a je pro ně nezbytný.
Ve speciálním cinerama režimu můžete sledovat filmy
v pravém širokoúhlém formátu, kterého je dosaženo tak, že máte dvě promítačky
a dvě MJPEG karty. V závislosti na rozlišení a nastavení kvality může toto
rozhraní vyžadovat spoustu výkonu CPU. Nezapomeňte zadat
, pokud je váš počítač příliš pomalý.
Poznámka: Můj AMD K6-2 350MHz je (s ) vcelku
adekvátní pro sledování materiálu o rozměru VCD a podškálovaných filmů.
Toto rozhraní komunikuje s jaderným modulem dostupným na
, takže jej nejdříve musíte zprovoznit.
Přítomnost MJPEG karty je autodetekována skriptem
configure. Pokud detekce selže, vynuťte ji pomocí
./configure --enable-zr
Výstup může být ovlivňován několika volbami. Obšírný výklad těchto voleb
naleznete v man stránce, krátký přehled obržíte spuštěním
mplayer -zrhelp
Věci jako škálování a OSD (display na obrazovce) nejsou tímto rozhraním pokryty,
ale lze jich dosáhnout pomocí video filtrů. Například mějte video o rozlišení
512x272 a chcete jej přehrávat na celé obrazovce přes DC10+, pak máte tři
základní možnosti, jak to udělat. Můžete škálovat video na šířku 768, 384 nebo
192. Z důvodu výkonu a kvality si zvolíte škálování filmu na 384x204 pomocí
bilineárního softwarového škálovače. Příkazový řádek je pak
mplayer -vo zr -sws 0 -vf scale=384:204 film.avi
Ořezání lze provést filtrem a samotným rozhraním.
Řekněme, že film je příliš široký pro promítání na vaší Buz a proto chcete
použít pro zůžení filmu, pak byste měli použít
následující příkaz
mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
chcete-li použít filtr , proveďte
mplayer -vo zr -vf crop=720:320:80:0 benhur.avi
Zvláštní případy vyvolá režim
cinerama, takže rozprostřete film na několik televizí nebo
promítaček, čímž se vytvoří větší obraz. Předpokládejme, že máte dvě promítačky.
Levá je připojena k vaší Buz na /dev/video1 a
pravý je připojen do vaší DC10+ na /dev/video0.
Film má rozlišení 704x288. Předpokládejme rovněž, že pravá promítačka je
černobílá a levá umí JPEG snímky s kvalitou 10, pak byste měli použít
následující příkaz
mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
-zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \
movie.avi
Jak vidíte, volby uvedené před druhým jsou předány
pouze do DC10+ a volby za druhým do Buz.
Maximální počet MJPEG karet zahrnutých do cinerama
režimu jsou čtyři, takže můžete sestavit zobrazovací stěnu 2x2.
Nakonec důležité upozornění: Nespouštějte ani nezastavujte XawTV na přehrávacím
zařízení během přehrávání, zhavaru je vám počítač. Můžete však
NEJDŘÍV spustit XawTV a
PAK spustit MPlayer,
počkat až MPlayer skončí a
PAK zastavit XawTV.
Blinkenlights
Toto rozhraní je schopno přehrávání pomocí Blinkenlights UDP protokolu. Pokud
nevíte co je Blinkenlights
nebo jeho nástupce
Arcade,
zjistěte si to. Ačkoli je to dost možná nejméně používané video výstupní
rozhraní, bezpochyby je tím nejlepším, co může MPlayer
nabídnout. Stačí shlédnout některá z
Blinkenlights dokumentačních videí.
Na Arcade video můžete vidět výstupní rozhraní Blinkenlights v akci v 00:07:50.
pODPORA TV výstupuKarty Matrox G400
Pod Linuxem máte dva způsoby jak zprovoznit TV výstup na G400:
pro instrukce k TV výstupu na Matrox G450/G550 si prostudujte textovou část!
XFree86
Pomocí ovladače a HAL modulu dostupného na stránkách Matrox. Takto dostanete X na TV.
Tato metoda vám neposkytne akcelerované přehrávání
jako pod Windows! Sekundární jednotka má pouze YUV framebuffer, BES
(Back End Scaler, YUV škálovač na kartách G200/G400/G450/G550) na něm
nepracuje! Ovladač pro Windows to nějak obchází, pravděpodobně použitím
3D jednotky pro zoom a YUV framebufferu pro zobrazení zoomovaného
obrazu. Pokud opravdu chcete použít X, použijte volby , ale bude to POMALÉ a
bude zapnuta ochrana proti kopírování
Macrovision
(Macrovision můžete obejít pomocí tohoto
perlového skriptu).
Framebuffer
Pomocí matroxfb modulů v jádrech řady 2.4.
Jádra 2.2 v nich neobsahují podporu pro TV, takže jsou pro tento účel
nepoužitelná. Měli byste povolit VŠECHNY matroxfb-specifické vlastnosti
během kompilace (vyjma MultiHead) a zakompilovat je do
modulů!
Rovněž potřebujete zapnuté I2C.
Vstupte do TVout a zadejte
./compile.sh. Nainstalujte
TVout/matroxset/matroxset
někde do cesty PATH.
Nemáte-li nainstalován fbset, vložte
TVout/fbset/fbset
někde do cesty PATH.
Nemáte-li nainstalován con2fb, vložte
TVout/con2fb/con2fb
někde do cesty PATH.
Pak vstupte do adresáře TVout/
ve zdrojovém adresáři MPlayeru a spusťte
./modules jako root. Vaše textová konzole přejde
do režimu framebuffer (není cesta zpět!).
Dále EDITUJTE a spusťte skript ./matroxtv. Objeví se
vám velmi jednoduché menu. Stiskněte 2 a
Enter. Nyní byste měli mít stejný obraz na svém monitoru
i TV. Pokud má obraz na TV (výchozí je PAL) nějaké podivné šrámy, nebyl
skript schopen nastavit správně rozlišení (na výchozích 640x512).
Zkuste jiná rozlišení z menu a/nebo experimentujte s fbset.
Jo. Dalším úkolem je nechat zmizet kurzor z tty1 (nebo odjinud) a
vypnout mazání obrazovky. Spusťe následující příkazy:
echo -e '\033[?25l'
setterm -blank 0
nebo
setterm -cursor off
setterm -blank 0
Předchozí nejspíš bude lepší umístit do skriptu a také vyčistit obrazovku.
Pro zpětné zapnutí kurzoru:
echo -e '\033[?25h' nebo
setterm -cursor on
A jasně. Spusťte přehrávání filmu:
mplayer -vo mga -fs -screenw 640 -screenh 512 soubor
(Pokud používáte X, přepněte se nyní do matroxfb pomocí například
Ctrl+Alt+F1.)
Změňte 640 a 512 pokud máte
nastaveno jiné rozlišení...
Užijte si ultra-rychlý ultra-vybavený Matrox TV
výstup (lepší než Xv)!Výroba kabelu pro Matrox TV-out
Zříkáme se jakékoli odpovědnosti nebo záruky za jakékoli poškození způsobené
touto dokumentací.
Kabel pro G400
Na čtvrtém pinu CRTC2 konektoru je kompozitní video signál. Zem je
na šestém, sedmém a osmém pinu. (informaci poskytl
Balázs Rácz)
Kabel pro G450
Kompozitní video signál je na pinu jedna. Zem je na pátém,
šestém, sedmém a patnáctém (5, 6, 7, 15) pinu.
(informaci poskytl Balázs Kerekes)
Karty Matrox G450/G550
Podpora TV výstupu pro tyto karty byla přidána teprve nedávno a dosud není
v ostré verzi jádra. V současnosti nelze (aspoň pokud vím) použít modul
mga_vid, protože ovladač G450/G550 pracuje
pouze v jedné konfiguraci: první CRTC čip (s mnohem více schopnostmi) na první
displej a druhá CRTC (žádné BES – pro
popis BES viz sekci G400 výše) na TV. Takže v současnosti můžete použít pouze
MPlayerovo fbdev výstupní
rozhraní.
První CRTC nemůže být v současnosti přesměrována na sekundární výstup. Autor
jaderného ovladače matroxfb – Petr Vandrovec – pro to snad
vyrobí podporu pomocí zobrazení výstupu prvního CRTC na oba výstupy najednou,
což se pro tuto chvíli doporučuje pro G400, viz předchozí sekce.
Potřebnou záplatu jádra a podrobné HOWTO lze stáhnout z
Karty ATIÚVOD
V současnosti nechce ATI podporovat žádný ze svých TV-out čipů pod Linuxem
z důvodu jejich licencované technologii Macrovision.
STATUS TV VÝSTUPU NA KARTÁCH ATI POD LINUXEMATI Mach64:
podporovaný GATOSem.
ASIC Radeon VIVO:
podporovaný GATOSem.
Radeon a Rage128:
podporovaný MPlayerem!
Podívejte se na sekce VESA a
VIDIX.
Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4:
podporovaný atitvoutem.
Ne ostatních kartách prostě použijte rozhraní VESA
bez VIDIX. Vyžaduje to výkoný CPU.
Jediné co musíte, je mít TV konektor zapojený
před zapnutím PC jelikož video BIOS se inicializuje pouze
jednou během POST procedury.
nVidia
Nejprve si MUSÍTE stáhnout closed-source ovladače z .
Nebudu zde popisovat instalaci a konfiguraci, jelikož je to mimo rámec této
dokumentace.
Jakmile je funkční XFree86, XVideo a 3D akcelerace, editujte sekci
Device v souboru XF86Config, podle
následujícího příkladu (upravte si to pro svou kartu/TV):
Section "Device"
Identifier "GeForce"
VendorName "ASUS"
BoardName "nVidia GeForce2/MX 400"
Driver "nvidia"
#Option "NvAGP" "1"
Option "NoLogo"
Option "CursorShadow" "on"
Option "TwinView"
Option "TwinViewOrientation" "Clone"
Option "MetaModes" "1024x768,640x480"
Option "ConnectedMonitor" "CRT, TV"
Option "TVStandard" "PAL-B"
Option "TVOutFormat" "Composite"
EndSection
Samozřejmě je nejdůležitější část TwinView.
NeoMagic
Čip NeoMagic lze nalézt v různých laptopech. Některé z nich jsou vybaveny
jednoduchým analogovým TV enkodérem, některé jej mají mnohem pokročilejší.
Analogový enkodér:
Testováno na Toshibě Tecra 8000. Její čip pro TV výstup je mizerný křáp.
Pokud možno se mu obloukem vyhněte.
Musíte použít . Testovaný čip umí jen poměr stran
1.333333, takže se ujistěte, že používáte volby ,
a/nebo filtry
, pokud počítač neumožní TV výstup.
Maximální rozlišení je 720*576 v 16bpp.
Známá omezení: pouze VESA, omezení poměru stran 1.33333, obraz není vždy
vycentrován, barevná hloubka filmu se každých 10 minut změní na 4bpp a
zůstane tak. Často zatuhává, problémy se zobrazováním na LCD.
Chrontel 70xx enkodér:
Nalezen v IBM Thinkpad 390E a bude pravděpodobně i ostatních Thinkpadech nebo
noteboocích.
Musíte použít pro PAL nebo
pro NTSC.
To vám zpřístupní funkci TV výstupu v následujících 16 bpp a 8 bpp režimech:
NTSC 320x240, 640x480 a možná také 800x600.PAL 320x240, 400x300, 640x480, 800x600.Režim 512x384 není podporován BIOSem. Musíte obraz škálovat do
jiného rozlišení pro aktivaci TV výstupu. Pokud vidíte obraz na obrazovce
v 640x480 nebo v 800x600, ale ne v 320x240 nebo jiném menším rozlišení,
musíte nahradit dvě tabulky ve vbelib.c.
Viz funkci vbeSetTV pro více informací. V tomto případě prosím kontaktujte
autora.
Známá omezení: pouze VESA, žádné další ovládací prvky jako jas, kontrast,
úroveň černé, filtrace blikání nejsou implementovány.