8.3. MPEG dekodéry
Předcházející | Kapitola 8. Výstupní video zařízení/rozhraní | Další

## 8.3. MPEG dekodéry

### 8.3.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 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-dvb

Pokud 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 `scale=šířka:výška` s šířkou a výškou, které chcete do volby `-vf`. 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: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) 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 `-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ší) 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).

### 8.3.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.

### 8.3.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, 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 `-framedrop` pro zachování synchronizace. `sync` 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ě. `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. Volby `:prebuf:sync` 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 `: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) 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 `-vf lavc/fame`. 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 `-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ěkdemezi 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 AC3 (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.

Předcházející | Nahoru | Další
8.2. Video výstupy pro tradiční video karty | Domů | 8.4. Ostatní vizualizační hardware