4.18. MPEG dekodéry

4.18.1. DVB výstup a vstup

MPlayer podporuje karty s čipsetem Siemens DVB od výrobců jako Siemens, Technotrend, Galaxis nebo Hauppauge. Poslední DVB ovladače jsou dostupné na Linux TV serveru. 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-dvb

Pokud máte ost hlavičky na nestandardním místě, nastavte cestu pomocí

./configure --extra-cflags=zdrojový adresář DVB/ost/include

Pak kompilujte a instalujte obvyklým způsobem.

POUŽITÍ.  Hardwarové dekódování proudů obsahujících MPEG–1/2 video a/nebo audio lze provést tímto příkazem:

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

Dekódování jakéhokoli jiného typu video proudu vyžaduje transkódování MPEG–1, což je pomalé a nemusí stát za to, zvlášť s pomalým počítačem. Můžete jej 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 scale=šířka:výška s šířkou a výškou, které chcete do volby -vf. DVB karty akceptují různé šířky jako 720, 704, 640, 512, 480, 352 atd, a provádí hardwarově vodorovné š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:576

Pokud máte širokoúhlý film a nechcete jej škálovat na plnou výšku, můžete použít filtr expand=š:v 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.avi

Pokud 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 expand=š:v nebo expand=š:v:x:y, použijte expand=š:v:x:y:1 (pátý parametr :1 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 -subpos <0-100> pro toto nastavení (-subpos 80 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 -framedrop.

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: ...:pid[+pid]:... (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) Můžete rovněž zadat 8192, to vybere všechny pidy na této frekvenci a vy pak můžete přepínat programy pomocí TAB. To může vyžadovat větší šířku pásma, ale laciné karty vždy přenášejí všechny kanály minimálně do jádra, takže u nich v tom nebude velký rozdíl. 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áním -demuxer lavf -lavfdopts probesize=128 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ší) nebo 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).

4.18.2. DXR2

MPlayer 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Í

-vo dxr2

Zapíná TV výstup.

-vo dxr2:x11 nebo -vo dxr2:xv

Zapíná Overlay výstup v X11.

-dxr2 <volba1:volba2:...>

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.

4.18.3. 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Í

-vo dxr3:prebuf:sync:norm=x:zařízení

overlay 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. prebuf zapíná prebuffering. Prebuffering je vlastnost čipu em8300, která mu umožňuje podržet si více než jeden videosnímek současně. 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 -framedrop pro zachování synchronizace. sync zapíná nový sync–engine. To je zatím experimentální vlastnost. Se zapnutý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ě. norm=x 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. device = čí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. Volba :prebuf:sync, zdá se, pracuje 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 :sync.

-ao oss:/dev/em8300_ma-X

Pro zvukový výstup, kde X je číslo zařízení (0 máte-li jen jednu kartu).

-af resample=xxxxx

Č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 (-ac hwac3).

-vf lavc/fame

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). Viz manuál pro další informace o -vf lavc. V tuto chvíli není možné nastavit snímkovou rychlost em8300, což znamená, že je pevně nastavena na 30000/1001 snímků/s (fps). Z toho důvodu doporučujeme, abyste použili -vf lavc=quality:25 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ěkde mezi 25 a 27, obraz se ustálí. Pro tuto chvíli se to dá pouze uznat jako fakt.

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

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

-ac hwac3

Čip em8300 podporuje přehrávání zvuku v AC–3 (prostorový zvuk) přes digitální audio výstup na kartě. Viz výš volbu -ao oss. Ta musí být použita pro nastavení výstupu do DXR3 místo zvukové karty.