4.2. DVD lejátszás

A használható kapcsolók teljes listájáért olvasd el a man oldalt. A szintaxis egy szabványos DVD lejátszásához a következő:

mplayer dvd://<sáv> [-dvd-device <eszköz>]

Például:

mplayer dvd://1 -dvd-device /dev/hdc

Ha az MPlayert dvdnav támogatással fordítottad, a szintaxis ugyan ez, kivéve, hogy dvdnav://-ot kell használnod a dvd:// helyett.

Az alapértelmezett DVD eszköz a /dev/dvd. Ha a te beállításod különböző, készíts egy szimbolikus linket vagy add meg a megfelelő eszközt a parancssorban a -dvd-device kapcsolóval.

Az MPlayer fel tudja használni a libdvdread-ot és a libdvdcss-t is a DVD-k lejátszásához és dekódolásához. Ez a két függvénykönyvtár megtalálható az MPlayer forrás fájában, nem kell őket külön telepítened. Használhatod a két függvénykönyvtár rendszer-szintű verzióját is, de ez nem javasolt, mivel hibák forrása lehet, a függvénykönyvtárak közötti inkompatibilítást és sebességcsökkenést okozhat.

Megjegyzés

Ha DVD dekódolási problémáid vannak, próbáld meg letiltani a supermount-ot vagy bármilyen más hasonló dolgot. Néhány RPC-2 vezérlő régió kód beállítását is megköveteli.

DVD struktúra.  A DVD lemezeken 2048 bájtos szektorok vannak ECC/CRC-vel. Legtöbbször UDF fájlrendszer van egyetlen sávon, ami különböző fájlokat tartalmaz (kicsi .IFO és .BUK fájlok, valamint nagy (1 GB) .VOB fájlok). Ezek igazi fájlok, amik másolhatóak/lejátszhatóak egy nem titkosított DVD mountolt fájlrendszeréről.

Az .IFO fájlok a filmben történő navígációhoz tartalmaznak információkat (fejezet/cím/szög térkép, nyelvtáblázat, stb.) és szökségesek a .VOB tartalmának olvasásához és értelmezéséhez (film). A .BUK fájlok ezek biztonsági mentései. Szektorokat használnak mindenhol, így a lemezen nyers szektor címzést kell használni a DVD navigáláshoz és a tartalom dekódolásához.

A DVD támogatás nyers szektor-alapú elérést igényel az eszközhöz. Sajnos (Linux alatt) root-nak kell lenned, hogy megkapd egy fájl szektor címét. Emiatt egyáltalán nem használjuk a kernel fájlrendszer vezérlőjét, inkább felhasználói szinten (userspace) oldottuk meg. A libdvdread 0.9.x teszi ezt lehetővé. A kernel UDF fájlrendszer vezérlője nem kell, mivel saját beépített UDF fájlrendszer vezérlőjük van. Sőt, még mountolni sem kell a DVD-t, mivel csak nyers szektor-alapú címzést használnak.

Néha a /dev/dvd nem olvasható a felhasználók által, így a libdvdread szerzői egy emulációs réteget készítettek, ami átalakítja a szektor címeket fájlnév+eltolásra, így nyers elérést emulál a mountolt fájlrendszeren vagy akár a merevlemezen is.

A libdvdread elfogadja a mountolás helyét is az eszköz neve helyett a nyers címzéshez, az eszköz nevét a /proc/mounts fájlból olvassa ki. Solaris-ra lett kifejlesztve, ahol az eszköz nevek dinamikusan vannak lefoglalva.

DVD dekódolás.  A DVD dekódolást a libdvdcss végzi. A módszer megadható a DVDCSS_METHOD környezeti változó segítségével, lásd a man oldalt.

Az RPC-1 DVD meghajtók csak szoftveresen védik a régió kódot. Az RPC-2 meghajtókban hardveres védelem van, ami csak 5 változtatást engedélyez. Szükséges/javasolt a firmware frissítése RPC-1-re ha RPC-2-es DVD meghajtód van. Megpróbálhatsz keresni firmware frissítést az Interneten, ez a firmware fórum egy jó kiinduló pont lehet. Ha nincs firmware javítás a te meghajtódhoz, használd a regionset eszközt a DVD meghajtód régió kódjának beállításához (Linux alatt). Figyelem: Csak 5 alkalommal állíthatod át a régió kódot.