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

## 9.16. MPEG dekóderek

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

Majd fordíts és telepíts, mint rendesen.

HASZNÁLAT. A hardveres dekódolás szabványos MPEG-1/2 videó folyamot és/vagy MPEG audiót tartalmazó fájlok esetén elvégezhető ezzel a paranccsal:

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

Bármilyen más típusú videó folyam esetén MPEG-1-be történő átkódolás szükséges, ezért lassú és nem éri meg a vesződést, különösen ha lassú a géped. Egy ehhez hasonló paranccsal végezhető el:

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

Figyelj rá, hogy a DVB kártyák PAL esetén csak a 288-as és 576-os, NTSC esetén a 240-es és 480-as magasságokat ismerik. Muszáj átméretezned más magassághoz a `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, különben MPlayer kódolatlan átvitelre fog várni.

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). Mindig ajánlott a PMT és MCR pid bevétele minden sorba a megfelelő csatornáknál (ha ismered őket). Megadhatsz 8192-őt is, ez kiválaszt minden pid-et ezen a frekvencián, majd ezután a TAB-bal tudsz váltani a programok között. Ez nagyobb sávszélességet igényel, de az olcsóbb kártyák mindig átviszik az összes csatornát legalább a kernelig, így ezeknél nem jelent számottevő különbséget. Egyéb lehetőségek: televideo pid, második audió sáv, stb.

Ha az MPlayer rendszeren panaszkodik

    "Túl sok videó/audió csomag a bufferben"

    "Too many video/audio packets in the buffer"

üzenettel vagy az audió és videó közötti szinkronizáció növekvő eltérését tapasztalod, nézd meg, hogy van-e PCR pid a folyamban (szükséges az átvivő bufferelésének történő megfeleléshez) és/vagy 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.

Az audió vagy videó folyam ideiglenes kikapcsolásához másold be a következőket a `~/.mplayer/input.conf` fájlba:

    % set_property  switch_video -2
    & step_property switch_video
    ? set_property  switch_audio -2
    ^ step_property switch_audio

(A billentyűket átírhatod a kívántra.) Ha megnyomod a switch_x -2 parancshoz tartozó billentyűt, a megfelelő folyam bezárásra kerül; ha a step_x-hez tartozót, akkor a folyam újra meg lesz nyitva. Ügyelj rá, hogy ez a kapcsolási mechanizmus nem a várt módon fog működni, ha a több audió és videó folyam van.

Lejátszás közben (nem rögzítés közben), a dadogás és 'A rendszeret túl lassú ehhez' üzenetek megelőzése érdekében javasolt a

    -mc 10 -speed 0.97 -af scaletempo

használata a parancssorban, a scaletempo paramétereinek megfelelő beállításával.

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.

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

### 9.16.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 TV-out 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`

  Nem-MPEG tartalom em8300-on történő nézéséhez (pl. MPEG-4 (DivX) vagy RealVideo) meg kell adnod egy MPEG-1 videó szűrőt, mint pl. a `libavcodec` (lavc). Lásd a man oldalt a további infókért a `-vf lavc` kapcsolóról. Jelenleg nem lehet az em8300 fps értékét módosítani, ami azt jelenti, hogy fixen 30000/1001 fps. Emiatt javasolt a `-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 AC-3 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ő
9.15. DirectFB/Matrox (dfbmga) | Tartalom | 9.17. Zr