8.3. MPEG dekóderek
Előző | 8. fejezet - Videó kimeneti eszközök | Következő

## 8.3. MPEG dekóderek

### 8.3.1. 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 fájlok lejátszása) elvégezhető ezzel a paranccsal:

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

A Szoftveres dekódolás vagy átkódolás különböző formátumokról MPEG-1-re egy ehhez hasonló paranccsal érhető el:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Most már fordíthatsz egy `~/.mplayer/channels.conf` fájlt, a szap/tzap/czap/azap által elfogadott szintaktikával, vagy engeded a 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: `...:pid[+pid]:...` (egyenként maximálisan 6 pid); ebben az esetben az MPlayer beleveszi a stream-be az összes jelzett pid-et, plusz a pid 0-t (ami a PAT-ot tartalmazza). Javasolt a PMT pid bevétele minden sorba a megfelelő csatornáknál (ha tudod). 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 `-demuxer lavf -lavfdopts probesize=128` opció parancssorhoz történő hozzáadásával.

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

      mplayer dvb://

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

      mplayer dvb://R1

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

      mplayer dvb://2@R1

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

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

### 8.3.2. DXR2

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

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

HASZNÁLAT

`-vo dxr2`

  TV kimenet engedélyezése.

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

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

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

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

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

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

### 8.3.3. DXR3/Hollywood+

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

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

HASZNÁLAT

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

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

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

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

`-af resample=`xxxxx``

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

`-vf lavc/fame`

  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) vagy a `libfame` (fame). Jelenleg a lavc gyorsabb is és jobb képminőséget is ad, javaslom, hogy ezt használd, hacsak nincs problémád vele. Lásd a man oldalt a további infókért a `-vf lavc/fame` kapcsolóról. A lavc használata nagyon javasolt. Jelenleg nem lehet az em8300 fps értékét módosítani, ami azt jelenti, hogy fixen 30000/1001 fps. Emiatt javasolt a `-vf lavc=`minőség`:25` kapcsoló használata, különösen ha előbufferelést használsz. Hogy miért 25 és nem 30000/1001? Nos, a dolog úgy áll, hogy ha 30000/1001-et használsz, a kép kicsit ugrálós lesz. Ennek az okát nem tudjuk. Ha beállítod valahova 25 és 27 közé, a kép stabillá válik. Jelenleg mást nem tehetünk, elfogadjuk ezt tényként.

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

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

`-ac hwac3`

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

Előző | Fel | Következő
8.2. Videó kimenet tradícionális videó kártyákhoz | Tartalom | 8.4. Egyéb vizualizációs hardverek